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

Прошёл-то всего год - https://forum.openstreetmap.org/viewtopic.php?pid=740277#p740277

Думаю это проблема не в getbound, а в JOSM или плагине (после обновления).
Могу так говорить потому, что когда разбирался с форматами полифайлов, то никакая программа не требовала отсутствия пустой строки.
И даже напротив - во всех описаниях и примерах (в т.ч. и в OSMosis) пустая строка имеется!

Могло пройти и больше, если бы не пришлось поработать с POLY.

я добавлял отдельный writer, чтобы формат соответствовал описанию POLY в вики

getbound.pl -om poly-strict <...>

Да, я уже нашел, скачал и опробовал. Большое спасибо за эффективную работу.

Вопрос по mp-postprocess.pl
Запускаю строкой perl mp-postprocess.pl RU-KL.mp
Ругается
Use of uninitialized value $object in string eq at mp-postprocess.pl line 99, <$in> line 1.
и портит итоговый файл
Было RegionName=Республика Калмыкия Городовиковский район
Стало RegionName=Республика Калмыкияовиковский р-н
Что можно сделать для исправления?

В программе есть такая строка:
$line =~ s/ город//i;
Я у себя ее отключил, так как много где встречается слово “город” в названиях, и вылезает бяка.

Спасибо большое!
На 99 строку по прежнему ругается, но портить названия перестал. Попробую в батник воткнуть…

Кто владеет языками :slight_smile: подскажите пожалуйста, в каком месте в osm2mp находится вот такое преобразование:
В ОСМ улица подписана как “Цветочная улица (Советский район)”. osm2mp преобразует название как “Цветочная улица /Советский район/”.
Мне надо чтобы вместо прямого слеша ставился обратный.

Заранее спасибо.

А где в мр-файле такая запись?
У меня в мр-файле нет никаких разделителей.

А зачем в OSM район города указывать в name улицы? Для этого есть place=suburb.
Разве не так?

Относительно скобок и слешей - они могут выполнять двойные функции = собственные и программные. Один из слешей как раз и выполняет функцию определения что за ним следует = обычный знак или программный элемент.
Ваша проблема скорее всего в файле пост процесса. Я тоже далек от программирования. Как смог , извините.

Можно почитать https://www.opennet.ru/base/dev/pcre_perl_intro.txt.html

Вам повезло. Вот два примера:
https://www.openstreetmap.org/way/148882551
https://www.openstreetmap.org/way/533487528

Я не знаю, зачем это сделано так, но в результате в .mp получается вместо () - //. А мне надо чтобы было \

Описанное получается до постпроцессинга. Сразу после завершения osm2mp. В связи с чем и возник мой вопрос.

Тогда надо больше конкретики. Это тот объект?
https://www.openstreetmap.org/way/148882551#map=11/56.3056/44.0036

Вы что то меняли в ozm2mp?

Нет. Сейчас используется скрипт вроде от gryphon, где названия станций метро на входы копируются.

А как это выглядит. Могли бы вы привести цитату из файла *.mp?
И дайте ссылку на то как это в OSM.
У себя не могу воспроизвести то что происходит у вас.

; WayID = 155408702
; building = yes
[POLYGON]
Data0=(56.3042604,43.9941972),(56.3042312,43.9940442),(56.3043521,43.9939693),(56.3043813,43.9941223),(56.3042604,43.9941972)
EndLevel=1
Type=0x13
Label=13
CityName=Нижний Новгород
Floors=1
HouseNumber=13
RegionName=Нижегородская область городской округ Нижний Новгород
StreetDesc=Цветочная ул. /Советский район/
[END]

Ну так это после постпроцесса - mp-postprocess.pl. Что и говорю. Это не osm2mp делает, а постпроцесс.
Вспоминайте что правили в mp-postprocess.pl?

Вероятнее всего правили эту строку:

    [ 'ул(?:|ица)'              =>  'ул.'    ],

К вопросу, строку не удалял, а сделал так (пробел с обеих сторон):

    $line =~ s/ город //i;

Я уже писал, что это в .мр сразу после osm2mp. постпроцесса у меня пока нет. что видно по несокращенным области и району

А почему у вас вместо “улица” - “ул.”?
В OSM сокращения нет - https://www.openstreetmap.org/way/155408702
Сокращения это как раз опция постпроцесса. Вы правы. У вас его нет, а сокращение есть. Странно.
Я не знаю чем вам помочь. Я просто помогаю вам вспомнить где и что вы правили. Другой помощи пока все равно нет.

улица сокращается пока другой тулзой. самописной от Zkir