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

Пытаюсь сконвертировать карту северной америки.
Взял полигон osm_bbox_-164.2,10.7,-50.3,70.5.bin
Запускаю только что выкачанную с гит-хаба версию:

./osm2mp.pl /home/user0/DriveD/0_Hardware/GPS/osm_bbox_-164.2,10.7,-50.3,70.5.bin na.mp

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

Loading configuration...

Loading OSM data from file /home/user0/DriveD/0_Hardware/GPS/osm_bbox_-164.2,10.7,-50.3,70.5.bin...

not well-formed (invalid token) at line 1, column 2, byte 2 at /usr/lib64/perl5/vendor_perl/XML/Parser.pm line 187.

Что я не так делаю?

ну, для начала, запускать надо как-то так


./osm2mp.pl -o result.mp dump.osm

где dump.osm - имя файла с исходными данными в формате OSM (это важно), а result.mp - имя сконвертированного файла с картой

P.S. дампы в правильно формате можно найти здесь http://download.geofabrik.de/

А чем эти дампы в правильном формате отличаются от раздаваемых OpenStreetMap?
Просто сев. америка там 10 гиг, а я получаю выделением нужного мне прямоугольника (примерно по юг Мексики) всего 4 гиг.
В лишних 6 гиг есть что-то ценное что не раздает OpenStreetMap?

Я просто не знаю, откуда у вас получена выгрузка, отсюда и уточнение про форматы. Вобщем, если osm2mp проглотит файл, то все ОК

OSM эти данные не раздаёт.
Он раздаёт еженедельные дампы планеты + changeset-ы к нему (здесь), из которых уже делают нарезки все другие сервисы.
Возможных форматов для OSM придумали уже много. Osm2mp вроде как умеет читать только osm xml

Попробуйте прочитать документацию - http://wiki.openstreetmap.org/wiki/RU:Osm2mp

Файлы я брал с проекта Navit. Они имеют расширение bin, но на самом деле они похоже просто zip архивы со множеством файлов внутри:
Вот кончик листинга, выданного линуксным unzip:


        0  03-20-2015 01:58   addcas52______
        0  03-20-2015 01:58   addcas53______
        0  03-20-2015 01:58   addcas54______
        0  03-20-2015 01:58   addcas55______
        0  03-20-2015 01:58   ads13_________
        0  03-20-2015 01:58   cbbacs6_______
        0  03-20-2015 01:58   cbbads7_______
        0  03-20-2015 01:58   cbbas1________
   200748  03-20-2015 01:58   index
---------                     -------
641976260                     787827 files

Мне просто показалось удобным что автор проекта позволяет легко выбрать регион.
Вытащил ненулевой файл - выглядит как таблица, начинается с сигнатуры 13 00 00 00 23.
Получается их ничем в nm2 не сконвертировать?

Navit раздаёт готовые скомпилированные карты в своём собственном формате, не имеющем к формату OSM-XML (с которым работает osm2mp) никакого отношения.

Во-вторых Америку придется очень сильно резать на кусочки, чтобы её смог переварить Навител (ограничение на размер файлов nm2 16Mb)

Вырезать нужный кусочек из дампа можно волшебной утилитой osmconvert http://wiki.openstreetmap.org/wiki/Osmconvert#Applying_Geographical_Borders
А про процесс конвертации в навител можно уточнить вот в этой теме: http://forum.openstreetmap.org/viewtopic.php?id=5328

Значит облом :frowning:
Остается пытаться завести на лаптопе Navit, который пока упорно не желает показывать карту северной америки.
А можно ли на навигаторе Treelogic TL-5101BGF cнести Navitel и установить что-нибудь более дружественное к большым картам?

Можно CityGuide попробовать. Карту США из OSM они даже сами уже сконвертили.
Правда под WinCE раньше там могли потребоваться пляски с бубном, т.к. под разные коробочки нужны были разные сборки, поэтому их обычно не продавали отдельно (а только в предустановленном варианте), но может это уже поменялось, можно уточнить в ихней техподдержке.

Здравствуйте!
Подскажите какая запись в addressing.yml рабочая:

  • level: region
    tags: [ region ]
    или
  • level: region
    tags: [ region ]
    area_condition:
    and:
    - type = multipolygon|boundary
    - boundary = administrative
    - admin_level = 4
    или чего больше через “or:”…

То что вторая рабочия, сомнений нет. А вот первый вариант? Он тоже что то вытягивает (region)? В чем отличие работы tags: в первом и во втором варианте? И что будет если:
tags: [ region ] заменить ну скажем для примера на tags: [ state ] или как в исходнике tags: [ region, state ]

Может для первого варианта рабочая запись:

  • level: region
    tags: [ region ]
    area_condition: place = state

Не совсем понимаю принцип, разъясните. Спасибо!

Во втором случае регион вытащится только при соблюдении всех трёх условий, больше отличия нет.

tags: [ region, state ] очевидно же, более универсальное условие, может использоваться в странах с разным административным делением.
И судя по всему, tags: [ region ] не будет работать со штатами.

area_condition: place = state будет требовать обязательного наличия на отношении или замкнутом контуре границы тега place = state.

Тогда как правильнее записать:

  • level: city
    tags: [ city, town, hamlet ]
    area_condition:
    or:
    - place = city|city_block|farm|hamlet|island|islet|isolated_dwelling|locality|neighbourhood|town|village|yes
    - and:
    - type = multipolygon|boundary
    - boundary = administrative
    - admin_level = 8
    или
  • level: city
    tags: [ city, city_block, farm, hamlet, island, islet, isolated_dwelling, locality, neighbourhood, town, village, yes ]
    area_condition:
    or:
    - place = city|city_block|farm|hamlet|island|islet|isolated_dwelling|locality|neighbourhood|town|village|yes
    - and:
    - type = multipolygon|boundary
    - boundary = administrative
    - admin_level = 8

Прошу прощения, не силен в языках программирования. Какая строчка работает в этом случае “tags” и/или “place”? Кстати что есть plаce = yes?
Спасибо!

Это откуда вообще такой винегрет? В одной куче населённые пункты, их части, острова, муниципальные образования…
Какова ваша цель?

Откуда? Из головы которая рукам покоя не дает.
Иначе бы и не спросил…

Что остается в - level: city, что убрать вообще, что переместить на более нижние уровни? Задача вытащить максимум адресной информации в стране которую не знаешь. Можно конечно везде лепить adressing.yml по умолчанию. Но хочется понять чуть больше. А описания то нет.

А ноги выросли из - http://download.geofabrik.de/ - страна-latest.shp.zip
и из http://wiki.openstreetmap.org/wiki/Tag:boundary%3Dadministrative#admin_level
Как определить объективную достаточность конфигурации для обеспечения полноценного адресного поиска в той или иной стране?

Хорошо упростим вопрос, оставим заграницу, возьмем Россию:

  • level: city
    tags: [ city, town, hamlet ]
    area_condition: place = city|town|village|hamlet|allotments|isolated_dwelling
    почему так, а не иначе
  • level: city
    tags: [ city, town, village, hamlet, allotments, isolated_dwelling ]
    или
  • level: city
    tags: [ city, town, village, hamlet, allotments, isolated_dwelling ]
    area_condition: place = city|town|village|hamlet|allotments|isolated_dwelling

Я этого не знаю. На эти вопросы лучше всего ответил бы сам liosha.

del

Добрый день!
У меня такой вопрос: скачала последнюю версию osm2mp64 для Windows, при запуске экзешника выдается такая ошибка и программа закрывается:

Init failed for LangTransform:Subst: Eval-group not allowed at runtime, use re ‘eval’ in regex … at Utils.pm line 56

Как можно это поправить?

Буду благодарна за помощь.

Потому что теги addr:town и addr:hamlet встречаются, а addr:isolated_dwelling мне не попадались

Найти или собрать более свежий вариант osm2mp64.