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

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

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.

Полностью это выглядит так:

  • level: city
    tags: [ city, town, hamlet ]
    area_condition:
    or:
    - place = city|town|village|hamlet|allotments|isolated_dwelling
    - and:
    - type = multipolygon|boundary
    - boundary = administrative
    - admin_level = 8

Как работает логика (приоритетность) между tags: [ city, town, hamlet ] и/или area_condition:
Эти запросы могут быть использованы самостоятельно (раздельно)?
Касательно самостоятельности tags: - пример имеется, а вот area_condition: - без строки tags: будет работать?

Будет. Про приоритетность уже не помню

При использовании ключа --textfilter=PrepareCP1251 в .mp файле всё равно остаются следующие записи:


\N{INFINITY}
\N{FIGURE DASH}
\N{COMBINING ACUTE ACCENT}
\N{SUPERSCRIPT THREE}
\N{ZERO WIDTH NO-BREAK SPACE}
\N{FOUR-PER-EM SPACE}
\N{MINUS SIGN}
\N{LEFT-TO-RIGHT MARK}
\N{REPLACEMENT CHARACTER}
\N{RIGHTWARDS ARROW}
\N{DOUBLE PRIME}
\N{NARROW NO-BREAK SPACE}

Их как то можно убирать или автоматически менять на символы из 1251? Например в постпроцессоре?
PS: Пробовал вот так, но не меняет:


    $line =~ s/"\\N{INFINITY}\n"/ /;
    $line =~ s/"\\N{FIGURE DASH}\n"/ /;
    $line =~ s/"\\N{COMBINING ACUTE ACCENT}\n"/ /;
    $line =~ s/"\\N{SUPERSCRIPT THREE}\n"//;
    $line =~ s/"\\N{ZERO WIDTH NO-BREAK SPACE}\n"/ /;
    $line =~ s/"\\N{FOUR-PER-EM SPACE}\n"/ /;
    $line =~ s/"\\N{MINUS SIGN}\n"/-/;
    $line =~ s/"\\N{LEFT-TO-RIGHT MARK}\n"/ /;
    $line =~ s/"\\N{REPLACEMENT CHARACTER}\n"/ /;
    $line =~ s/"\\N{RIGHTWARDS ARROW}\n"/ /;
    $line =~ s/"\\N{DOUBLE PRIME}\n"/ /;
    $line =~ s/"\\N{NARROW NO-BREAK SPACE}\n"/ /;

Тогда уж

$line =~ s/\\N{INFINITY}/ /;

А вообще признаю, что вываливать названия символов было плохой идеей; надо будет убрать.

Первым делом так и попробовал, тоже не убираются.

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

Столкнулась с такой проблемой при конвертации файлов из osm в mp.
У меня есть два смежных файла osm, у которых на совместной границе находятся разрезанные сегменты дорог с нодами, имеющими характеристику garmin:extnode=yes. После конвертации скриптом osm2mp у этих нодов не записывается эта характеристика, то есть в результате роутинг на границе рвется. Как можно решить эту проблему?

Проверил на своей области, когда-то давно ставил эти ноды для совместимости с другими картами. Конвертируются как положено, в мапедите стоит галочка extnode.

chnav, я сама вырезала из общих данных 2 части, которые мне нужны, то есть никаких специально поставленных нодов там нет. В результате на границе двух частей получились сегменты с крайними нодами, у которых стоит характеристика extnode, но после конвертации эта характеристика утрачивается, в этом и суть проблемы.

Svetika,
давай тестовый пример + id нодов с неправильным поведением.

osm-файлы:
https://drive.google.com/file/d/0B8yBFpw8lTJucDFRZVpBY21lRkE/view

сконвертированные mp-файлы:
https://drive.google.com/file/d/0B8yBFpw8lTJuQmR1Uk9MeEV2UjQ/view

Ноды для примера:
файл 1:
RoadID=450
Nod21=323

файл 2:
RoadID=242
Nod0=499