Mkgmap

Файлы optionsfile.args и optionsfile2.args находятся в папке styles
Файл transform_places.xml в папке tools
Батфайлы в основной папке OSM
Стиль default - из самой программы mkgmap - поместите папку default в созданную папку styles
http://wiki.openstreetmap.org/wiki/User:Petrovsk/My_Garmin_map_styles
Посмотрите это
http://www.freizeitkarte-osm.de/garmin/en/development.html

https://sites.google.com/site/sherco40/
TYPViewer est un editeur de fichier TYP pour GPS Garmin.

Хотелось бы вести диалог, что и как особенно про стили.

Проблема не с конфигами, а в файлах стиля и TYP
Надо внимательно смотреть и файл TYP и соответствующие файлы стиля (точки, линии, полигоны) имена задаются и там и там. А в файле TYP еще есть настройки отображать имена или нет, и каким шрифтом (размер), цветом или невидимым (видно только при наведении курсора) для каждого объекта описанного в TYP файле.
Без TYP файла (или объект отсутствующий в TYP файле) прибор отображает его в соответствии со своей прошивкой.
Пример: стиль default без TYP файла, прибор отобразит карту так как зашито в нем. По этому если объект ввели в стиль, то его скорей всего надо вводить и в TYP файл. И не просто вводить - рисовать, раскрашивать, подписывать (короче - настраивать).

Дело в том, что сам-то ничего не вводил и не изменял, а брал уже готовый стиль (velo100) со всем «фаршем» (а выходит, что не со всем) и готовые оригинальные конфиги от автора (по ссылкам выше). Но, видать, автор что-то на своей машине подправлял/добавлял (поэтому у него всё тип-топ), а по ссылкам данные слегка устарели/рассинхронизировались (TYP со стилем или ещё что-то). Поэтому у меня произошла где-то нестыковка. Надо ковырять, где/что именно. Информации много выдали, буду переваривать.
P. S. Если это будет интересно, то вот »такую утилиту« когда-то накопал (не разбирался, но чувствую, что польза есть). Всё по-английски, но тут ничего не поделать.

Я использую TYPViewer, ссылка в предыдущих сообщениях, там по русски.
А копать начни с простого выпиши какие обекты (Garmin cod 0x01 и т.д.) встречаются в файлах стиля lines, points, polygons и какие в TYP файле. Какие у них имена по умолчанию там и там. А потом приводи в порядок.
Мне больше стиль FZK FreiZeitKarte понравился ссылку давал выше.

Вдогонку: там ещё и такая штука имеется (к вопросу о поиске багов и не только)

А эта штука бесплатная? А то я на этом сайте тоже одну штуку брал (сканирует файл gmapsupp.img или любой *.img и создает TYPфайл со всеми объектами встречающимися в карте) один пробный раз запустилась и больше ни разу, говорит плати.
IMG2TYP называется.

Да, уж. Не сразу заметил “unregistered” :expressionless: Но не исключено, что можно использовать именно проверку стиля (оплату просит при попытке конвертации).

В общем, получилась у меня та же петрушка, что и 2 года назад.
Eugeny_B, у вас стиль stranger нормально подписи показывает? Взять, например, озёра и реки — они с названиями получаются?
Если бы разобраться, что с чем сверять (на предмет наличия отсутствия :smiley: ), а то не знал, да ещё и забыл)) Было бы чудно.
Файл lines содержит такое по рекам:

waterway=river [0x1151a resolution 18-18 continue]
waterway=river [0x1f resolution 19-24 continue]

TYP содержит:

[_line]
Type=0x1f
;GRMN_TYPE: Water Features/RIVER/Large stream or river/Non NT
UseOrientation=Y
LineWidth=2
Xpm="0 0 1 0"
"1 c #2D76D0"
String1=0x19,река
ExtendedLabels=Y
FontStyle=Default
CustomColor=Day
DaycustomColor:#0000B4
[end]

и ещё:

[_line]
Type=0x1151a
;GRMN_TYPE: Customizable Line Types/CUSTOMIZABLE_LINE_251/Non-routable customizable line/Non NT, NT
UseOrientation=N
LineWidth=1
Xpm="0 0 1 0"
"1 c #2D76D0"
String1=0x19,река
ExtendedLabels=Y
FontStyle=SmallFont
CustomColor=Day
DaycustomColor:#0000B4
[end]

«String1=0x19,река» — очевидно, что имеется в виду тип объекта (который мне и показывается при наведении курсора). Но совсем не очевидно, откуда должно браться название этого объекта. Иными словами, откуда берутся названия объектов вообще?
Ясно, что изначально они есть в pbf, но потом куда они прописываются и в каком виде хранятся?

shop=convenience {set name='${name}, продукты' | 'продукты' } [0x2e02 resolution 22]
amenity=pub { name '${name}, паб (${phone})' |  '${name}, паб' | 'паб' } [0x2d02 resolution 22]

Выяснил, что продуктовые не получали названия (отображаемого при наведении курсора на точку) из-за наличия «set» и «=». А этих set понаставлено почти везде.
Теперь бы узнать, как заставить присваивать названия (те же реки/озёра), выводимые всегда (независимо от курсора).

Тип объекта это Type=0x1f или Type=0x1151a. А String1=0x19,река - это имя по умолчанию в TYP файле, 0х19 - русский язык, может встретиться 0х04 - тогда надпись на английском. Если в OSM данная река не имеет имени, то она подписывается из TYP файла “река”. Для редактирования TYP я пользуюсь TYPViewer, программа с русским интерфейсом бесплатная. Запускаешь ее, открываешь свой TYP, с лева в окошке “список полилиний” выбираешь 0x01f, двойной клик мышкой или нажатие “изменить” откроет окно редактирования, где можно менять параметры (все подписано по русски). Объясняю почему в стиле две :slight_smile: реки. 0x1f показывается при масштабе от 5м до примерно 3км (сейчас идет обработка данных для карты, и я не могу посмотреть точно) вторая 0x1151a примерно от 5км и на пол страны на экране (образно).
Теперь про Паб

amenity=pub { name '${name}, паб (${phone})' |  '${name}, паб' | 'паб' } [0x2d02 resolution 22]

Эта строчка говорит - Паб отобразить на экране значком 0x2d02 при масштабе от 5м до 700-800м (resolution 22 - масштаб) и если в OSM пабу присвоены имя (например, Моряк) и телефон, отобразится “Моряк, паб 8-921-ххх-хх-хх”. Если присвоено только имя - “Моряк, паб”, а если и имя не присвоено - “паб”.
Про продукты - в строке говорится, присвоить (set) имя которое состоит из имени OSM + слово “продукты” (‘${name}, продукты’) про отображение имени ничего нет.
Я думаю строка должна быть примерно такая:
shop=convenience {name ‘set name=${name}, продукты’ | ‘продукты’ } [0x2e02 resolution 22]
или что-то похожее со скобками (сейчас не посмотреть) сравни с похожими строками из этого и других стилей.
Или без set и =, как и вторая.
Я по началу так и изучал чем отличается стиль velo100 от MapTourist в отображении и строках, находил разницу и сравнивал, менял на одном и опять сравнивал.
Все это можно прочитать на ангельском языке в файле style-manual.pdf который находится в папке mkgmap\doc
На остальное позже когда посмотрю карты.

Гремучая это смесь — стили под гармин. В целом понял, что за подписи, которые должны браться именно из тега name, отвечают строки в файлах стиля (lines, points, polygons и т. д., можно и самому придумывать и добавлять в обработку через include). Как подпись будет отображаться — зависит от настройки внутри TYP (размер шрифта, невидимая надпись, некое присвоенное слово «по умолчанию» и т. д.) Большая часть проблем решилась тупым удалением «set» и «=».
Почитал руководство mkgmap, не смог применить if then else условие (конвертер выдаёт ошибку). Там какие-то «хитрости» со скобками (или чем-то другим). Вообще, легко запороть всё дело, забыв поставить скобку или пробел, или кавычку, или ещё что (конвертер ругается, но не всегда понятно, где копать). Так что желательно иметь вариант «до изменений» (чтобы откатиться).
Тоже скачал «немецкие» TYP-ы, да только они бесполезны без остальных файлов стиля. Откуда их брать? (ведь, вся эта чехарда с типами, правилами отрисовки и проч. строго индивидуальная).
Где-то видел ссылку на Maptourist-а слиль, но потерял.
P. S. Ещё интересно попробовать опцию «использовать значок из другого стиля» (чтобы «доукомплектовать» недостающие)

Не внимательный ты… Я давал ссылку http://www.freizeitkarte-osm.de/garmin/en/development.html а там в самом низу Download.
Скачиваешь архив и в нем 2 стиля найдешь. Для них 6 TYPфайлов и того 12 вариантов.

Точно невнимательный. Маптурист сообщение на 13ой странице под номером 324
И обнови MKGMAP и SPLITTER до крайней версии.

Ага, всё нашлось :slight_smile: Забыл самое главное спросить: есть способ быстрого тестирования результата ковыряний без заливки карты в прибор? (а то слегка напрягает, благо, что файлик меньше 200 Мб)
Файлы, по идее, mkgmap все необходимые создаёт. Но в Basecamp запихнуть их просто так нельзя, вроде бы…

Удивляюсь я твоей невнимательности :smiley:
Сообщение 331 черный квадрат ползунок вниз.
Читаем
“rem Создаем карту gmap (для BaseCamp и MapSource) с помощью MKGMAP”

а дальше
просто скопировать папку “*.gmap” по указанному ниже пути (в зависимости от ОС компьютера):
для WinXP путь C:\Documents and Settings\All Users\Application Data\GARMIN\Maps
для Win7/8/10 путь C:\ProgramData\Garmin\Maps

От жеж :smiley: А у меня оправдалка: много инфы, закопался чутка.
Всё получилось, дас ыст фантастыш!
Странно, что в options.txt про –gmapi сказано «Create a directory in the “gmapi” format required by Mac applications.»
Приятно, что кто-то подскажет, ёлки-палки.
UPD Позже мне подсказали, что можно создать ярлыки (файлы *.lnk) на соотв. папки и закинуть их по указанным выше директориям в завис. от версии Windows, тогда BaseCamp также подхватит эти карты.

Начинаю проводить эксперименты с плагином https://forum.openstreetmap.org/viewtopic.php?id=58978
Может что интересное получится.

В таких случаях принято говорить: «Экий Вы, однако, затейник» :smiley: Sergey Astakhov — в помощь.
С названиями и значками по большей части разобрался, сделал свой вариант stranger-а. Вот не знаю, можно ли как-то прикрутить отображение адресных точек с номерами домов и подъездов с номерами квартир средствами mkgmap.

А как их мапят? Прикручивать думаю надо в поинтах и в имя загонять нужную инфу.

Это, соответственно:
Отдельно стоящая точка или часть линии (addr:housenumber=)+(addr:street=)
Точка на контуре дома (addr:flats=диапазон номеров)+(entrance=staircase/yes)+(ref=номер подъезда)
P. S. Оказалось всё просто, сделал.

Стиль MapTourist файл polygons:

(building=* | bridge=yes & area=yes) { name 'д.${addr:housenumber} (${name}) ${addr:street}' | 'д.${addr:housenumber} ${addr:street}' | 'д.${addr:housenumber}'} [0x13 resolution 24]

На экране видим (если в TYP 0x13 разрешено показывать) д.1 Ленина проспект. У MapTourist в TYP 0x13 стоит “невидимая надпись” и видно только при наведении курсора. У бери из строки “д.” и будет просто 1 Ленина проспект. Это все на зданиях building
Стиль Stranger файл polygons:

building=* { name '${addr:housenumber} (${name}, ${name:full})' | '${addr:housenumber} (${name})' | '${name} (${name:full})' | '${name}' | '${name:full}' | '${addr:housenumber}' } [0x13 resolution 24]

тут номер дома без улицы.
Я сделал так как MapTourist (но без “д.”) в конец строки добавил “продолжить” по ангельски.
и в файл points добавил строку как в полигонах Stranger. Теперь я вижу номера домов, а наведя курсор номер дома и название улицы.
Точка или полигон с номером дома и именем улицы это building
А как называется точка с номером квартир и подъезда. ref ведь тоже в имя добавить можно. Может и addr:flats можно добавить, пробуй.

Но это сработает только на точках, имеющих *building=**, в то время как адресные точки не имеют этого тега (только адреска).

Не понял…

Тоже хотел подобного эффекта добиться (особенно для подъездов). А как получается, что присвоив один и тот же TYP (0x13) по двум разным условиям — подписи (разные!) одновременно и видимые и невидимые? Видимость (шрифт и всё такое) выставляется галкой для TYP, насколько знаю. Но, если TYP один и тот же, то не важно, по какому условию он был присвоен — всё равно его название может быть либо видимым, либо невидимым.
Иными словами, не въехал, как получилось одному и тому же TYP (который 0x13) прикрутить одновременно (невидимые улица+номер) и (видимый только номер)???
Для подъездов сделал так (0x1151f картинку переделал на свой лад):

entrance=staircase | entrance=yes { name '${ref} (${addr:flats})' | '${addr:flats}' | '${ref}' } [0x1151f resolution 24]

А хотел добиться, чтобы всегда были видны только номера ref, а наведя курсор — получить addr:flats.
Для адресных точек сделал пока так (но посмотрю, что получится по твоему варианту):

addr:housenumber=* & addr:street=* & building!=* & entrance!=* { name '${addr:housenumber}' } [0x1161a resolution 24]

0x1161a тоже сам намалевал.
Всё — только для points.