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

То то я смотрю нет, а вроде как и есть. А точно тег проверить на экране смартфона, старых глаз не хватает. Куриная слепота. :slight_smile:

да, я старею :wink:

Нет, это я старею :smiley:

- condition:
    - highway = motorway_junction
  action:
    - action: write_poi
      type: 0x2000
дополнить
      Label: %label
или
      name: %label

Точно не помню…

Спасибо за подсказку, я также думал в этом направлении.
В типе дороги я нашел это в файле mp:


; WayID = 143093137:0
; highway = secondary
; surface = asphalt
[POLYLINE]
Data0=(50.0322366,8.7141182),(50.0318187,8.7148991),(50.0316461,8.7152035),(50.0315243,8.7154188),(50.0313322,8.7157385),(50.031038,8.7161886),(50.0306658,8.7167382)
RoadID=1119
DirIndicator=1
RouteParams=3,2,1,0,0,0,0,0,0,0,0,0
EndLevel=2
Type=0x02
Label=~[0x06]L3313-L3317
TrafficLanes=1,0,0,1,0,0
Nod0=0,635106,0
Nod1=6,1055156,0
[END]

Label=~[0x06]L3313-L3317

Я думаю, что Label исходит из файла ways-roads-common.yml:


road_ref:
        selector: tag
        tag: highway
        motorway: '~[0x04]'
        _default:
          selector: if
          condition: ~inside_city
          then:
            selector: tag
            tag: highway
            trunk: '~[0x04]'
            primary: '~[0x05]'
            secondary: '~[0x06]'
            tertiary: '~[0x06]'

И ему не хватает ссылки.
Могу попробовать:


- condition:
    - highway = motorway_junction
  action:
    - action: write_poi
      type: 0x2000
      Label: ~[0x04]%label

Я компилирую небольшую карту. Теперь я думаю, что motorway_junction не знает, в каком типе дороги есть выход и что следует за ним.
Может быть, так?


- condition:
    - highway = motorway_junction
  action:
    - action: write_poi
      type: 0x2000
      Label: ~[0x01]~[0x02]~[0x03]~[0x04]~[0x05]%label

Не работает, ни то, ни другое :-/

После того как добавили

- condition:
    - highway = motorway_junction
  action:
    - action: write_poi
      type: 0x2000
      Label: %label

проверьте появился ли 0x2000 в файле mp.

Да, тип 0x2000 всегда находится в файле mp с Label.


; NodeID = 27279177
; highway = motorway_junction
; layer = 1
[POI]
Data0=(53.1818129,8.5923486)
Type=0x2000
Label=~[0x01]~[0x02]~[0x03]~[0x04]~[0x05]~[0x06]Bremen-Blumenthal
[END]

Skin перепробовал уже я сам, на основе skina Baltic. И когда я просматриваю карту “UMP Poland”, я вижу названия улиц ( от motorway_ junction). Так что скин-это не проблема, я думаю. В layers.dat сейчас стоит у меня


0x2000,0,2 ;Съезд с шоссе

Я еще попробую:


- condition:
    - highway = motorway_junction
  action:
    - action: write_poi
      type: 0x2000
      Label: %label

И какую версию Navikey converter вы используете?


- condition:
    - highway = motorway_junction
  action:
    - action: write_poi
      type: 0x2000
      Label: %label (съезд)

Улицы это POLYLINE - линии.
motorway_ junction это POI - одна точка на линии.
Если на линии есть имя это улица. На точке должно быть отдельно имя - типа name=Съезд. Или - ref=М1. Их и надо вытягивать. Если на точке нет имени или ref, то и нечего тянуть.

Это не факт, это размышления делетанта.

Вы ПРАВЫ!

Я нашел ошибку. :slight_smile: Это мои ошибки мышления. motorway_junction, это ТОЧКА. motorway_link/motorway_trunk, что представляет собой дорога (polyline). На панели выше невозможно показать POI, только дороги. Поэтому этот параметр также называется %Nextroadtitle. И то, что я видел в своем СКИНЕ, это была метка motorway_link или motorway_trunk, но у них не всегда есть метка, и я думал, что имена motorway_junction не видны. Возможны 2 решения: 1.Сделать POI таким большим, чтобы вы могли разместить на нем Label. 2. motorway_juction не как POI (0x2000) только как само шоссе (0x01). Только, возможна ли дорога только с 2 координатами?

https://vk.com/@bydmapl-motorwayjunction-vs-motorwaylink

Это дорога (пример)


; WayID = 668380916:0
; highway = service
[POLYLINE]
Data0=(53.5826674,8.6067382),(53.5827493,8.6067777),(53.5832301,8.6069601)
RoadID=48
RouteParams=0,0,0,0,0,0,0,0,0,0,0,0
Type=0x07
Label=
Nod0=0,33860,0
Nod1=2,5082,0
[END]

Это motorway_junction (пример)


; NodeID = 26738079
; highway = motorway_junction
[POI]
Data0=(53.0824511,8.90961)
Type=0x2000
Label=Bremen-Vahr
[END]

И сделать такой трюк:


; WayID = 26738079:0
; highway = motorway_link
[POLYLINE]
Data0=(53.0824511,8.90961)
RouteParams=0,0,0,0,0,0,0,0,0,0,0,0
Type=0x01
Label=Bremen-Vahr
[END]

Всё есть
[POI]
Data0=(53.0824511,8.90961)
Type=0x2000
Label=Bremen-Vahr
смотрите конвертер навипрограммы и Скин

Del

Да, да, я знаю. Это работает.
POI на карте не проблема, я вижу картинки, я вижу “Labels”. Только я не хочу, чтобы они были на карте, в то время как на большом месте подключения я вижу 10 выходов, только карта не :slight_smile: Я хочу их в панели выше, там, где я сейчас. Вот в чем дело.

Так же, как и в старом Навигoне. Вы знаете?
https://vk.com/@bydmapl-old-navigon

Вам надо переходить в другую тему. Работа 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?! По сути это тоже транслитерация? Или можно создавать полноценную таблицу перевода? Что то мне не удаётся черпать перевод по этой схеме?!

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