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

Вы исправили не тот объект. Или точно не все объекты. Он не единственный - Цветочная улица (Советский район) 13. Кроме того там есть ещё аналогичная адресация по Приокскому району - Цветочная улица (Приокский район) 13. Там не только на самой улице, но и на домах в addr:street район прописан.
https://www.openstreetmap.org/way/627592743
https://www.openstreetmap.org/way/155408702
Видимо местные так решили разнести одноименные улицы одного города.
Да и вопрос был про другое - вместо (район) у пользователя получается /район/. Человек вместо /район/ хочет \район. Я так понял вопрос.

Все объекты я не смотрел. Мне было важно понять суть, поэтому исправил ту часть, что автор указывал.

Может быть!
Но я понял автора так, что вначале его интересует откуда в принципе взались скобки (любые), а уж только потом возник вопрос о слэшах.
Ну слэши элементарно меняются в редакторе.
Что касаемо превращение обычных скобок в слэши, то это вероятнее всего (только как мысль) из-за того, что обычные скобки могут не допускаются, поэтому при конвертировании автоматом заменяются на прямые, которые автор считает слэшами.

Сегодня пошла ошибка при поиске неполных полигонов:

python getbrokenrelations.py < MAPS/M8/OSM/RU-KOS.osm >MAPS/M8/OSM/RU-KOS0.osm
2020-05-17 07:03:30,191 INFO start
2020-05-17 07:03:30,191 INFO parsing input stream
2020-05-17 07:03:59,104 INFO found 1 broken multipolygons
2020-05-17 07:03:59,104 INFO set([2612495L])
2020-05-17 07:03:59,105 INFO creating overpass query
2020-05-17 07:03:59,105 INFO sending http request
2020-05-17 07:03:59,466 ERROR can't send request: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:727)>
2020-05-17 07:03:59,624 ERROR can't send request: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:727)>
2020-05-17 07:03:59,782 ERROR can't send request: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:727)>
2020-05-17 07:03:59,782 INFO finish

Это на той стороне проблема или на моей? Спасибо.

Ну не знаю?! Будем считать Решено. Перебрал тучу overpass_api=, не помогало. С третьего захода сработало.
А вчера аналогично пришлось менять в JOSM.

Доброе утро! Скажите, есть ли в osm2mp механизм отбора (селекции) объектов по длине?
Селекция по площади есть:

       selector: thresholds
        value: !!perl/code |
          { _get_obj_area_size(shift) }

То ли не предусмотрено, то ли я не вижу по необразованности.
Спасибо и хорошего дня.

Какой же вы молодец! Пробую разные варианты - объединяю, исключаю… Всё работает на ура! Огромное, преогромное спасибо!

Perl - замечательный язык программирования для программистов на Perl !
Но не для пользователей… :confused:
Ибо программы, написанные несколько лет назад, на обновлённом пёрле хрен запустишь. :frowning:

Третий день безуспешно пытаюсь запустить osm2mp.pl на Win7x64. :rage:
Уже познал, что такое модули, что такое cpan.
Такими темпами скоро, чувствую, сам на пёрле начну пописывать.

На Active Perl одни ошибки, на Strawberry другие. Но результат и там и там один – ни черта не запускается.

Последняя надежда на тех, у кого всё работает: поделитесь, плиз своей папкой C:\Strawberry или C:\Perl64 !!!

Или сборкой-EXEшниками, дохлые ссылки (нет счастья в этом мире) на которые зачем-то фигурируют в WIKI.

Спасибо заранее!!!

заверните человеку осм2мп.пл с перлом в докер :slight_smile:

Успокоился, собрался и, вроде, разобрался. :slight_smile:

Качнул Strawberry perl, установил.
В папку C:\Strawberry\perl\bin\ закинул батник со следующим содержимым:

call cpan -T -i Config::Std
call cpan -i Template Text::Unidecode List::MoreUtils Encode::Locale Getopt::Long PerlIO::encoding
call cpan -i YAML  Data::Dump  Geo::Shapefile::Writer Geo::Openstreetmap::Parser Tree::R Math::Polygon
call cpan -i PerlIO::via::Unidecode PerlIO::via::PrepareCP1251 Inline::C
call cpan -i match::smart
call cpan -i Math::Polygon::Tree
call cpan -i Log::Any Log::Any::Adapter

Запустил.
В таком порядке строк в батнике всё установилось с первого раза (ждал 15-20 минут).

В результате Osm2mp.pl перестал ругаться на ошибки и нормально запускается. :sunglasses:
Сегодня вечером попробую в деле.

В любом случае огромное спасибо автору скрипта !!!

PS: Ещё: перед запуском батника пришлось вручную скачать модуль DBD::XBase и закинуть содержимое архива в папку *C:\Strawberry\perl* (содержимое папки bin - в папку bin, папки lib - в папку lib и т.д.)
Иначе не будет работать экспорт в шейпы.

Я так понимаю, что http://garmin.gis-lab.info/files/ru.moscow.mp.7z не обновляется?

Полностью поддерживаю вышесказанное!
Ещё бы getbound внешние узлы на дорожном графе ставил - вообще бы цены не было программке…

Может быть есть возможность формировать границу методом слияния/вычитания полигонов границ по средствам закачки и + с использованием локальных полигонов уже присутствующих на домашнем ПК.

Поясню - скажем в какой то момент оказалась разрушена граница Хабаровского края (вот сейчас такой случай). Впридачу границы прилегающего региона, соответствующих районов регионов. Но на ПК есть живое отношение границы разрушенного региона. Сочетая локальный файл границы и живые границы районов региона можно было бы нарезать регион на необходимые части без потери данных?!
Спасибо!

Если разрушена граница то её нужно починить! :wink: Я всегда по такому принципу действую.
Правило вычитания полигонов я просил для случаев политических, где трогать границу нельзя, но и использовать то что есть тоже не хочется.

Граница починена по моему запросу тем кто сломал . Собственно там война откатов… А при откате вылезают бяки.
Однако если можно то лишним не будет. Особо убиваться по этой просьбе не надо. Выход всегда найдется (тем более если это единичный эпизод).
А вот на счет упрощения линий подумать было бы более желательно. OSMconvert не хочет работать с границами перенасыщенными точками вершин (если я это правильно называю) - слишком близко расположенными точками. Особенно это вылезает если граница идет по линии побережья скрупулёзно огибая все изгибы волны и берега. :smiley: Их надо чуть чуть проредить.
Убился резать Приморский край в районе Владивостока. Граница там на столько замысловата, что конвертер просто таки кричит - файл или отсутствует, или слишком большой.

Пока так и пришлось руками допиливать нарезку. А режу я по причине убогости ПК. Не справляется он с разбухшими регионами.

Параметр --offset 0.01 с минимальным значением очень сильно упрощает линию. Я нарезаю по границам с --offset, а карты конвертирую уже по точным.

Понятно. Спасибо. Как то не запал мне этот параметр. Теперь думаю должен отложиться в голове.

Всем хорошей погоды на выходные.
Скажите, никто не сталкивался на Windows системе с нештатной отработкой osmconverter.exe 0.8.10. Работает вроде хорошо, но выходной файл бракуется в osm2mp. Выходит ошибка parser.
Обработал исходник в osmconvert.exe 0.8.7 и osm2mp перестал ругаться?

Аха! Оказывается завершение процесса не полноценное. Проблемы памяти. Применение параметра – hash-memory решает проблему osmconvert.exe на версии 0.8.10.

Яндекс уведомил:

И бесплатного перевода судя по всему не предвидится:
https://cloud.yandex.ru/services/translate?utm_source=emailing&utm_campaign=links&utm_content=yandex-translate

Что можно выжать из osm2mp?

--lt-priority <id>=<val>  set tranformer priority                   
 --lt-dump                 list registered transformers              
 --lt-equal <lang>=<langs> set language alias (comma-separated list) 
 --lt-gme <data>           GME table, data is <from_lang>-<to_lang>:<file>

Как этим воспользоваться? Как сделать таблицу в формате gme, и подключить её с помощью --lt-gme? Какое применение предполагает --lt-equal? Поискал, не нашел развернутого ответа. Может плохо искал.

Ещё раз перечитал что есть по Language options, отложилось следующее:
!!! на примере Украины !!!

--target-lang ru --default-lang ru

вытянут “name:ru”, где нет “name” что как правило соответствует “name:uk” (Перевод не предусмотрен)

--target-lang ru --default-lang uk

вытянут “name:ru”, где нет “name:uk”, где нет иное “name:ХХ” и если совсем ничего нет - “name”.
В этом случае доступен перевод (транслитерация):

--lt-dump

покажет “Список” зарегистрированных трансформеров, заложены в файле “Subst.pm”. Судя по всему можно корректировать.
К сожалению ссылки на ru.wikipedia.org устарели. Посему понять откуда ноги трудно.

--lt-yatr-key (--lt-yatr-cache-dir --lt-priority)

обеспечивали подключение к API Яндек.Пепеводчика. Перевод был не ахти какой, но был. Главное можно было вносить коррективы в словарь (базу sql) ручками. Канет в лето в ближайшие дни. Собственно платный вариант останется.

--lt-gme=uk-ru:trans-uk-ru.dat 
  • обеспечивает транслитерацию из собственного файла. Пример файла можно взять в GPSMapEdit.
    Нет четкого понимания можно ли использовать для полноценного перевода т.е. вместо символов прописывать целые слова и даже фразы?! Короткая практика применения не дает пока однозначного ответа.

Если есть дополнения или замечания по изложенному буду признателен. Спасибо!