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

Скрипт, який конвертує всі файли у папці із СК-63 в МСК
25.05.2017, 11:00

$Ext=.xml
$DestDatum=MCK-46
$Re=<CoordinateSystem><Local>$DestDatum</Local></CoordinateSystem>
$InF=@Dialog.SelectFolder Вкажіть папку з файлами
@If $InF= @Break
@Text.FolderList *$Ext $InF
$C=@Text.Count
@If $C=0 @Break В папці "$InF" відсутні файли $Ext
$OutF=$InF\Конвертовані в MSK
@CreateFolder $OutF
@CleanFolder $OutF
$I=0
%Start
$I=$I+1
@If $I>$C then @Break Конвертовано $I файлів
$InF=@Text.Line[$I]
@FileOpen $InF
@ExecuteMenu RegistryToUSK
@ExecuteMenu RegistryToMSK
@if $Ext<>.xml then @Goto %Dali
@Map.DeselectAll
@Map.SelectLayer id70000
@Map.Selected.ChangeParameter ID7000009 $Re
%Dali
$InF=@Map.ClearShortFilename
@Map.SaveToFile $OutF\$InF$Ext
@CloseMap
@Goto %Start

Примітка: В другому рядку скрипту ($DestDatum=MSK-46) потрібно вказати вашу місцеву систему координат

Категорія: Готові скрипти | Додав: Микола
Переглядів: 3027 | Завантажень: 0 | Коментарі: 12 | Рейтинг: 5.0/2
Всього коментарів: 12
avatar
11 SerjN • 11:13, 17.01.2021
Микола, підкажіть як вийти з такої ситуації:
Була потреба вставити в карту таблицю з координатами в МСК.
Скопіював ділянку на окрему карту;
Вибрав через Меню: Реєстри/Вибір регіону потрібний регіон - МСК-51
У текст скрипта вніс такі строки:
Реєстри | Перерахування з з СК-63 в УСК-2000
Реєстри | Перерахування з УСК-2000 в МСК...
Таблиця | Координати ХУ

----------
Після запуску отримав те, що треба.
Але після зміни регіону  на МСК-48 скрипт не спрацював. Коли відкрив його для редагування побачив таке:
Реєстри | Перерахування з з СК-63 в УСК-2000
Реєстри | Перерахування з УСК-2000 в МСК-51
Таблиця | Координати ХУ
-----------
Замінив на необхідний регіон:
Реєстри | Перерахування з з СК-63 в УСК-2000
Реєстри | Перерахування з УСК-2000 в МСК-48
Таблиця | Координати ХУ
-----------
Після запуску потрібного не отримав. Відкрив скрипт на редагування і побачив таке:
Реєстри | Перерахування з з СК-63 в УСК-2000
Таблиця | Координати ХУ
-----------
Тобто строка з перерахуванням в МСК зовсім зникла
Тому виникли такі питання:
1. Може знаєте що це за самовидалення строк скрипта і як з цим боротися?
2. Чи можно інакше записати команди для таких перерахувань в МСК та з МСК?
Наприклад через @ExecutMenu (доречи, може підкажете, де можно знайти
перелік внутрішніх імен для виконання цієї команди)
3. Як зробити вибір регіону через скрипт - щоб не робити цього вручну?
avatar
0
12 Микола • 13:24, 17.01.2021
Воно видалилося тому, що такої команди просто не існувало.
Коли ви вводите в скрипті команду меню (та ж команда Реєстри | Перерахувати з УСК2000 в МСК), то не вводьте повністю все, а ввівши тільки "Перерахувати", дивіться зліва у списку, які команди доступні і тоді вже їх переносьте в праву частину вікна. Але взагалі в командах меню по перерахунку в МСК немає вказаної цифри МСК. Команда має бути без цифри:
Реєстри | Перерахувати з УСК2000 в МСК

Можна ще використовувати функцію
$SK=SK63
$SK2=MSK-48
@Map.RecalculateToNewDatum $SK $SK2


також можна використовувати команди:
@ExecuteMenu RegistryToUSK
@ExecuteMenu RegistryToMSK
avatar
9 ryvol • 12:07, 29.05.2017
Система координат у реквізитах обмінного файлу ПОВИННА бути записана "MCK-ХХ", а НЕ "MSK-ХХ".

Все як зберігає Digitals:
- датум - "MSK-ХХ";
- у ХМЛ-файлі - "MCK-ХХ";
- аналогічно ін4 - "3,MCK-ХХ".

Лист Геокадастру 22-28-0.21-841 /2-17 від 23.01.2017 р. Про забезпечення впровадження... ...УСК-2000.
Чи кирилецею чи латиницею, - не уточнюється.
Пишіть електронку, - скину листа.
avatar
0
10 Микола • 20:18, 29.05.2017
все вірно, я помилився, має бути MCK латиницею
avatar
8 121212 • 16:20, 27.05.2017
реквізити обмінного файлу далі система координат далі <CoordinateSystem><Local>MCK-48</Local></CoordinateSystem>
наша чомусь вимагають щоб було обов'язково MSK
avatar
3 121212 • 23:39, 25.05.2017
знайшов на форумі подібний скрипт ще під ин4 і переробив його на хмл. але не знаю чи можна так зробити щоб вписувало не MCK а MSK, а ще було б добре якби скрипт шукав не тільки папку, але і папки в папці.
avatar
0
5 Микола • 10:38, 26.05.2017
Якщо потрібно обробити файли не тільки у вказаній папці, але і в усіх її підпапках, то замість функції @Text.FolderList можна використати @Text.FolderListTree
avatar
6 121212 • 22:37, 26.05.2017
а як бути з MCK, треба MSK що було?
avatar
0
7 Микола • 22:50, 26.05.2017
я не розумію, про що ви
avatar
2 777 • 19:51, 25.05.2017
А чому неформує формує відомість перетворення координат , чи це вже платне? Дякую!
avatar
0
4 Микола • 10:36, 26.05.2017
відомість перетворення координат потребує окремого шаблону, який я спеціально для цього розробив і скрипт там значно складніший за цей. Тому і платно.
avatar
1 121212 • 19:43, 25.05.2017
те що потрібно! дякую!
avatar