Mkgmap

Вопрос к тем, кто собирал или пытался собирать карты нескольких стран…
Есть Болгария и Румыния, которые хочется иметь в навигаторе. Проблема, что при использовании charset 1251, болгарские названия отображаются верно, а в румынских часто встречаются ? на месте необычных символов. Как можно собрать карту? Как-то делить на две части, собирать их с разной кодировкой и сложить в одну? А чтоб рутинг между ними работал?

Вообще, чтоб не играться с несоответствиями PID, FID, сложил осмозисом два дампа стран в один файл, и сплиттером и mkgmap-ом делал img. Есть ли другие способы, без участия осмозиса?

Разные кодировки внутри одного FID всё равно толком не уживутся (mkgmap же юникод ещё не умеет?).
Лучше сделать полностью отдельные карты.

Ещё как вариант, можно транслитерировать болгарские названия.

Подскажите по такой проблеме:
взял выгрузку Санкт-Петербурга с gis-lab, пишу правила для mkgmap, но никак не могу добиться, чтобы отображался Финский залив и Балтийское море. Не могу вычислить, каким полигоном они обозначены и с какими тегами.

UPD: разобрался. добавил параметры для генерации моря из береговой линии и подключил сгенерированные файлы береговых линий.

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

в раздел

добавляем правила для России

UPD: что-то я поторопился, данная конструкция работает только для Москвы и Питера :frowning:

Еще UPD: после нескольких попыток родилось такое правило (файл, скорее всего, должен быть в кодировке UTF8)

в параметрах для mkgmap лучше всего указать

Здравствуйте
Есть желание научиться самому делать Гарминовские контейнеры из Planet.osm (горный туризм, вело, да и вообще, не люблю дома сидеть).
Поэтому нужны карты мест, куда не доходит рука OSM-овских гуру, разных форматов (авто, топо-вело, как наиболее приближенных, универсал).
Попытка самостоятельно освоить osmosis и mkgmap - пока закончилась неудачей. Уж очень все специфично.
Формат WiKi - это скорее технический справочник, а не пособие для начинающих, которого нет.

Насколько понял технологию - Planet.osm обрезается до нужных размеров by osmosis,
после чего конвертируется by mkgmap либо в готовую img-овую карту в прибор, либо в набор для MapSource.
А вот как конкретно это делается - вопрос (какие обязательные параметры должен содержать bat файл? Все описанные в Руководстве? Или есть какие то установки default, а остальное - улучшательство?)

Отдельный разговор - TYP. Есть какой-нибудь Стандарт для OSM? Или у каждого автора свой?

Поэтому вопрос: не смог бы кто из OSM-гуру (людей умеющих делать вышеописанное) ответить, правилен ли этот путь, или подсказать, что должен содержать (создать образец) bat-файла, например, для острова Валаам (Ладожское озеро) или острова Сингапур (Южно-Китайское море) с пояснением, что есть что и зачем для разных видов карт (авто, вело, универсал).
Спасибо.

Давайте начнем с простого.

  1. нам нужна консоль (<Win+R> → cmd → ).
  2. Переходим в папку со скачанным mkgmap (cd <имя-папки>).
  3. Скачиваем с http://gis-lab.info/projects/osm_dump/ Амурскую область в формате pbf (на нем тренируемся) в папку mkgmap-а
  4. В консоли набираем: java -Xmx1G -jar mkgmap.jar <скачанный-кусок>
  5. После успешного запуска берем в папке mkgmap-а файл 63240001.img, заливаем в навигатор и “наслаждаемся” дефолтным стилем.

если п.4 выдает что-то вроде “Команда не найдена - java”, значит, надо установить JRE c сайта Оракла.

1 Like

Файл 63240001.img получился. Хоть какие то подвижки. “О Великий Larry0ua”:slight_smile:

Остается разобраться, что делали и что получилось.
Делали: запустили mkgmap (параметры по умолчанию), увеличили размер памяти виртуальной машины до 1GB, получили на выходе файл. Тут ПОКА все понятно
Что получили? Файл-карту Амурской области (Файл открывается в GPSMapEdit, на его базе можно создать контейнер - но в нем отсутствует routing).
Это ведь не контейнер для установки в навигатор? Почему Вы пишете “…заливаем в навигатор и “наслаждаемся” дефолтным стилем…”?
Спасибо.

Хорошо, раз получилось.

Мой Garmin Dakota 20, если ему этот файл положить в папку Garmin самого навигатора, воспримет как еще одну добавленную карту (поэтому не использую MapSource)

Продолжаем туториал.

Бывают довольно большие osm-файлы, mkgmap на них будет ругаться, с сообщением:


There is not enough room in a single garmin map for all the input data
   The .osm file should be split into smaller pieces first.

Такие файлы предварительно надо нарезать splitter-ом (http://www.mkgmap.org.uk/page/tile-splitter)

для этого:

  1. Скачаем Краснодарский край с уже известного источника, положим в папку с распакованным splitter.
  2. Запускаем: java -Xmx1G -jar splitter.jar RU-KDA.osm.pbf
  3. Получаем на выходе 63240001 - 63240004.osm.pbf, areas.list, template.args - их надо переместить в папку mkgmap-а
  4. Запускаем mkgmap: java -Xmx1G -jar mkgmap.jar --gmapsupp --route --generate-sea --code-page=1251 -c template.args
    Тут мы просим mkgmap собрать за нас все полученные файлы в один контейнер (остальные файлы все равно останутся, но нам будет нужен только gmapsupp.img), собрать карту с рутингом и морем, исправляем проблемы с кодировкой (если были, конечно), и используем файлы, нарезанные splitter-ом.

2Larry0ua
Сплиттер, я так понимаю, нужно класть туда же где и mkgmap?
Или можно класть в свою папку, а после переносить полученные файлы в mkgmap

Какая то куча-мала получается.

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

2 Larry0ua
Все получилось. Собрался контейнер. Маршруты прокладываются, разбирается GmapTool-сом.
Внешний вид “по умолчанию”, конечно, - ужасный (отчетливо видны квадраты нарезанные splitter-ом).
У полигонов - один формат: горизонтальная штриховка.

А у опций mkgmap должна быть именно такая последовательность

–gmapsupp --route --generate-sea --code-page=1251

или может быть произвольная?

2 Larry0ua
Мне здесь Сделали замечание: “Не по теме”.
Наверное, оно справедливое.
Не были бы Вы любезны продолжить “туториал” в предложенной теме
http://forum.openstreetmap.org/viewtopic.php?id=9249
?

продолжаем…
cобираем карту со стилем Stranger (by Max Vasilev: http://forum.openstreetmap.org/viewtopic.php?id=15613)), без тополиний
для этого нам понадобятся:

  1. Распаковать bounds_20120916.zip в папку mkgmap-а, переименовать полученную папку в bounds
  2. С помощью svn-клиента скачать https://velo100mapper.googlecode.com/svn/trunk (CheckOut) в папку mkgmap\stranger
  3. Скачать нужный кусок карты (я вот Украину собираю, качаю http://data.gis-lab.info/osm_dump/dump/latest/UA.osm.pbf )
  4. Разрезать скачанный pbf с помощью splitter-а, на выходе получить 632400xx.osm.pbf, template.args, areas.list
  5. Скопировать stranger.typ из папки mkgmap\stranger в mkgmap (возможно, эту проблему уже давно исправили, нет возможности проверить, соберется ли все без этого шага)
  6. В папке mkgmap создать файл stranger.cfg со следующим содержимым:

gmapsupp
remove-short-arcs
make-poi-index
index
route
generate-sea
code-page=1251
style-file=stranger/stranger
family-id=43
family-name=OSM map
output-dir=d:\img
country-name="UKRAINE"
country-abbr="UA"
read-config=d:\split\template.args

Очевидно, заменить d:\img и d:\split на нужные папки - первая - папка результата, вторая - папка с результатом split-а
7. Запустить mkgmap: java -Xmx1300M -jar mkgmap.jar --read-config=ukrstranger.cfg stranger.typ
8. Получить gmapsupp.img в папке результата.

шаги 1-2,5-6 очевидно, не надо повторять перед сборкой каждой карты.
family-id=43 привязан к такому же значению внутри TYP-файла, карта не подхватит стиль, если значения будут отличаться.

На счет вопросов распостранения карт, сгенерированных с этим стилем - обязательно консультируйтесь с автором.

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

  1. беру здесь http://data.gis-lab.info/osm_dump/dump/BY/ дамп Беларуси в формате .pbf.
  2. Затем: java -Xmx1300M -jar splitter.jar BY-130102.osm.pbf. Получаю в итоге 5 файлов: 64630001.osm.pbf, 64630002.osm.pbf и т.д.
  3. С каждым из 5-ти файлов проводим эту процедуру: java -Xmx1300M -jar mkgmap.jar -c configmap.conf 64630001.osm.pbf. Получаю в итоге 5 файлов 64630001-64630005.img.

configmap.conf:
family-name=OpenStreetMap
description=BELARUS
country-name=“BELARUS”
country-abbr=“BY”
charset=windows-1251
code-page=1251
transparent
lower-case
draw-priority=50
make-poi-index
index
route

  1. Загружаю эти файлы в прибор Garmin Nuvi 1410. Прибор карту видит в меню “ОБЗОР КАРТЫ”. При выборе “КУДА?” - “АДРЕС” пишет, что нет доступных карт. При поиске через меню “ГОРОДА” видит только в радиусе 10-15 км от точки нахождения и маршрут к ним прокладывает.

Собственно вопрос: почему не поиска по адресу и не видит карту.

P.s. есть сайт http://garmin.openstreetmap.nl/, там карта создается сразу (страну только выбрать), но язык карты буржуйский и пользоваться поиском очень плохо.

Скорее всего навигатор работает только с каким-то одним файлом из пяти.

Но splitter кроме pbf-файлов создаёт также template.args, который можно указать в качестве исходного для mkgmap. При этом можно сразу же объединить 5 полученных img-файлов. Для этого, соответственно, нужно добавить параметры --gmapsupp (для объединения кусков в один файл) и -c template.args (вместо -c configmap.conf 64630001.osm.pbf), в прибор нужно будет загрузить только gmapsupp.img

не получается. все тоже самое. В меню “СИСТЕМА”-“О ПРИБОРЕ”-“ПОДРОБНЫЕ КАРТЫ” карта присутствует.

В последних версиях mkgmap появился адресный поиск по номерам домов в выходном файле .img
Только не торопитесь обновляться. Также в последних версиях похерили индекс в кодировках, отличных от CP-1252, и он не работает во всех версиях которые сейчас на сайте разработчиков. Так что опробовать можно, только если собирать карту в транслите с этой кодировкой. Сообщение разработчикам уже послал.
Для включения поиска служит опция --housenumbers. Сам поиск по номерам домов работает несколько необычно: итоговая точка поиска указывет не на дом, а на пространство между домом и улицей, к которой относится дом.

После перехода на mkgmap-r3262 пропали наименования населённых пунктов (точки присутствуют) - не подскажите где копать?

Larry0ua, не могли бы вы актуализировать свой пост #308?
Получилось найти и скачать стиль с github.
Файлы границ - нет.
И .cfg сейчас, видимо, иначе выглядеть должен.
Заранее премного благодарен.

Так, я бы, честно говоря, не заметил, что меня тут упомянули :slight_smile:

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

Без границ картинка показываться будет, не будет работать поиск. Границы можно собрать самостоятельно, либо забрать тут: http://www.mkgmap.org.uk/download/mkgmap.html