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

Параметр --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.
    Нет четкого понимания можно ли использовать для полноценного перевода т.е. вместо символов прописывать целые слова и даже фразы?! Короткая практика применения не дает пока однозначного ответа.

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

Привет. Заметил что getbound стал выдавать ошибку при попытке скачать границу:


C:\osm-getbound-master>getbound.pl 51490 -o 51490.poly
Downloading relation ID=51490
GET https://www.openstreetmap.org/api/0.6/relation/51490/full
Download failed: 500 Can't connect to www.openstreetmap.org:443
Failed, trying by parts
GET https://www.openstreetmap.org/api/0.6/relation/51490
Download failed: 500 Can't connect to www.openstreetmap.org:443
Failed to get relation ID=ARRAY(0x4179d78) at C:/osm-getbound-master/lib/App/OsmGetbound/OsmApiClient.pm line 92.

Это что то у меня поломалось или в консерватории? :slight_smile: exe версия отрабатывает без ошибок.

Только, что попробовал perl-овским - скачивается всё идеально…

Вопрос конкретно про версию с этого репозитория. У меня в exe её более старая редакция.

Именно с указанного Вами репозитория!

PS: Сейчас специально зашёл, скачал и сравнил файлы - один в один (ну кроме добавления в алиасы Твери).
Из практики… Смотрите, что и где были изменения в Perl.
С предыдущей версией так же голову ломал, почему либо только ехе-шная версия работает, либо только perl-овская.
Сейчас совершенно одинаково работают и та и другая.
“Вылечилось” переустановкой Perl и не только самой перестановкой, а подборкой версии.
Как-то всё это непонятно и очень “капризно” порой…

Я думаю это проблема из-за TLS 1.3, недавно активировали на серверах ОСМ. А старый софт в него не умеет. Какое-то время назад у меня перестал работать номинатим, и не работал пока я не стал форсировать соединения по 1.2

В том то и прикол что Perl не трогал, не обновлял. Всё работало и перестало. :slight_smile:

Не могу проверить. Днём бы раньше, сейчас на выезде. И главное на прошлой недели обновлял карты. Границы не обновлял.
Хотя не совсем так. Грузию и Абхазию обрабатывал от и до. А толку? Может там и была ошибка да не заметил. Границы остались старые и остальные обработки прошли по маслу.

Надо делать доступ к ПК по удалёнке. Посмотреть дату границ и было бы ясно. Опять же у меня Linux. Может и отработало нормально.

Попробовал Лёшину версию getbound`а тоже перестала работать:


C:\osm-getbound-master>getbound.pl 51490 -o 51490.poly
Downloading relation ID=51490
GET http://www.openstreetmap.org/api/0.6/relation/51490/full
Download failed
Failed, trying by parts
GET http://www.openstreetmap.org/api/0.6/relation/51490
Download failed
Failed to get relation ID=51490 at C:/osm-getbound-master/lib/App/OsmGetbound/OsmApiClient.pm line 89.

Где-то у тебя нестыковка в библиотеках/файлах.
Видимо всё же не заметил как когда-то произошло автообновление файлов в Perl.

Попробовал на скорую руку - вроде работает как работало (Linux). Надо будет глянуть ещё на Windows 10.

P.S. на Windows 10 тоже работает:

perl getbound.pl 1245702 -o D:\7W\MAPS\AB\POLY\AB-1.poly -api osm -onering
perl getbound.pl 2027322 -o D:\7W\MAPS\AB\POLY\AB-2.poly -api osm -onering
perl getbound.pl 2027323 -o D:\7W\MAPS\AB\POLY\AB-3.poly -api osm -onering
perl getbound.pl 2027325 -o D:\7W\MAPS\AB\POLY\AB-4.poly -api osm -onering
perl getbound.pl 2624774 -o D:\7W\MAPS\AB\POLY\AB-5.poly -api osm -onering
perl getbound.pl 2624775 -o D:\7W\MAPS\AB\POLY\AB-6.poly -api osm -onering
perl getbound.pl 2624773 -o D:\7W\MAPS\AB\POLY\AB-7.poly -api osm -onering

как пример

Снёс Perl, скачал заново версию. Установил только те модули что требовалось для работы osm2mp и getbound. Однако те же яйца но в профиль, getbound не работает (ошибки те же что выше). Только собранная ранее exe`шная версия работает.

Да-да!.. Смотри моё сообщение #4518.
Ни 14, ни 16, ни 20 версии не дали мне нужный результат.
Только подборка версии и помогла - теперь и ехе-шная и perl-овская работают одинаково.
Сейчас абсолютно точно не могу утверждать, но вроде как 5.24. х64 решила мою проблему.
“Бился” несколько месяцев… :slight_smile:

У меня эта версия и стояла, я в своё время собирал две [exeшные версии getbound на 5.16 и 5.24.](https://forum.openstreetmap.org/viewtopic.php?pid=638661#p638661) К тому же у меня лежали в архивах старые настроенные версии perl где всё работало отлично и на которых я собирал exeшные версии. В них те же самые ошибки с getbound. Я уже на провайдера грешу потому как не вижу других причин.
PS: Сейчас повторил настройку perl с этой версией. Теже яйца что и раньше.

Ну проблема от провайдера врядли, иначе и ехе-шная не работала бы.
Похоже у меня 5.24.0.240 х32/64-300558
Пришёл к выводу, что что-то в подгружаемых файлах/библиотеках.
После каждого эксперимента (версии), чистил машину (в папках, реестре), а потом устанавливал другую версию.
Когда всё стало, файлы подгружал только те, что требовал getbound.
Ну вот и всё получилось.
Да… Локальные файлы в getbound использовать только те, что идёт с программой.
В противном случае будет то, что наблюдаешь.