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

Первый принцип ОСМ - если тебе это нужно-сделай сам.
А другие в это время будут и дальше усложнять базу. И так до бесконечности…

Никогда не вникал в содержимое POLY файла. Столкнулся с тем что файл России не открывается JOSM. Выдает ошибку - “Найдены координаты вместо …”. Открываю тестовым редактором файл полученный с помощью getbound.pl -api osm:

Relation 60189
1
   86.4256462   49.6242938 
   86.4286117   49.6293521 
   86.4477538   49.6377689 

Такой файл JOSM не читает. Качаю POLY с geofabrik.de:

polygon
1
   4.745024E+01   4.121199E+01
   4.755554E+01   4.114866E+01
   4.763965E+01   4.117394E+01

Такой файл JOSM открывает. При этом osm2mp понимает оба формата. По крайней мере ошибку не выдает.

Что, где и каким образом должно быть? Спасибо.

Ошибка в чём-то другом, а не в представлении чисел.

lat и lon местами не спутаны?

Пустую строку убери!

Да, это реально помогло! Не понятно только, изменился формат файла POLY или JOSM разучился читать пустую строку. Раньше такого не наблюдал. Спасибо.

Прошёл-то всего год - 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, где названия станций метро на входы копируются.