packNM3.exe / upackNM3.exe

readme

Комплект утилит командной строки 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).

ВАЖНО!!! По поводу некоторых случаев неработоспособности псевдо-NM3: важно учитывать версию программы, в которой создавался индексный файл!!! Так, псевдо-NM3 с индексным файлом, созданным в версии 5.0.4.х НЕ БУДУТ РАБОТАТЬ в версии 5.0.0.х !

Поэтому совет - при создании псевдо-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 будут помещены:

Архив с утилитами (Research version 0.2.2 от 15.07.2011 г.) можно скачать ЗДЕСЬ.

Архив с утилитами v. 0.2.3 от 03.08.2011 г. можно скачать ЗДЕСЬ. Поддерживает работу с ключем -CNT (регистр важен).

Экспериментальная версия распаковщика UnPack_NM3_0_3_2.7z (версия 0.3.2 от 16.03.2012г.) находится ЗДЕСЬ. Поддерживает работу с ключем -CNT (регистр важен).

Copyright © 2011 by CNT, Mi81 & Furgon

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

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

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