To Vovan_Alm и не только:
Создание TYP файла для работы в MicroGISEditor:
TYP файл для работы в MicroGISEditor - это копия составленного вами (в рамках единых правил для своего проекта) файла для использования в навигаторах. То есть вы берёте копию, затачиваете её для работы в MicroGISEditor. Дальше редактора эта копия никуда не идёт. Ни в каких последующих компиляциях эта копия не участвует. При компиляции карты в конечный формат - используйте свой основной TYP файл.
Назначение TYP файла при работы в MicroGISEditor
Подключенный TYP файл к программе MicroGISEditor служит:
• для расширения набора типов классификатора GARMIN;
• для указания наименования Label;
• для смены визуального отображения типов классификатора GARMIN;
• для указания типов объектов (GRMN_TYPE) при экспорте в MPC шейпы;
Подготовка TYP файла для использования в MicroGISEditor
Перед присоединением TYP файла к программе MicroGISEditor он должен быть доработан. Необходимо учесть:
• MicroGISEditor, для экономии системных ресурсов понимает только одну запись вида:
String1=0x04,Custom area 599 записанную первой. Параметр языка - игнорируется;
• Для смены типа объекта, записываемого в колонку
GRMN_TYPE при экспорте в MPC шейп используется строка вида:
StringMPCName=0x04,CUSTOMIZABLE_AREA_599;
А посему, необходимо:
• В копии вашего рабочего TYP файла оставить только одну строку с наименованием, например: String1=0x19,Пользовательская область 599;
• При необходимости, добавить необязательный параметр
StringMPCName=...., используя Notepad++.
Какие параметры за что отвечают в TYP файле при работе в MicroGISEditor?
Понимается всего 2-е строки:
StringХ=...(записанная первой) и
StringMPCName=.... Причем:
• данные в
StringХ=...(записанной первой) используются для отображения НАИМЕНОВАНИЯ. Русскоговорящие пишут туда русские названия, Англоговорящие - английские;
• данные в
StringMPCName=.... (если такая строка найдена) - используются для перегона названий типов в MPC шейп. Если такая строка не найдена, при перегоне в шейп записываются HEX идентификаторы.
Продолжаем ликвидацию безграмотности
Если уж дали возможность переопределять кастомные объекты, то сделать бы это так, чтобы ни Mapper, ни TypViewer, ни TypWiz впоследствии не были бы затронуты.
Сделать это не возможно. Самый продвинутый редактор TYP файлов, на мой взгляд, это
TYPViewer. Он понимает множество записей вида:
StringХ=..., но:
• Записи последовательные записи должны иметь порядковый номер, например:
String1=...,
String2=...,
String3=..., но никак не
StringMPCName=..... TypViewer не позволяет делать пользовательских записей или пометок. А значит привёдет записи к своему стандарту:
Было:
String1=0x04,Custom area 599
String2=0x19,Пользовательская область 599
StringMPCName=0x04,CUSTOMIZABLE_AREA_599
Стало:
String1=0x04,Custom area 599
String2=0x19,Пользовательская область 599
String3=0x04,CUSTOMIZABLE_AREA_599
Поэтому
Fencer_Silver предлагал, как вариант, можно переделать запись вида
StringMPCName=...., например на
String3=....
Тогда в конкретном файле, имеющем 2 языка
String1=...,
String2=... + созданный нами
String3=... (для MPC экспорта) программа
TypViewer, при правке, ничего не подпортит, чего нельзя сказать за программу TypWiz. Но, если вы внесёте еще один язык, или удалите один из существующих, наша запись
String3=..., станет
String2=... или
String4=... и такой файл уже не будет пониматься в MicroGISEditor. Как не крути, ограничения всё равно будут и править в Notepad++ ручками, всё равно прийдется. Ну а раз так, вернёмся к началу: чем плох вариант реализованный нами?
ПРЕДЛОЖЕНИЕ ВТОРОЕ:
Таблица это плохо и не профессионально. Работы много, толку мало. Все доступные пользователю настройки, должны быть в настройках программы, а не во внешних файлах. Пользователь не должен думать и знать как организован INI файл и прочее. Это в утилитах принято, гонять всё через внешние файлы, потому как, утилита - это временно решение, решающая узкую задачу, возникшую только на сегодня и трать время на написание интерфейса - никто не хочет. Мы же не утилиту пишем...... Так что успокойтесь с внешней таблицей, ато потом еще 100 страниц в мануале (который никто не читает) прийдется написать - как ею пользоваться.
Предлагаю победить данную проблему, путем задействования идентификатора языка в параметре
StringХ=? который сейчас игнорируется.
Для тех кто незнает о чём речь, поясняю: идентификатор, это то что записано между
= и первой запятой. (Пример: String2=
0x19,Пользовательская область 599). Всего принято 35 идентификаторов (для 34 языков), причём самый первый,
0x00 - для неопределённого языка (см. мануал к программе "Работа с TYP файлами"). Я предлагаю задействовать данный идентификатор, как раз для описания данных, участвующих в экспорте в MPC.
Таким образом, наша старая запись вида:
String1=0x04,Custom area 599
String2=0x19,Пользовательская область 599
StringMPCName=0x04,CUSTOMIZABLE_AREA_599
Станет:
String1=0x04,Custom area 599
String2=0x19,Пользовательская область 599
String3=0x00,CUSTOMIZABLE_AREA_599
В MicroGISEditor:
StringХ=0x04 - пойдет для английского варианта
StringХ=0x19 - пойдет для русского варианта
StringX=0x00 - пойдет при перегоне в MPC
Положительные стороны:
1. Все редакторы TYP файлов, в том числе и TYPViewer не будет портить данных;
2. Кол-во записей вида
"StringХ=" - не будет иметь значения (создавайте хоть все 35);
3. Сортировка записей вида
"StringХ=" - не будет иметь значения (записывайте в любом порядке. Именно так и записано в большинстве TYP? которые я анализировал);
4. Избавит от необходимости делать TYP.txt под каждую локализацию (один и тотже TYP может быть использован англоязычными, русскими, немцами и т.д.)
5. Избавит от необходимости иметь два TYP.txt для MicroGISEditor и для компиляции.
6. Избавит от необходимости править TYP.txt в блокноте.
7. Сохранит 2-а варианта экспорта: НЕХ идентификатор или CUSTOM идентификатор.
8. Поддержка TYP файла будет выполнена в полном объеме.
В общем все будут довольны, выбирать вам.