Mkgmap

Пока нету.
В последних версиях Mkgmap, внедренная ранее идея по расстановке адресной информации из объектов границ (линии и мультиполигоны), вынесена в отдельный процесс. Суть в том, что сперва из ОСМ-данных Осмосисом долго и печально фильтруются эти границы, затем с определенным ключем Mkgmap создает специальные тайлы с данными об этих границах, и только после этого можно запустить компиляцию уже непосредственно самой карты. В общем, процесс громоздкий и не очень предсказуемый. Мне же пока вообще не удалось добиться положительного результата с этой новой технологией. Посему сборки на сервере пока происходят при помощи версии locator-r1912. Это была последняя версия, которая добывала адресную информацию непосредственно в момент компиляции.

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

Неплохо для начала хотя бы для транслита

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

Уточните, пожалуйста, чем плоха представленная выше? Я могу поискать что-то другое, если пойму, чем та не устраивает :slight_smile:

Видел какой то сайт, так там сборка делается через mkgmap прямо не сервере. Это как примерно в 2 словах сделать? Или это невозможно? (я веду на своем сайте небольшую картографическую страницу где пользователи могут опубликовать свой трек) то есть для себя лично и для пользы дела мне это проще делать на сервере через cron (повторюсь: если это возможно и я по привычке ничего не напутал)

Собственно, всё есть в википедии. Единственная проблема с mkgmap в плане транслитерации - он не различает сочетания букв в исходных словах, а тупо заменяет каждую исходную букву на одну или несколько в соответствии с таблицей. Кто-то делал патч для поддержки сочетаний букв, но я его не нашел.

Сегодня утром карты соберутся с новыми настройками. Последнюю неделю экспериментировал и вот чего получилось:

  1. мосты с area=yes конвертируются в полигоны зданий.
  2. точки населенных пунктов теперь видны на меньших масштабах.
  3. существенно поменялся TYP-файл. Изменено много старых иконок и добавлены новые. Суть этих изменений в минимизации занимаемой ими экранной площади с улучшением читаемости. Заменено много стандартных иконок на значки меньшего размера. Работа еще не завершена, буду доделывать понемногу. Но уже сейчас размер TYP-файла увеличился в два раза.

Еще у меня возник вопрос о точках ограничения движения. Сейчас на роутинг никак не влияет наличие на дороге преград в виде столбиков, блоков, ворот или шлагбаума. И что-то пока не придумалось ничего по встраиванию этого дела в параметры маршрутизации у таких дорог. По сути это близко к отношениям ограничений, запрещающих или разрешающих повороты. Столбики и прочие шлагбаумы так же обычно ставятся на точку в составе дороги, но как это теперь объяснить Mkgmap-у, что и это нужно учитывать при построении логики маршрутизации?

Add:
Тайлы теперь будет нарезать новый Сплиттер версии 174.

А лежачие полицейские будут? Очень нужно! :slight_smile:

А так, огромное спасибо, замечательная сборка, очень радует качеством. Правда всё хромает отрисовка мелкого маштаба, дороги заполоняют всё так (не значимые), что город одна сплошная дорога становиться, исчезают лишь дворовые проезды, но может у меня что-то в настройках навигатора не так.

Попробуйте изменить настройку детальности карты в навигаторе. В городе не имеет смысла пользоваться максимальной.

У меня стоит Норма (eTrex Vista HCx), правда я карту обновлял дней 10 назад.

В гарминах обычно 5 вариантов режима детальности, и выбор зависит не только от даты изготовления карты. Еще от размера и разрешения экрана. :slight_smile:

Гарминовская опция детальности тупо сдвигает видимость всех объектов карты на ступень. То есть,
Most (+2)
More (+1)
Normal (как есть)
Less (-1)
Least (-2)

Например, домики, рисующиеся по умолчанию до 120 м (Level 24 - 120 м), при настройке More будут рисоваться до 300 м (Level 23 - 200-300 м), а при настройке Most до 500 м (Level 22 - 500 м). Никакого шаманства, просто временный сдвиг детализации на уровень.

Вот надоумили меня старшие товарищи взяться за самостоятельную конвертацию посредством mkgmap.

У кого-нибудь есть мануал для чайников?

Для чайников не встречал, но почти все есть в ви-ки http://wiki.openstreetmap.org/wiki/RU:Mkgmap и этой теме

Я по вики учился, там всё очень подробно описано.

Попробовал сделать по вики, получил кучу ошибок при попытке конвертации свежего дампа Краснодарского края. :frowning:

К сборке добавились три прибалтийских государства - Литва, Латвия и Эстония. Теперь покрытие карты полностью соответствует территории всего бывшего Союза. :slight_smile:

Еще новость - я перешел на исходник в PBF-формате. Скорость всего процесса существенно возросла. Ну, и сам исходник появляется раньше. Так что и готовая карта теперь генерится раньше. К 12-и дня обычно уже готовы все варианты.

  1. может кто-то встречался с ошибкой - при использовании --charset=windows-1251 в последней версии mkgmap на выходе в файле русские буквы левыми символами выводятся, в 1725-версии все нормально. смотрю в garmin dakota 20.

  2. выложите картинку-результат карты с TYP-файлом :slight_smile: и строку запуска плз :wink:

Kotelnikov, для дефолтной конвертации достаточно запустить:
java -Xmx1024M -Xms1024M -jar mkgmap.jar --charset=windows-1251 --net --route --family-id=1011 --ignore-osm-bounds MY_FILE.osm
если надо кастомизировать цвета, будет сложнее :wink:

Время от времени провожу эксперименты со свежими версиями, но с таким не сталкивался. Первое, что приходит на ум - попробовать убрать или добавить ключ --lower-case.
Для ежедневных сборок я все еще пользуюсь версией mkgmap-locator-r1912. Работает стабильно. Никто пока не жаловался.

А из каких соображений вы включаете --ignore-osm-bounds? Разработчик предупреждает о возможных проблемах с роутингом при добавлении этого ключа. А их и без этого хватает.

Немного картинок:

add:
Моя строка запуска. Точнее куски make-скрипта:

${SPLITTER} \
	--geonames-file=cities1000.zip \
	--overlap=20000 \
	--max-nodes=1000000 \
	--no-trim \
	--split-file=areas.kml \
	local.osm.pbf

${MKGMAP} \
	--output-dir=/home/valentin/OSM_MapTourist \
	--description="OSM MapTourist" \
	--family-name="OSM MapTourist `date "+%Y-%m-%d"`" \
	--series-name="OSM MapTourist `date "+%Y-%m-%d"`" \
	--overview-mapname="OSM_MapTourist" \
	--area-name="OSM `date "+%Y-%m-%d"`" \
	--family-id=490 \
	--keep-going \
	--read-config=optionsfile.args \
	--style-file=./myConfigs \
	--style=${STYLE} \
	--gmapsupp \
	-c template.args ${STYLE}/M00001ea.TYP

areas.kml - правленные руками и зафиксированные границы тайлов.

Содержимое файла optionsfile.args:
max-jobs:2
code-page:1251
tdbfile
index
lower-case
route
net
drive-on-right
remove-short-arcs
location-autofill=2
generate-sea=extend-sea-sectors,close-gaps=300000,floodblocker

А, вот еще что. Случайно обнаружил возможность локализации объектов на выбранных слоях! Т.е. не с самого подробного, а с того слоя, с какого нужно. Очень просто, кстати. Нужно указать не один конечный левел, а диапазон. Например 22-18. И объект будет только на этих крайних и промежуточных слоях.