| Главная | Описания | Статьи | Программы | Загрузка | Ссылки | Разное

сGPSMapper. Описание "Польского формата". (Перевод)

Изменения в последних версияхсGPSMapper. (Перевод)

 

 

Существует перевод официальной инструкции.

 

Актуализация: 2003-11-16, для cGPSmapper v.0071, GPSMapEdit v. 0.90

Оглавление

Введение

PFM (Polski Format Mapy -- Польский формат описания картографических данных), так же известный как просто "Польский формат", являющийся исходным языком для компилятора cGPSmapper. Создание карт для загрузки в навигаторы GPS можно сравнить с программированием: Вы пишете программу (то есть карту) на языке программирования (то есть в "Польском формате") и затем компилируете её для получения конечного файла с помощью cGPSmapper. Как вариант, вместо ручного программирования можно использовать специальные программы для автоматического или полуавтоматического создания исходного кода в "Польском формате". Одной из таких программ является GPSMapEdit, подробное описание которого Вы можете найти на этом сайте.

Исходный файл (файл карты) в "Польском формате" это обычный текстовый файл с расширением .mp. Соответственно он может быть быть открыт и изменён с помощью любого текстового редактора (в предыдущих версиях использовалось расширение .txt, которое иногда ещё встречается в ранних публикациях по этой теме). В данной статье описываются основы синтаксиса и семантики "Польского формата", это значит что некоторые дополнительные и устаревшие возможности будут пропущены. Полный синтаксис описан в справочном файле Test_img.mp (находится в директории Test_Map).

Компилятор cGPSmapper доступен в следующих вариантах: Freeware, Shareware, Standard, Pro и Routing. Все версии кроме Freeware  считаются обладающими дополнительными возможностями.

Соглашения

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

Специальный символ для переменных данных # заменяет числовое значение, например Data# будет выглядеть как Data0, Data1 и т.п.

Специальная последовательность символов ...  обозначенная в отдельной строке, имеет интуитивное значение. Этот оператор в новой строке означает что данные, приведённые выше могут быть повторены 0 или больше раз различными (обычно последовательными) значениями переменных данных #. Если данной последовательности символов предшествует пара имён с символом для переменных данных #, вся пара должна быть повторена (смотри подобные варианты в примерах).

Имена, написанные в оранжевом цвете (например Name=) являются обязательными в данном разделе. Имена, написанные в оливковом цвете (например Label=) являются дополнительными.

Общий синтаксис файла "Польского формата"

Файл в "Польском формате" содержит строки комментариев и разделы. Строки комментариев начинаются с символа ; . Строка комментария может быть создана в любом месте файла и игнорируется компилятором. (Однако GPSMapEdit использует специальный синтаксис комментариев для описания присоединённых файлов и такие комментарии будут приняты GPSMapEdit).

Существуют следующие разделы:

  • Раздел [IMG ID]-- относится к разделу заголовка карты
  • Разделы объявлений:
    • разделы [COUNTRIES], [REGIONS]и [CITIES] -- используются для индексации городов
  • Разделы объектов:
    • Разделы [RGN10], [RGN20], [RGN40]и [RGN80] -- определяют соответственно такие объекты, как точки POI (точки особого интереса), точки пользователя, линии и полигоны вместе с данными описания объекта, если они присутствуют в теле раздела.
    • Раздел [PLT] и [WPT] -- они также описывают объекты, но эти данные являются импортируемыми из файлов программы OziExplorer типов .plt и .wpt.

Раздел заголовка карты является обязательным и должен ставиться первым в исходном файле карты. Все прочие разделы являются необязательными (за исключением того, что GPSMapEdit выдаёт сообщение об ошибке при открытии файла не содержащего объектов). Разделы объявлений (если они есть) должны стоять после раздела заголовка карты в порядке, описанном в данной статье. Разделы объектов (если они есть) должны стоять посте раздела объявлений. Они могут располагаться в любом порядке и могут быть повторены столько раз, сколько требуется для описания всех объектов.

Каждый раздел начинается с обозначения типа (например тип [RGN10]) и заканчивается командой [END]. (В предыдущих версиях применялись различные команды окончания в зависимости от типов, например [END-RGN10]. Этот синтаксис всё ещё поддерживается и может быть использован в старых версиях программ или исходных файлов карт.) Порядок расположения данных в теле раздела (то есть между началом раздела и командой [END]) является произвольным.

Раздел заголовка карты


[IMG ID]
ID=nnnnnnnn -- должен содержать 8 цифр (десятичный формат) и быть уникальным для каждой карты.
Name=map_name -- имя карты для просмотра в навигаторе GPS в меню информации о картах "Map Info".
LBLcoding=x -- (по умолчанию: LBLcoding=6)
  • LBLcoding=6 -- компрессия для имён (небольшой размер карты)
  • LBLcoding=9 -- восьмибитовое кодирование (поддерживает национальные символы, зависит от прошивки навигатора GPS)
  • LBLcoding=10 -- Unicode (зависит от прошивки навигатора GPS)
Codepage=xx -- (default: Codepage=0)
  • Если xx<>0, восьмибитовое кодирование с определением кодовой страницы (зависит от прошивки навигатора GPS)
  • Внимание: Если кодовая страница задействована, все имена должны быть написаны ЗАГЛАВНЫМИ буквами.
  • Внимание: Разделители для номеров шоссе (смотри ниже) отличаются если используется восьмибитовое кодирование.

Datum=xxx -- (по умолчанию: Datum=W84) определяет датум данных описания объектов.

  • Datum=W84 -- Датум WGS-84
  • смотри файл Datum_List.txt file (в директории GPSMapper) для ознакомления с полным списком поддерживаемых датумов.
Elevation=x -- (по умолчанию: Elevation=f)
  • Elevation=m -- высота в метрах
  • Elevation=f -- высота в футах
TreSize=n -- максимально допустимый размер региона; высокое значение может уменьшить скорость отображения карты; низкое значение увеличивает размер файла карты; предпочтительные значения для n:
  • Топографические карты: 1000-2000
  • Город (много улиц): 2000-5000
  • Государство: 6000-10000
RgnLimit=n -- максимальное число элементов в одном регионе
  • предпочтительное значение: 1024
Levels=n -- количество слоёв в карте (не менее 1, не более 10)
  • Внимание: Последний слой всегда должен быть пустым, например значение Levels=3 означает, что для объектов карты можно использовать только два слоя.
Level#=g -- размер сетки для отображения слоёв # (слой 0 должен быть подробнее чем 1)
  • Внимание: значение каждого слоя (Level0, Level1, Level2 и т.д.) должно быть определено.
  • Для выбора оптимального размера сетки используйте данные таблицы, которая определяет видимость каждого слоя в навигаторе в зависимости от значения масштаба когда детализация для карты выставлена в положении Норма (Normal):
    • g=24 -- 120 м и ближе
    • g=23 -- 200 м - 300 м
    • g=22 -- 500 м
    • g=21 -- 800 м - 1.2 км
    • g=20 -- 2 км
    • g=19 -- 3 км
    • g=18 -- 5 км - 8 км
    • g=17 -- 12 км
    • g=16 -- 20 км - 30 км
Zoom#=#
...
  • Внимание: команда Zoom# является дополнительной и требуется только для программы MapSource, GPSMapEdit некорректно выставляет его значение в заголовке карты, возможно что это будет исправлено, пока предлагается использовать эту команду как показано в файле Template.mp.

Указанные здесь команды поддерживаются только в версиях с дополнительными возможностями.
POIIndex=x -- (по умолчанию: POIIndex=N)

  • POIIndex=Y -- объекты типа RGN10 будут автоматически индексированы (это позволит использовать функцию Поиск (Find) в навигаторе GPS).
  • POIIndex=N -- объекты будут индексироваться только если точки POI содержат информацию для индексации.
DefaultCityCountry=название_страны
DefaultRegionCountry=название_области
  • Эти две команды должны использоваться совместно -- они определяют название страны и области для автоматического индексирования городов; если они не определены, то города будут индексироваться только если эти объекты содержат информацию для индексирования.
[END] -- конец раздела заголовка карты

Раздел назначений

Все, указанные ниже, команды для раздела назначений поддерживаются только версиями с дополнительными возможностями.


[COUNTRIES] -- этот раздел назначает все страны используемые для индексации городов
Country#=название_страны~[0x1d]абревиатура
... -- данная команда может повторяться для Country2, Country3 и т.д. (смотри Соглашения выше)
[END]
[REGIONS] -- этот раздел назначает все области используемые для индексации городов
Region#=название_области~[0x1d]абревиатура
CountryIdx#=название_страны~-- число, соответствующее команде Country#
... -- указанная выше пара комманд может быть повторена (смотри Соглашения выше)
[END]
[CITIES] -- этот раздел назначает все города используемые для индексации городов
City#=название_города
RegionIdx#=индекс_области -- номер, соответствующий команде Region#
...
[END]

Раздел объектов


Внимание! Обязательно ознакомьтесь с изменениями в последних версиях. С версии 0074 эти разделы описываются другими параметрами.

[RGN10] -- этот раздел определяет объекты типа точки POI (Point Of Interest)
Type=тип_объекта

  • перечень доступных объектов находится в файле RGNtype.txt  (в директории GPSMapper)
Label=имя_объекта
Levels=n -- объект должен присутствовать на всех слоях, начиная с нижнего и заканчивая n включительно.
Data#=(lat1,lon1) -- данные о координатах объекта для слоя #
...
  • например: Data0=(52.12345,21.98765)
  • координаты указываются в градусах и в датуме, указанном в заголовке карты (или по умолчанию)
Origin#=(lat1,lon1) -- это старая команда, полностью совпадающая с Data#. However, GPSMapEdit обрабатывает Origin# быстрее чем Data#.
...
[END]
[RGN20] -- этот раздел определяет объекты типа точки, не соответствующие точкам POI. Команды такие же, как для [RGN10].
Type=тип_объекта
Label=имя_объекта
Levels=n
Data#=(lat1,lon1)
...
Origin#=(lat1,lon1)
...
[END]
[RGN40] -- этот раздел определяет объекты типа линия (линейные объекты, например улица, ручей и т.п.)
Type=тип_объекта
Label=имя_объекта
Levels=n
Data#=(lat1,lon1),(lat2,lon2),... -- множество координатных пар составляет узлы из которых составлен объект.
...
[END]
[RGN80] -- этот раздел определяет объекты типа полигон (площадные объекты, например озеро, лес и т.п.)
Type=тип_объекта
Label=имя_объекта
Levels=n
Data#=(lat1,lon1),(lat2,lon2),...
...
[END]
[PLT] -- этот раздел определяет объекты типа линия или полигон, которые были импортированы из файлов .plt программы OziExplorer.
RgnType=категория_объекта
  • RgnType=0x40 -- линия
  • RgnType=0x80 -- полигон
Type=тип_объекта
Label=имя_объекта
Levels=n
File#=имя_файла -- определяет файл .plt, содержащий данные для импорта в слой #
...
[END]
[WPT] -- этот раздел определяет объекты типа точки POI или точки, которые были импортированы из файлов .wpt программы OziExplorer.
RgnType=категория_объекта
  • RgnType=0x10 -- точки POI
  • RgnType=0x20 -- точки
Type=тип_объекта
Levels=n
File#=имя_файла -- определяет файл .wpt , содержащий данные для импорта в слой #
  • Внимание: имена объектов берутся из полей описания точек, а не из полей имён точек.
...
[END]

Специальные возможности

 

Импорт имён для частей трека

Если трек, импортированный разделом [PLT] состоит из нескольких частей (то есть объектов), всем сегментам будет присвоено имя, указанное командой Label. Однако существует возможность присвоения отдельного имени каждой из этих частей.  Для этого исключите команду Label и опишите все имена в дополнительном файле, который должен называться так же как файл .plt (включая расширение) и иметь собственное расширение .txt (например Highways.plt.txt). Этот файл должен быть в той же директории, что и файл .plt. Каждая линия в этом файле присваивает имя для каждой части трека.

 

Высота объекта

Вы можете назначать значения высот для таких объектов как вершины (RgnType=0x10, Type=0x6616), точки высот и глубин (RgnType=0x20, Type=0x62...0x63), изобаты и горизонтали (RgnType=0x40, Type=0x20...0x25).

По умолчанию единицами измерения высоты являются футы. Для указания высот в метрах необходимо воспользоваться командой Elevation=m в разделе заголовка карты.

Высота не является видимым параметром, она добавляется к имени объекта после разделителя ~[0x1f]. В показанном ниже примере объекту вершины присвоена высота 2499 метров (подразумевается что в разделе заголовка карты присутствует команда Elevation=m):
[RGN10]
Type=0x6616
Label=Mt. Rysy~[0x1f]2499
Levels=2
Data0=(49.17958,20.08800)
[END]

Высота также может быть присвоена объекту не имеющему имени. В примере показано присвоение высоты 115 метров для объекта типа изобата, который не имеет имени:
[PLT]
RgnType=0x40
Type=0x20
Label=~[0x1f]115
Levels=1
File0=Contour115.plt
[END]

 

Обозначения шоссе

Вы можете указывать номера шоссе подобно тому, как указываются высоты - помещая номера после разделителя. Для этого доступны следующие разделители:
  • ~[0x2a] -- Международное шоссе
  • ~[0x2b] -- Номер шоссе в символе в форме щита
  • ~[0x2c] -- Номер шоссе в круглом символе
  • ~[0x2d] -- Номер шоссе в красно-синем символе (малом)
  • ~[0x2e] -- Номер шоссе в большом символе
  • ~[0x2f] -- Номер шоссе в белом символе (малом)

Например, команда Label=~[0x2d]619 присваивает для данного шоссе номер 619, который отображается в малом красно-синем символе.

Внимание: Если используется восьмибитовое кодирование символов, то разделители имеют следующие параметры:

  • ~[0x01] - Международное шоссе
  • ~[0x02] - Номер шоссе в символе в форме щита
  • ~[0x03] - Номер шоссе в круглом символе
  • ~[0x04] - Номер шоссе в красно-синем символе (малом)
  • ~[0x05] - Номер шоссе в большом символе
  • ~[0x06] - Номер шоссе в белом символе (малом)

 

Определение типов объектов описательными именами

Возможно присвоение типа объекту не только специальным номером, но и соответствующим этому номеру описательным именем. Например:
Type=Dining(Asian)
Описательное имя должно быть введено точно так, как это указано в файле RGNtype.txt (в директории GPSMapper).

 

Дополнительные разделы и команды

Многи команды поддерживаются только версиями с дополнительными возможностями компилятора. Они описаны с файле Test_img.txt (в директории GPSMapper) в котором так же приведены примеры их использования. Приведённый ниже перечень даёт общее представление о дополнительных возможностях, поддерживаемых в версиях с дополнительными возможностями. 
[BACKGROUND]
[DICTIONARY]
[FILE]
[HIGHWAYS]
[POI]
[SHP]
[ZIPCODES]
Cities
CityField
CityIdx
CityRegionIdx
Countries
CountryField
DefaultType
DirField
DirIndicator
ExitDirectionField
ExitFacilitiesField
ExitN
ExitNameField
ExitServices
ExitServicesEnd
ExitServicesStart
ExitTypeField
HighwayField
HighwayIdx
HighwayN
HighwayRegionIdx
Highways
HouseNumber
LabelField
LeftCity
LeftEnd
LeftStart
LeftType 
LeftZip
Level
LevelsNumber
Node
OvernightParking
PhoneNumber
POINumberFirst
POIOnly
POIZipFirst
PreProcess
RegionCountryIdx
RegionField
RegionIdxN
Regions
RightCity
RightEnd
RightStart
RightType 
RightZip
StreetDesc
StreetDesc
StreetNumbers
StreetNumbersEnd
StreetNumbersStart
Transparent
TreMargin
TypeField
ZipCodeField
ZipCodeN
ZipCodes
ZipIdx

 Устаревшие команды

AlignMethod
BlockSize
LevelFill 
LevelLimit
WorldMap

Новое в последних версиях GPSMapper

В приведённом выше переводе дано описание только для компилятора версии 0071. Но с каждой версией происходят различные изменения. Иногда они являются довольно кардинальными. Для того, что бы Вы могли быть в курсе этого, я привожу перевод всех этих изменений от версии к версии.

 


GPSmapper Версия 0076


 
  • Исправлено: Улучшена индексация перекрёстков на шоссе.
  • Исправлено: Несколько ошибок с определением направлений (только для версии Routable).
  • Исправлено: Улучшена оптимизация для ускорения отображения карт в навигаторах GPS.
  • Исправлено: Вывод справки при запуске cgpsmapper без каких либо параметров.
  • Исправлено: Ошибка при создании больших карт (файлов IMG размером свыше 3Mb)
  • Новое: Экспорт из "Польского формата" в формат ESRI с помощью команды 'shp'
    	cgpsmapper shp data_file.mp
    	
  • Новое: Создание файлов предварительного просмотра (TDB,IMG) из ПРОЗРАЧНЫХ карт формата IMG.
  • Новое: Улучшена индексация объектов - теперь можно индексировать объекты, содержащие специальные команды.
  • Новое: Новый формат для нумерации домов (в версии Pro).
  • Новое: Новый формат для определения направлений (в версии Routing).
  • Новое: Увеличено количество проверок на ошибки.
  • Новое: (версия Shareware и выше) Новый улучшенный формат для точек POI и индексируемых городов, разделы [CITIES],[REGIONS] и [COUNTRIES] больше не требуют ключей для объектов [RGN10]/[RGN20]/[RGN40] и [SHP] - для имён городов, областей, и стран (подробности в файле test_img.mp).
  • Новое: Новый формат почтового индекса и названий шоссе, разделы [ZIPCODES] и [HIGHWAYS] больше не требуют данных
    [RGN10]
    Label=..
    Data0=..
    CityName=название города
    RegionName=название области
    CountryName=название страны
    Zip=почтовый индекс
    Highway=название шоссе 
    [END]
    
    [RGN20]
    Label=..
    Data0=..
    ;RGN20 является определителем города - поэтому поле 'label' уже определяет 'CityName'
    RegionName=название области
    CountryName=название страны
    [END]
    
    [SHP]
    ....
    CityName=имя файла dbf, где сохранено название города
    RegionName=..
    CountryName=..
    [END]
    	

GPSmapper Версия 0074


  • Исправлено: Скорость (спасибо Константину)
  • Новое: Messages with exact place in input file
  • Новое: Нерегулярные границы для карт доступны во всех версиях программы (через объекты типа [RGN80])
  • Новое: Импорт файлов формата MapDekode (Раздел  [DBX])
  • Новое: Прозрачность карты
  • Новое: Названия для разделов [RGNxx] :
    [POI] новое название для типов [RGN10] и [RGN20]
    [POLYLINE] новое название для типов [RGN40]
    [POLYGON] новое название для типов [RGN80]
    
    Для разделения между типами [RGN10] и [RGN20] используется новый ключ:
    
    [POI]
    ...
    City=Y
    ...
    [END]
    
    например :
    [POI]
    Type=0x01
    City=Y
    Data0=(11.11,12.11)
    [END]
    
    тоже самое:
    [RGN20]
    Type=0x01
    Data0=(11.11,12.11)
    [END]
    
    когда:
    [POI]
    Type=0x01
    Data0=(11.11,12.11)
    [END]
    
    тоже самое:
    [RGN10]
    Type=0x01
    Data0=(11.11,12.11)
    [END]
    
    Старые названия разделов ( [RGNxx] ) остаются действительными.
    	
    !!!ЗАМЕЧАНИЕ ДЛЯ ПОЛНЫХ ВЕРСИЙ!!!: ВАЖНО ПОМНИТЬ, ЧТО РАЗДЕЛ [POI] ИЗМЕНИЛ СВОЁ ЗНАЧЕНИЕ! РАЗДЕЛ [POI] БОЛЬШЕ НЕ ИСПОЛЬЗУЕТСЯ ДЛЯ ИМПОРТА ДАННЫХ О ГОРОДАХ/ОБЛАСТЯХ/СТРАНАХ ИЗ ФАЙЛОВ DBF  - ДЛЯ ЭТОГО ТЕПЕРЬ ДОЛЖЕН ИСПОЛЬЗОВАТСЯ РАЗДЕЛ [DEFINITIONS].
  • Исправлено: Ключ 'LevelsNumber' и 'Levels' ( в разделах [SHP],[RGNxx],[PLT] и [WPT] ) изменены на ключ 'EndLevel'  ( старые варианты остаются действительными ).

GPSmapper Версия 0071


  • Новое: Введено новое официальное расширение для "Польского формата" - *.mp

  • Новое: Введено автоматическое определение расширения:

cgpsmapper input_data.mp
результирующий файл: input_data.img

cgpsmapper map.img
результирующий файл: map.mp

  • Новое: введена команда 'axx' для экспорта в файл, для нестандартного вывода.

  • Новое: в файлах типа PLT теперь можно определять пустоты.

  • Исправлено: Сокращено время компиляции.

  • Исправлено: Намного увеличена точность при создании карт.

  • Исправлено: Ошибки в процессе обнаружения пустот.

  • Исправлено: Процесс обнаружения пустот значительно ускорен.

  • Исправлено: Устранены ошибки при определении направлений


GPSmapper Версия 0065


  • Новое: MBCS (Multi-byte character set) - национальные символы на вашей карте (зависит от версии прошивки и модели навигатора GPS).

    [IMG ID]
    ...
    Codepage=[кодовая страница Windows]
    LBLcoding=[
    	6 - кодирование имён с компрессией - небольшие карты
    	9 - восьмибитовое кодирование
    	10 - MBCS - используется совместно с ключом CODEPAGE
    ...
    [END]
    
    например:
    [IMG ID]
    ...
    Codepage=1251
    LBLcoding=9
    ...
    [END]
    
  • Исправлено: создание файла предварительного просмотра, что вызывало ошибки при запуске MapSource.


GPSmapper Версия 0063


  • Новое: Введено восьмибитовое кодирование для символов шрифтов - национальные символы на вашей карте.


GPSmapper Версия 0062


  • Новое: Версия Shareware: производится индексирование точек POI и городов (цена: 20 EUR)

  • Новое: Переключатель -i для создания карт, содержащих только точки POI и города (только для версии Shareware) cgpsmapper ac -i source_data

    Это позволит компилировать карту только с объектами типа RGN10 и RGN20, даже если в исходном коде присутствуют типы RGN40 и RGN80. В версии Shareware возможно одновременно индексировать до 100 объектов типа точки POI и города или неограниченное количество этих объектов поотдельности (только с ключом -i ). Версия Shareware содержит информацию о пользователе, карта, созданная в такой версии, показывает эту информацию.

  • Исправлено: параметр BLOCKSIZE больше не используется.

  • Исправлено: Не работала индексация более чем 255 городов (сейчас 65000) - действует в полной версии Shareware.

  • Исправлено: Опять работоспособен DirIndicator.

  • Исправлено: Новый алгоритм определения пересечений.


GPSmapper Версия 0060


  • Новое: Обработка для выездов (подробности в файле test_img.txt).

  • Новое: В разделе [IMG ID] можно указывать используемый датум.

  • Новое: Команда '-o output_filename' позволяет задать произвольное имя для  карты, создаваемой по ключу 'ac'.

  • Исправлено: Максимальное количество слоёв ограничено 9 (10 слоёв может вывести из строя Ваш навигатор GPS!).

  • Исправлено: Обнаружение пересечений не работало для первой вершины.

  • Исправлено: В разделе [IMG ID] некоторые команды для корректного выполнения должны были быть написаны прописными буквами (например Elevation=m не работало)

  • Исправлено: Устранено чтение параметров в разделе [RGNxx] - теперь допустимо произвольное их расположение.

  • Исправлено: Обновлено описание в файлах test_img.txt/test_shp.txt.

 

Перевод: Владимир С.

Источник: plrecgps.pp.org.pl и gps.chrisb.org

27.05.2004

 



Copyright © WWS 2004-2024
В дорогу!
Rambler's Top100 Экстремальный портал VVV.RU Locations of visitors to this page