Создание карт в формате NM3 (псевдо)

Комплект утилит командной строки packNM3.exe и upackNM3.exe - создан с образовательной и исследовательской целью для работы с картами в формате NM3 (контейнер для карт формата NM2 с индексным файлом) самодеятельными авторами любительских неофициальных карт навигационной программы Navitel Navigator для дальнейшей популяризации этой великолепной программы. Комплект утилит не может быть использован для модификации карт, защищенных авторским правом в соответствии с законодательством Российской Федерации.

Карты в формате NM3 можно использовать с программой Navitel Navigator 5.0.0.693 и старше. В настоящее время программа для создания неофициальных карт GPSMapEdit обеспечивает выгрузку карт в формате NM2 только в формате версии 3.2.6 (код версии 0x10), в то время как CNT в своей работе создаёт карты NM2 для Navitel Navigator 5.0.0.x уже с кодом версии 0x12. Поэтому следует иметь в виду, что из неофициальных карт можно получить только псевдо-NM3 карты, которые могут иметь те же самые проблемы в Navitel Navigator 5.0.0.x, что и исходные карты в формате NM2. Выигрыш только в одном - предварительно сформированный индексный файл в составе контейнера NM3.

upackNM3.exe - распаковывает контейнер NM3 в составляющие карты формата NM2 и индексный файл index.058.nti.

Предупреждение: т.к. в составе контейнера нет информации об исходных именах файлов, входящих в контейнер, при распаковке им присваиваются условные имена файлов, с которыми извлечённый индексный файл работать не будет (т.е. он будет пересоздан при попытке использовать распакованные файлы как самостоятельный атлас).

Ограничения версии: настоящая утилита позволяет распаковывать только контейнеры NM3 любительских карт, изначально созданных в формате версии 0x10. Официальные карты CNT в виде контейнера NM3, изначально созданные в формате версии 0x12, утилитой распакованы НЕ будут, т.к. являются защищаемыми объектами авторского права.

Использование:

upackNM3.exe filename.nm3

здесь:

filename.nm3 - распаковываемый контейнер формата NM3

В результате работы утилиты в той же папке, где находится файл filename.nm3 будет создана вложенная папка filename.nm2, в которой будут находиться распакованные файлы с именами index.058.nti, filename_00000.nm2, filename_00001.nm2, …

Цифры в имени индексного файла могут отличаться от приведённых (058) и соответствуют внутреннему представлению версии индексного файла.

packNM3.exe - упаковывает карты Атласа Навител в контейнер NM3.
Обязательное условие: все карты атласа, включая
индексный файл, должны находиться непосредственно в
одной папке атласа, внутри которой и был создан
индексный файл; вложенные подпапки не допускаются.
Атлас должен иметь единственный файл nm2 с рутингом
(атлас с выделенным рутингом). Непроверенная
рекомендация: имя файла рутинга должно соответствовать
формату 8.3, не должно иметь буквы и символы, отличные
от стандартного имени файла DOS (латинские буквы,
цифры, ограниченное количество специальных символов -
подчёркивание (_), минус (-), решётка (#)).
Ограничения версии: настоящая утилита позволяет упаковывать в
контейнер NM3 только любительские карты, изначально
созданные в формате версии 0x10. Официальные карты CNT,
изначально созданные в формате версии, большей, чем
0x10, утилитой упакованы НЕ будут, т.к. являются
защищаемыми объектами авторского права.
Также не будут упакованы атласы, nm2-карты которого
имеют версию меньше, чем 0x10 (в формате Navitel
Navigator версии младше, чем 3.2.6), либо индексный
файл nti которого создан программой Navitel Navigator
версии младше, чем 5.0.0.693 (код версии меньше 058).

Предварительные действия:

  • поместить все файлы nm2 (в формате версии 0x10) атласа в одну папку на устройстве с установленным Навител Навигатор 5.0.0.693 или старше; использование вложенных папок НЕ допускается.
  • создать атлас на основании этой выбранной папки средствами Навител Навигатор 5.0.0.693 или старше; при этом должен быть создан индексный файл index.058.nti или подобный с более старшей версией ( >= 058);
  • папку атласа с картами nm2 и созданным индексным файлом скопировать на настольный компьютер, на котором будет выполняться упаковка атласа в контейнер nm3.

Использование:

packNM3.exe -i:index.058.nti -r:route.nm2 -o:full_path_name.nm3 [folderName]

здесь:

folderName - имя папки с относительным или абсолютным путём, в
которой содержатся все файлы упаковываемого атласа; в
случае отсутствия - используется текущая папка;

index.058.nti - имя индексного файла атласа, расположенного внутри папки folderName;

route.nm2 - имя выделенного рутингового файла атласа, расположенного
внутри папки folderName;

full_path_name.nm3 - имя файла контейнера nm3, которое может
содержать относительный или абсолютный путь; в качестве
точки отсчёта для относительного пути используется
текущая папка; в случае отсутствия пути в имени файла,
он будет помещён в текущей папке.

В результате работы утилиты в контейнер full_path_name.nm3 будут помещены:

  • индексный файл атласа, заданный параметром -i:index.058.nti;
  • выделенный рутинговый файл атласа, заданный параметром -r:route.nm2
  • все остальные файлы *.nm2, расположенные в папке атласа folderName.

Copyright c 2011 by CNT, Mi81 & Furgon

CNT - правообладатель программы Navitel Navigator, форматов картографической информации NM2, NM3, NTI;

Mi81 - анализ структуры, материалы и алгоритмы по формату контейнера NM3;

Furgon - практическая реализация.

скачать файлы: http://rghost.ru/15197571

Да видели мы уже это…

а зачем оно надо, если nm3 получается “искуственный”, без плюшек, присущих формату 0x12

Один тока плюс: карты уже проиндексированы и на слабых девайсах попроще использовать.