Пример скрипта Digitals для формирования обменных файлов из общей карты.
Данный скрипт извлекает по-одному все участки карты в обменные файлы, удаляет смежников и сохраняет IN4.
Чтобы воспользоваться скриптом нужно создать панель инструментов Окно>Создать панель инструментов, ввести имя файла панели, сохранить его, кликнуть по появившеся панели правой кнопкой мышки, выбрать Добавить кнопку, в открывшееся окошко скопировать приведенный выше текст скрипта.
Скрипт подразумевает, что участки находятся в слое с номером 2, а смежники в слое с номером 4.
В мене є схема паїв з заповненими ін4,рілля.І є друга схема,на тих самих людей,сінокіс,незаповнена.Так,от,як можна за один раз скопіювати інформацію з ін4 з першої схеми в другу,щоб інформація вставилась в тому самому порядку?
1.Пометить все объекты (рилля) и с помощью Сервис-Отчет вытянуть значения параметров в буфер (выбрать “Простой отчет”, кнопкой “Выбор” выбрать нужные параметры, !!!важно чтоб первым в этом списке был ключевой параметр). Если необходимо предварительно отредактировать эти данные, вставьте их блокноте или в Excel на чистый лист.
Пометить все объекты (синокис), отредактируйте список параметров доступный слою этих объектов, оставив доступными только те параметры которые будут изменены, при этом !!!важно чтоб первым в этом списке был ключевой параметр и с помощью Правка-Специальная вставка-Только параметры вставить значения в эти объекты из буфера (в буфере должно быть то что получено через Сервис-Отчет либо скопировано в Excel) .
Произойдет следующее:
Помеченные объекты, у которых значение первого параметра в списке доступных слою совпадает со значением первого столбца какой-либо строки из буфера, меняют значения параметров на значения в этой строке и с них снимается пометка. Если значение первого параметра не совпало ни с одним из буфера, то этот объект останется помеченным.
В Вашем случае ключевым параметром может быть ФИО, если нет двух людей с одинаковыми данными (довольно частая ситуация)
відносно першого: можна зробити, але воно трошки по іншому буде виглядіти.
зробіть так:
в папці “Діджиталс” є папка “lists” там зтворіть текстовий файл(наприклад file.txt), в якому попрописуйте потрібні нас. пункти.
в менеджері параметрів знайдіть потрібний параметр (на прикладі розглядаю AU) #3=804,#=-,=Вінницька,=Вінницький,=с.Іванівка:files.txt,=-,=-,=-,*=-@Код країни(3цифри %804 -Україна% )|Поштовий індекс(5цифр):Indexes.txt|Область|Район:район.txt|Нас.пункт:мисто.txt|тип та назва проїзду|номер будинку|номер корпуса|номер квартири
після додавання строки виділеною синім, після збереження ви будете мати параметр який буде заповнюватися майже автоматом.
щодо другого точно сказати не можу.
При заполнении такого параметра значением, которое уже присутствует у других объектов, выдается предупреждение.
Кроме того меню Карта-Проверка-Уникальность параметров пометит объекты у которых параметры с признаком “Уникальный” совпадают.
Как написать строку в скрипте, чтобы при пометке обьекта на карте обьект сохранялся в определенную папку в формате mif, а имя файла бралось из параметра (адрес участка)?
Скрипт может быть примерно такой:
$S=@Map.NextSelected 0 @if $S<=0 then Break Нужно пометить объект
$P=@Map.Object[$S].Parameter[AD] @Map.Selected.Copy @FileNew С:\MyFolder$P.mif
Правка | Вставить @Map.SaveToFile @CloseMap
Подставьте в местах, выделенных красным, номер нужного параметра для имени файла и путь для сохранения файлов. Для сохранения в другом формате, например dxf или shp, нужно изменить расширение файла (выделеное зеленым).
Панель с кнопками скриптов создается в меню Окно|Создать панель инструментов.
Как сделать, чтобы, сохраненный в другом формате файл, автоматически открывался в его “родной” программе (например DXF в Autocad, Shape в АrcGIS и т.д.)
Это можно сделать при помощи команды @Run языка скриптов, добавив кнопку на панель инструментов. Например, такой срипт сохранит текущую карту в формате DXF и откроет его в Автокаде:
Созданный DXF-файл будет запущен на выполнение программой по умолчанию, которая установлена в Windows для файлов, с расширением DXF. При необходимости, можно в явном виде запустить любую программу, передав ей имя созданного файла в качестве параметра, например:
В диджиталс есть параметры(атрибуты)-формулы. Каким образом они хранятся / читаются с помощью внешнего приложения - я не могу это отыскать с помощью описания DMF файла - что есть в открытой публикации.
Получается - что читая DMF файл в котором есть такого рода параметры - они не находятся в секции описания параметров / атрибутов - как будто их нет
Подскажите что не так делается и есть ли на самом деле такого рода отступление от правил (читай - описания DMF)
Заранее благодарна :-*
В DMF все значения параметров объекта хранятся одной строкой. В этой строке также содержатся номера параметров из списка параметров карты и настройки отображения подписей, если значение параметра вынесено на карту в виде подписи. Значения вычисляемых параметров в DMF не хранятся.
while FindSubStr(CDMFParEnd,S0,CurInd,Length(S0),EndInd) do
try
//получаем индекс параметра в списке
if not FindSubStr(CDMFParSep,S0,CurInd,EndInd,FndInd) then Continue;
S1:=Copy(S0,CurInd,FndInd-CurInd);
//индекс параметра за пределами списка или не числовое значение
if not CheckNumber(S1,VInt,false) or (VInt<DMFParamHdr.MinService) or
(VInt>DMFParamHdr.Count) then Continue;
//создаем новую подпись
Lbl:=TMapLabel.Create(Obj);
Lbl.SetParam(FParams[VInt-DMFParamHdr.MinService]);
CurInd:=FndInd+1;
...
Привіт! Не можу знайти необхідну функцію в сценарії контролю якості цифрових карт (файл типу .mcs) для виявлення помилки топології - тобто накладееня двух полігонів з різних шарів. Команда [Intersect] не допомогає оскільки в місцях накладення полігонів є вузли. Скажіть чи є команда для виявлення такого типу накладення полігонів, якщо відсутня, то бажано б створити !