Конвертер OSM -> MP

gryphon
Пытался на днях собрать карту Египта и столкнулся с вылетом конвертора. Причём и границу и osm дамп пробовал делать по разному, osmosisом, osmconvertом, по границе и просто конвертировать из pbf. Ни в какую. Вылет после:

  ---|   OSM -> MP converter  1.03   (c) 2008-2013 liosha, xliosha@gmail.com

Loading configuration...

Loading OSM data from file data/Maps/Egypt/Egypt.osm...

Initialising bounds from file data/Maps/Egypt/bounds/Egypt.poly...
  1792 segments

Loading search areas...

.pl версия при этом никаких ошибок в лог не пишет, .exe`шная версия пишет следующее:

Unrecognized character \x90; marked by <-- HERE after MZ<-- HERE near column 3 at osm2mp.exe line 1.

и тоже вылетает.

В чём может быть дело?

Собрал exe`шную версию getbound.

PS; dll`ки вроде не нужны, но закинул на всякий случай.

Мда. Выглядит не очень. Ошибка гуглится, но толку мало.
Если другие дампы на этих скриптах и конфигах собираются, надо искать, где косяк в данных (может, имя тега на арабском или что-то подобное)
У меня Египет собирался меньше месяца назад, но по кусочкам.

Недавно столкнулся с какой-то непоняткой при конвертации Крыма. Конвертер вылетел на этапе “Loading search areas…”. При этом перед этим Беларусь сконвертилась без проблем. Ради интереса проверил дома, такая же фигня. На следующий день дома скачал новый дамп, думал с ним что-то не то. Запустил чисто проверить на “клопе” (слабеньком нетбуке), увидел, что конвертация это место прошла. Остановил и включил большой комп, но на нем опять вылет. Опять запустил на “клопе” и он все, хоть и долго, но сделал. Взял этот же дамп на работу, опять вылет. Тут я уже совсем ничего не понял. Как умудрился все сделать маленький нетбук, когда два мощных компа вылетают :(.

Очевидно, запускается

perl osm2mp.exe

Запускается как и .pl версия.


chcp 65001
osm2mp.pl --config=cfg-navitel\navitel-ru-utf8.cfg --bpoly=poly/Egypt.poly --default-country=EG --default-region="Egypt" --mapname="Egypt" --default-lang=ar --target-lang=en --water-back --addrinterpolation --shorelines --disableuturns --output=Maps/mp/Egypt.mp  Maps/osm/Egypt.osm


Другие то страны нормально собираются.

Хорошая штука!
Мне, ну… очень понравилась. Всё чётко работает!
Спасибо!
Скажи… эта сборка с исправленной работой ключа “clip”, о чём говорил “gryphon”?

PS: На будущее - желательно анонсировать особенности, изменения сборки.

Потестите, пожалуйста, как работает опция clip в последней версии https://github.com/cheshire-mouse/osm-getbound

В прошлой слишком намудрил с объединениями полигонов

gryphon ИМХО что то не то. Вот так вот например получается полигон Молдовы без Приднестровья. Кусок всё равно на месте, в прошлой такого не было.

perl getbound.pl md -clip -onering -o data/Maps/Moldova/bounds/moldova.poly

PS: Кстати стал наблюдать такую ошибку в твоей сборке osm2mp, чего раньше не было:

Writing crossroads...     Use of uninitialized value in hash element at script/osm2mp.pl line 1362.
Use of uninitialized value in hash element at script/osm2mp.pl line 1376.
Use of uninitialized value in hash element at script/osm2mp.pl line 1362.
Use of uninitialized value in hash element at script/osm2mp.pl line 1367.
Use of uninitialized value in hash element at script/osm2mp.pl line 1376.
Use of uninitialized value in hash element at script/osm2mp.pl line 1376.
42311 restrictions, 0 signs

All done!!

Издалека выглядит странно, но если приблизить, то, похоже, все сделано правильно (хотя и немного кривовато): Приднестровье честно вырезано, но там есть маленький кусочек Молдавии

По ошибке. Предположу, что в данных есть кривое отношение restriction. Можно попробовать раскомментировать строчку 1361 (там print должен быть), посмотреть, на каком отношении сругнется

Вот преждняя версия getboud:

А вот новая:

Ключи в обоих случаях одинаковые. Старый вариант меня устраивает больше.

Если ты применяешь эти две границы для osmconvert и osm2mp, результат отличается?

Не сравнивал. Попробую завтра.

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

Проверил, пока ошибок не вижу.

Всем добрый вечер. Случайно обратил внимание - файл *.mp открытый и сохраненный без правки в GPSMapEdit худеет катастрофически = с 215 МБ до 162МБ. С одной стороны и хорошо. С другой за счет чего?
Конечно не по теме, но возможно кто то уже сталкивался и знает ответ. Тем более где то было сказано, что после конвертации полезно файл открыть в GPSMapEdit. Что же удаляется. За счет чего такое облегчение?
Стесняюсь спросить откуда берутся дубли. Конвертер osm2mp ищет, находит, устраняет. GPSMapEdit после этого тоже находит. И он не последний в поиске дубликатов. Разные критерии поиска? Т.е. при желании и больше можно найти?
Спасибо.

А просто сравнить файлы - что поменялось не пробовали? К тому же в них полно комментариев с отсылками на OSM-объекты, которые можно безболезненно удалить.

Там при сохранении по другому сохраняется адресация. В настройках посмотри, там есть как её сохранять.

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