Головна » Файли » Готові скрипти

Зберігання об'єктів карти в окремі файли
10.08.2019, 14:53

Скрипт зберігає об'єкти карти, які у заданому шарі в окремі файли з будь-яким розширенням, яке підтримується програмою. При цьому в коді скрипту потрібно вказати шар об'єктів, які слід брати до уваги, параметр, в якому записана назва для майбутнього файлу, шлях, куди зберігати та розширення файлів.

;шар полігонів
$Layer=9151939
;параметр із назвою для файлу
$Name=1190357
;шлях, куди зберігати файли
$Papka=@ProgramFolder
$Path=$Papka\Результат
;формат файлу
$Format=kmz
;
$FE=@FolderExists $Path
@if $FE=0 then 
@CreateFolder $Path
;Перевірка наявності відкритої карти
$CountMap=@MapCount
@If $CountMap=0 then @Break Для роботи скрипту потрібна карта із полігонами
;Перевірка, чи є потрібні шари
@Map.DeselectAll
@Map.SelectLayer ID$Layer
$N=@Map.SelCount
@If $N<1 @Break На карті відсутні об'єкти у шарі ID$Layer
$ThisObj=0
$MC=@Map.Count
%Start
$ThisObj=$ThisObj+1
@if $ThisObj>$MC then @Break Зроблено!
$LID=@Map.Object[$ThisObj].LayerID
@if $LID<>$Layer then @Goto %Start
$MapName=@Map.Object[$ThisObj].Parameter[ID$Name]
@Map.DeselectAll
@Map.SelectObject $ThisObj
@Map.Copy
@FileNew $MapName
@Map.Paste
@Map.SaveToFile $Path\$MapName.$Format
@CloseMap $Path\$MapName.$Format
@Goto %Start

Категорія: Готові скрипти | Додав: Микола
Переглядів: 1275 | Завантажень: 0 | Коментарі: 4 | Рейтинг: 0.0/0
Всього коментарів: 4
avatar
3 bk2013 • 09:05, 30.08.2019
Микола, так як Ви написали я зробив пише що все збережено, але куди воно зберігає? в папке Результат тільки один файл з назвою ".XML". Куди ці файли зберігаються по отдельности.
avatar
0
4 Микола • 10:30, 30.08.2019
Скиньте код відредагованого вами скрипту. Може щось не так у шляху чи назві файлу
avatar
1 bk2013 • 18:56, 28.08.2019
Микола, доброго дня. Можете подробно описати як працює скрипт. Якщо у мене файл дмф с пятью контурами мені треба їх зберегти в формат xml как его настроить и по шагово что нужно делать. Спасибо.
avatar
0
2 Микола • 21:06, 29.08.2019
Щоб скрипт зберігав контури у xml, потрібно:

1) задати id шару, в якому ваші контури 70005
$Layer=70005
І перевести усі ваші контури у цей шар, бо програма у xml інакше не збереже.
2) в кожному контурі потрібно в певний параметр занести назву майбутніх файлів (під якою скрипт має зберігати цей контур)
Ну і в скрипті треба вказати id цього параметра. Наприклад, можете це робити у параметрі Опис земельної ділянки. Його id7000514
$Name=7000514
3) вказати папку, у яку слід зберігати ці контури
$Papka=@ProgramFolder
$Path=$Papka\Результат - створить у папці Digitals (де б вона у вас не була) папку під назвою "Результат"
4) вказати розширення файлу
$Format=xml

Крім цього, конкретно для файлів xml в скрипті ще потрібно змінити один рядок:
замість
@FileNew $MapName
поставити
@FileNew $MapName /Template=XMLNormal.dmf
бо файли xml створюються тільки на основі шаблону XMLNormal
avatar