Обновление 27.11.2012
Этот текст предназначен только для тех, кто сам изготавливает карты для навигаторов Гармин. Это совершенно излишнее чтение для тех, кто просто использует в своем навигаторе уже готовые карты.
Решается задача правильного показа всплывающих под курсором русских названий элементов рельефа (например: Просека, Грунтовка, Лес) как в старых Гарминах со специальной русской (навикомоской) прошивкой, так и в новых Гарминах, где русский язык поддерживается симметрично со всеми другими языками. Как правило - прошивки таких новых приборов можно обновлять через американский сайт www.garmin.com.
В качестве "старого" тестировался навигатор Garmin GPSMap 60CSx с фирменной навикомовской специализированной русской прошивкой 4.00. В качестве "нового" тестировался навигатор Garmin GPSMap 62s с фирменной прошивкой 3.40, загруженной с сайта www.garmin.com при помощи гарминовской программы WebUpdater.
Специализированные русские прошивки позволяют отступать от некоторых (но не всех!) обсуждаемых здесь правил работы с русским языком.
Этот текст написан на основе библии о форматах MP и TYP:
http://cgpsmapper.com/download/cGPSmapper-UsrMan-v02.5.pdf
Использованные программы:
http://cgpsmapper.com/buy.htm
- Free cGPSmapper version 0100d for Windows.
Компилятор для TYP файлов и MP карт в простой IMG формат.
- Free Pro SendMap20 rev 6.7 for Windows.
Линкер для склейки карт в простом IMG формате между собой,
а также для монтирования карт с TYP файлами. Результатом работы линкера
является расширенный IMG формат, в который вмонтирована общая
информация о геометрии и названиях форм ландшафта из файла TYP.
Альтернативой для программы Sendmap является ее более современный аналог Gmaptool:
http://www.anpo.republika.pl/download.html
Все русские надписи на карте (формат MP) и в файле скинов (форматы TXT и TYP) должны быть в кодировке cp1251 (aka Windows).
Русский язык должен упоминаться в трех местах:
Файл карты в формате MP должен начинаться с раздела
[IMG ID]
CodePage=1251
LblCoding=9
Эти строки задают русскую однобайтовую кодировку cp1251. Прототип карты (простой IMG формат) компилируется командой:
cgpsmapper имя_файла_карты.MP
Текстовый исходник (скин в формате TXT) TYP файла должен в каждой строке,
начинающейся с символов "string1=" или "string2=", содерждать нужный код языка.
Не путайте код (LanguageCode) с кодировкой (CodePage).
Для английского языка код 0x04, для русского код 0x19.
См. первоисточник: http://cgpsmapper.com/download/cGPSmapper-UsrMan-v02.5.pdf
(Отмечу, что по слухам, очень старые и очень кривые прошивки приборов требуют,
чтобы код языка был установлен в значение 0x00. Я такого никогда не видел и далее
не рассматриваю.)
Пример:
string1=0x19,Непр.грейдер
Этот пункт особенно важен для "новых" Гарминов.
В TYP файле имеется признак, обозначающий ту кодировку, в которой набраны строки (Code page for strings).
Речь о тех самых строках, которые начинаются с символов вроде "string1=" в TXT файле скина.
Умолчательное значение этого признака 1252 (западно-европейская кодировка)
нужно поменять на значение 1251 (русская кодировка cp1251).
Для этого в начало файла со скином нужно поместить строки:
[_id]
codepage=1251
[end]
Приготовленный с учетом шагов (2 - 3) TXT скин компилируется в TYP файл командой:
cgpsmapper typ имя_файла_скина.TXT
При этом создается файл 0.TYP, который можно переименовать как нравится, например в slazav-121126.typ.
После выполнения шагов (1 - 3) нужно склеить файл(ы) карт простого IMG типа с правильным TYP файлом программой Sendmap или программой GMapToool. Ниже пример для консольной версии программы GMapToool.
C:\prog\gmaptool\gmt\gmt.exe -j -v -m "SLAZAV" -o QQ.IMG *.img slazav-121126.typ
При этом создается файл QQ.IMG, (расширенного IMG типа) содержащий склейку, в которую вмонтирован правильный TYP файл. Этот расширенный IMG файл уже можно копировать в директорию GARMIN на флешку.
TYP файл не нужно совать на флешку или в прибор. Там его все равно никто не поймет.
- Если прибор не поддерживает флешки, то в интерактивной версии программы Sendmap или программы GMapTool работаем кнопками с названиями вроде "Erase maps in GPS", "Upload maps to GPS".
Архив содержит следующие файлы:
- Скин slazav-121126.txt, полученный в результате выполнения шагов (2 - 3).
- Файл slazav-121126.typ, полученный компиляцией скина.
Любопытное замечание.
Программа GPSMapEdit 1.0 (update 66.7) http://www.geopainting.com/en/ поддерживает скины карт в том смысле, что в ее рабочем окошке элементы ландшафта видны так, как это описано в файле скинов. Однако, при экспорте карты в формат IMG, похоже, вся информация из скинов теряется. Во всяком случае, мне не удалось приготовить IMG расширенного типа с помощью этой программы. Кусочек тестовой IMG карты, присланный мне А.Бахваловым, также был простого, а не расширенного типа. Возможно, эта путаница между простым и расширенным IMG форматом вносит свой вклад в то странное поверье, что будто бы существуют навигаторы, которые не поддерживают TYP файлы. Мне кажется, что никакие навигаторы не поддерживают TYP файлы, взятые отдельно от карт. Но все навигаторы (за исключением самых древних с самыми древними прошивками) поддерживают расширенный IMG формат карт, при условии, что в карту правильно вмонтирован правильный TYP файл.
Вова Радюшкин