Mkgmap

Это нестрашный баг, легко обходится. Однако юникодная cp65001 тоже не работает, это хуже.

Первое: интересно, зачем и откуда такая извращённая кодировка?
Второе: не понимаю смысла замены имени, а не добавления уточнения к нему. Конструкция типа { name ‘${name} (грунтовка)’} вполне работает и встречается где-то в дефолтах.

Пока что в mkgmap выявились следующие отличия, по сравнению с osm2mp:

  • Нет возможности сформировать точку из полигона
  • Похоже, нет поддержки адресации точек
  • Нет некоторых дополнительных условий типа inside_city
  • Чуть менее тонкие настройки роутинга
  • Объекты можно привязать как к уровню карты (level=[0…8]), так и к уровню прибора (resolution=[~10…24]).

А так, по большому счёту, всё то же самое, только занимаемая при работе память раза в три меньше и время выполнения раз в двадцать быстрее.

Про роутинг пока можно сказать, что он, по крайней мере, работает.

Отдельно нужно сказать про очень сильную генерализацию линий mkgmap’ом на средних уровнях. В крайних масштабах всё нормально, а в средних заметны большие ступеньки. Причём, это не зависит от входных данных и не регулируется параметрами.

Вообще-то это одно и то же, только разными словами. Или я что-то не понимаю

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

В идеале, хотелось бы иметь отключаемые слои, чтобы быстро убрать ненужное и сосредоточиться на нужном типе объектов. Однако, в гармине такого даже близко нет, увы. На данный момент наиболее интересная мысль - это точки убирать в отдельные дополнительные карты, которые можно включать/выключать в навигаторе. Кстати, файлы gpi для этого хуже - их нельзя отключать, в отличие от прозрачных карт с точками.

Level - категория карты, а resolution - категория железки. Если в заголовке карты поменять настройки levels, то придётся везде по конфигам править/подгонять значения. Если же привязать объекты к resolution, то число и разрешение уровней карты можно менять без последствий. Очень удобно для экспериментов, да и вообще полезно.

Даже не задумывался о такой необходимости…
Соответствие уровней карты слоям битности почти всегда стандартное 24-22-20-18, поводов менять не возникало :slight_smile:

23-й и 21-й, уровни задействовать, например. Сейчас есть разрыв между 120 м и 500 м и между 500 м и 2 км. По-моему, это слишком далеко.

Такая уж кодировка UTF-8 принята в нашем проекте :slight_smile:

Согласен, давно пора сделать, всё никак руки не доходят. Не исключаю, что и дефолтный стиль за последние полтора года много интересного приобрёл.

Ну я как бы к тому, что можно добиться читаемых надписей, а не просто работающих. Я в виндовой консоли тоже долго мучился с русскими именами файлов, пока не узнал, что можно выставить кодировку и писать их по-человечески, не меняя на иероглифы.

Ууу, мощно… Полтора года назад я вроде и про сам осм-то не слышал.
Судя по кускам обсуждений, за последний год там точно дофига изменений. А чего не обновлялся-то? Не знаю, как раньше, но сейчас всё выложено в SVN-репозиторий. Или ещё проще: можно скачивать актуальный готовый jar и скриптом запихивать туда свои стили, всё очень просто, это ж zip.

Это ж мне надо не лениться и синхронизировать свой стиль с дефолтным вручную. :slight_smile: А сам mkgmap я конечно обновляю до SVN trunk перед каждой генерацией карты.

Научите загружать карту после mkgmap в MapSource.
Пробовал исталлировать в реестр вручную, но не вышло.
Пробовал MapSetToolKit, но он требует cgpsmapper, которую надо покупать.
А если залить в гармин gmapsupp.img, то потом при попытке взять с флешки карту MapSource’ом он говорит, что карт на флешке нет.

cgpsmapper можно на офсайте скачать, есть бесплатная версия, у меня работало сегодня

Еще раз: cgpsmapper бывает версии Free, а бывает Personal. Первая - полностью бесплатная, но серьёзно урезанная, вторая - условно бесплатная (shareware), но с полным функционалом, включая упоминавшийся роутинг.

Не понял, нафига вручную-то? Ставишь себе любой SVN-клиент и рассматриваешь себе изменения. У меня вот Лёшин osm2mp так работает, локально все файлы с настройками изменены, а SVN всё это самостоятельно нормально обновляет и разруливает, всегда актуальная версия получается, с учетом всех изменений дефолтных стилей.

С mkgmap я, правда, еще не заморачивался, там изменения более редкие. Тупо качаю свежий jar и скрипт добавляет туда внутрь мои стили, ручной работы минимум.

гуру по правилам mkgmap-а вопрос :slight_smile:
как сделать так, чтоб у домов с номерами этот самый номер рисовался сверху дома на карте?
пробовал: styles/default/polygons:
building=* | man_made=* | amenity=* | tourism=* {name ‘${addr:housenumber}’} [0x13 resolution 24]

в MapSource показывается, но показывалось и без этих изменений, на навигаторе не вижу номеров, только когда кликаю на дом :frowning:
тестирую на garmin dakota 20.

Есть какие-то предложения? Может, в правиле ошибся?

IMHO, гармин просто не подписывает маленькие полигоны.

У меня в тестовом наборе на дома вот такое простенькое правило:
building=* & building != no {name ‘${addr:housenumber}’ |‘${name}’} [0x13 resolution 24]

Случай bulding=no не забывайте учитывать. В osm2mp он тоже учитывается.

В навигаторе (Vista HCx) номера видны. Странно, по сути, та же фигня, что и у вас. А на любых других картах номера отображаются? Например, можно тупо нарисовать в мапедите прямоугольник с типом 0x13, выставить ему метку, скомпилить эту тестовую карту и залить в навигатор.

Мой подписывает, если рядом других надписей нет. Сейчас специально нашел пару мелких трансформаторных будок.

Кстати, да, Larry0ua, если сильно приблизиться к дому, номер так и не появляется?

поигрался с настройками отображения в меню настройки-карта-расширенные параметры отображения-размер текста-растительный покров-маленький, было “Нет”. Теперь номера домов отображаются на карте, ура :slight_smile: но почему именно растительный покров… долго бы искал специально… Спасибо за помощь :slight_smile: