Уважаемые пользователи и гости форума! Доступно обновление карт Украины: Июнь-2020 для Нави-Мапс и СитиГИД.
Карты можно обновить как через саму программу навигации = Карты - Обновить,
так и скачать атлас карт в архиве в разделе Загрузок (Скачать карты, программы)
Также выпущены карты cgnet для версии СитиГИД 7.9.0.236 под операционку WinCE 6.0 - подробнее читайте на форуме


Продолжаются работы по улучшению форума. Возможны перерывы во время обновления кода движка форума.

Скрипты для СГ и не только

Редакторы и утилиты - предложения разработчиков

Модераторы: OldMan, alx69, Vadim_O, Mechanic, Alex1802, PivoOdessa

Ответить
Сообщение
Автор
vasyusya
Активный участник форума
Сообщения: 235
Зарегистрирован: 01 июн 2007, 22:01
Откуда: Киев

Скрипты для СГ и не только

#1 Сообщение vasyusya » 25 май 2010, 22:24

Подсобный инструментарий для подготовки исходников для конвертации в СГ и не только. Скрипты на перле, поэтому нужен перл (strawberry perl, active perl или любой другой), запускаются из командной строки. Если кому-то сильно надо, и не получается, могу выполнить в виде екзешника.

Все скрипты разрабатывались для работы с исходниками нулевого уровня, будет ли корректно работать с многоуровневыми исходниками, не гарантирую. Кроме того, перед работой надо разнести все сджойненные объекты. Некоторые скрипты в качестве побочного эффекта удаляют комментарии.

1. 0brackets.pl. Заменяет в Label и StreetDesc круглые скобки на квадратные. Запуск
perl 0brackets.pl file.mp
Результат в file_bracket.mp

2. 0list_key.pl. Составляет сортированный список различных значений выбранного ключа. Полезно при работе с адреской - для выявления опечаток, а также для подготовки таблицы перебода для следующего скрипта. Запуск:
perl 0list_key.pl file.mp key [feature [type]]
Примеры
perl 0list_key.pltest.mp StretDesc
perl 0list_key.pl test.mp Label POI 0x6001
Рзультат в file_<key>.txt

3. 0translate_key.pl Производит контекстную замену значений выбранного ключа согласно таблице. Удобно для внесения массовых изменений, перевода, исправления неточностей. Таблица - текстовый (csv) файл, формат строк
старое значение;новое значение
или
старое значение;новое значение;что угодно
Запуск:
perl 0translate_key.pl file.mp tablelie key
Пример
perl 0translate_key.pl test.mp table.csv Label
в ключе Label заменит значения согласно таблице table.csv
Результат в file_translated.mp,
отчет о результатах в file_log.txt

4. 0str2label.pl Если в полилинии типа дороги есть ключ StreetDesc и его значение не совпадает с Label или Label отсутсвует, оно заполняется значением из StreetDesc. Запуск:
perl 0str2label.pl file.mp
Результат в file_fixed.mp
Отчет о выполненных заменах в file_log.txt

5. 0sanitize4cg.pl Удаляет все ключи, кроме тех, которые понимает конвертер в СГ. В частности, удаляет EndLevel, на неправильное заполнение которого конвертер реагирует очень болезненно, так что с многослойными картами запускать с осторожностью. Запуск
perl 0sanitize4cg.pl file.mp
результат в file_cg.mp

Итак, для подготовки одноуровневой карты для конвертации я делал:
1. провел анализ и ремонт адрески описанными средствами и скриптами 2, 3
2. с помощью ГМЕ разнес сджойненные объекты
3. с помощью 4 скрипта привел в соответствие Label и StreetDesc, получил файл file_fixed.mp. Проверил лог, если скрипт заменил, как надо, двигаюсь дальше, если нет - правлю руками и скриптом 3
4. Скриптом 1 получаю файл file_fixed_brackets.mp
5. Скриптом 5 делаю файл file_fixed_brackets_cg.mp, который скармливаю конвертору, который кушает все с удовольствием.

Поскольку шаги 3-5 делаются легко и быстро, после конвертации в СГ все обрезанные исходники удаляю, чтобы не плодить мусор. Сохраняю оригинальный файл и если надо таблицы, которыми что-то правил 3 скриптом.
У вас нет необходимых прав для просмотра вложений в этом сообщении.

maxdddca
начинающий писатель
Сообщения: 16
Зарегистрирован: 22 апр 2009, 07:23

#2 Сообщение maxdddca » 27 май 2010, 10:27

Спасибо. В виде ехе было бы конечно удобнее !

vasyusya
Активный участник форума
Сообщения: 235
Зарегистрирован: 01 июн 2007, 22:01
Откуда: Киев

#3 Сообщение vasyusya » 30 май 2010, 20:27

Прикрутил гуй, собрал в exe, теперь можно без перла и без командной строки.

Еще раз кратко:
0brackets - заменяет круглые скобки на квадратные
0list_key - выдает сортированный список значений ключа
0translate_key - универсальный переводчик-исправлятор значений выбранного ключа
0str2label - устраняет неравенство StreetDesc и Label
0sanitize4cg - удаляет гамузом все данные из исходника, кроме выбранных полей. Список полей, которые оставлять, в конфиге (можно править текстовым редактором). Если этим кто-то будет пользоваться, сделаю удобнее.

Все программы в результате преобразования в exe заметно прибавили в весе, поэтому выложены не здесь, а на http://194.44.31.54/maps/scripts

Eclogyte
Сообщения: 7
Зарегистрирован: 07 авг 2010, 16:12

Re: Скрипты для СГ и не только

#4 Сообщение Eclogyte » 10 сен 2010, 10:22

Выложите, пожалуйста, на фтп к экзешникам и исходные скрипты. Вложение в заглавном сообщении я не могу скачать.

Ответить

Вернуться в «Утилиты и редакторы для создания хороших правильных карт»