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

Вам надо переходить в другую тему. Работа osm2mp исчерпана. Пошли проблемы 7 дорог.

OSM2MP версии 0.90b иногда выдает странные координаты для POI:

Input: groningen.osm (20.06.21, http://download.geofabrik.de/europe/netherlands/groningen-latest.osm.bz2))

Точки:

<node id="1125410458" lat="53.1290643" lon="6.3002692"/>
<node id="7377064448" lat="53.1290294" lon="6.3002808"/>
<node id="7377064449" lat="53.1289049" lon="6.3003223"/>
<node id="1125410464" lat="53.12887"   lon="6.3003339"/>

Путь:

<way id="97156225">
  <nd ref="1125410458"/>
  <nd ref="7377064448"/>
  <nd ref="7377064449"/>
  <nd ref="1125410464"/>
  <tag k="layer" v="1"/>
  <tag k="bridge" v="yes"/>
  <tag k="highway" v="cycleway"/>
  <tag k="surface" v="paved"/>
  <tag k="smoothness" v="intermediate"/>
  <tag k="traffic_sign" v="none"/>
</way>

Output:

; WayID = 97156225
; surface = paved
; smoothness = intermediate
; highway = cycleway
; layer = 1
; bridge = yes
[POI]
Type=0x6401
Data0=(-1504.3745661789,525.142444661335)
[END]

и еще:

Input: gelderland.osm (21.06.21, http://download.geofabrik.de/europe/netherlands/gelderland-latest.osm.bz2))

Точки:

<node id="3937863467" lat="51.9839734" lon="5.9001841"/>
<node id="4884090539" lat="51.9839777" lon="5.9001852"/>
<node id="4884090529" lat="51.9840154" lon="5.9001946"/>
<node id="3937863468" lat="51.9840213" lon="5.9001961"/>

Путь:

<way id="390621895">
  <nd ref="3937863467"/>
  <nd ref="4884090539"/>
  <nd ref="4884090529"/>
  <nd ref="3937863468"/>
  <tag k="access" v="no"/>
  <tag k="bus" v="yes"/>
  <tag k="hgv" v="yes"/>
  <tag k="highway" v="service"/>
  <tag k="layer" v="-1"/>
  <tag k="level" v="0"/>
  <tag k="maxheight" v="3.6"/>
  <tag k="maxspeed" v="50"/>
  <tag k="name" v="Stationsplein"/>
  <tag k="oneway" v="yes"/>
  <tag k="trolley_wire" v="yes"/>
  <tag k="tunnel" v="building_passage"/>
</way>

Output:

; WayID = 390621895
; highway = service
; layer = -1
; access = no
; tunnel = building_passage
[POI]
Type=0xf206
Label=Stationsplein
Data0=(-357.093395848889,-96.3691582227935)
[END]

Это глюк карты или конвертера (http://g-a-v.my-board.org/xch/OSM2MP_RUSSA.ZIP) ?

У меня конвертер = OSM → MP converter 1.03 (c) 2008-2013 liosha, xliosha@gmail.com
https://github.com/liosha/osm2mp
Он же с некоторыми доработками доброго активиста - https://github.com/cheshire-mouse/osm2mp

Карты (исходные данные) показывают верные координаты. Значит?

Позвольте вернуться к вопросу перевода данных. С момента прекращения Яндексом предоставления бесплатной платформы перевода прошло время. Скажите, кто как решил проблему перевода?

  • может есть иная площадка для перевода, каким образом к ней подключиться и какие изменения следует внести в конфиги конвертера?
  • при задействовании --lt-yatr-key формировался --lt-yatr-cache-dir, может есть пусть использовать накопленную базу тем более её с легкостью можно править и пополнять?
  • так и не понял как можно создать внутреннюю базу перевода?

Относительно последнего!

  • есть Subst.pm, функционирует и с помощью регулярных выражений, и просто парой from => to.
    Если я правильно понял файл состоит из набора трансформеров. Регулярными выражениями весь перевод не обеспечить. Общие правила и не более. Тем более в случае скажем с Грузинским языком.
    Да, можно не плохо трансформировать с кириллицы на кириллицу - Украинский.
    Языки Прибалтики уже трансформируются прикольно. Идёт простое преобразование букв - транслитерация.
    Описывать (прописывать) полные базы перевода многочисленных языковых пар в этом файле, утопия. Хотя работает!

  • есть –lt-gme ka-ru:gme/trans-ka-ru.dat --target-lang ru --default-lang ka на базе таблицы в формате gme.
    Я взял такой файл из GPSMapEdit?! По сути это тоже транслитерация? Или можно создавать полноценную таблицу перевода? Что то мне не удаётся черпать перевод по этой схеме?!

Расскажите кто как вышел из этой ситуации. Спасибо!

А под Руссу для него где конфиг взять ?

Похоже на то. Это только буквенная транслитерация. Большего от этой схемы получить не удаётся.

Классная штука. Действительно можно подставлять и буквы, и регулярные выражения, и слова целиком, и даже фразы. Но получается такая беда - если слово взято из name:ru, то это не освобождает слово от дальнейшего “перевода”?!
Получается так - сначала выбирается язык, а потом смотрится готовый переводчик и если там слово находится, оно переводится даже если оно из name:ru.

Остается запретить переводить name:ru. Но как это сделать? Вопрос.
Ещё сложнее запретить переводить name если там уже на русском. Думаю для этого не подобрать обоснование.

Ещё появился вопрос. Есть файл settings-navitel.yml. В нем прописана функция - Tags to skip.

  • очень полезная и нужная штука, как только автору пришла эта идея, на чем её необходимость построилась
  • я пытаюсь с её помощью исключить лишние наименования (ограничивая возможности по языковому переводу
--- skip_tags
---

'name:ar':              1
'name:az':              1
'old_name:fr':          1
'old_name:hu':          1

Условно говоря выглядит так. Предполагается что эти теги должны быть пропущены, но конвертер игнорирует сиё указание. Тянет по любому всё что видит вопреки запрету.

Кто нибудь использует эту функцию удачно? Какие есть тонкости? Спасибо.

Подскажите пожалуйста, что может означать эта ошибка:

  ---|   OSM -> MP converter  1.03   (c) 2008-2013 liosha, xliosha@gmail.com

Loading configuration...
YAML Error: Can't parse single quoted string
   Code: YAML_PARSE_ERR_BAD_SINGLE
   Line: 151
   Document: 2
 at C:/Strawberry/perl/site/lib/YAML/Loader.pm line 552.

Проверил все конфигурационные файлы, в строке 151 нет никаких отквоченных строк.
И Document: 2 - это два документа, или второй документ?

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

Полагаю второй документ - см. перечень документов в *.cfg. Смотреть строку 151 +,-.

Если имеется ввиду вот эти:

[Load]

#  settings
settings: settings-mp.yml
settings: settings-access.yml
settings: rename-country.yml
settings: addressing.yml

то в settings-access.yml всего 118 строк.

Файлы конфигов случаем не редактировались перед появлением ошибки? Бывает, что случайно сохраняется не в той кодировке, и в итоге ошибка загрузки.

Я точно не могу сказать когда появилась эта ошибка :slight_smile: логи тольео последние, предыдущие не храню.
Проверил все конфигурационные файлы - у всех UTF-8 без BOM…

Вот по какому принципу второй не знаю. Но то что один из них 90%.

Может найти какой онлайн валидатор yaml и повставлять в него все конфиги в поиске ошибки.

Можно попробовать найти ошибочный, отключая по очереди из загрузки.

Спасибо, наверное Борис прав, попробую такой вариант.
В принципе, ошибка вроде ни на что не влияет, .мр создаются и вполне рабочие. Но не люблю чтобы вообще ошибки были в логах…

Там ещё ** features config** должны быть. Вот в них беда.

Спасибо всем откликнувшимся. Причина была в таблице подстановки --ttable=file.yml, там оказался недопустимый символ…
Получается, что Document: 2 - это второй параметр командной строки :slight_smile:

Иногда полигон населенного пункта (сухопутной территории) накладывается на водные объекты.
Как то можно управлять этим процессом? Плохо когда вода не просматривается.
Сначала подъезжал к разработчикам конечной навигации. Теперь смотрю, а в Польском формате та же проблема.


Это у вас что-то с конвертацией в .мр…
У меня в результате нормально отображается