You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#3851 2015-08-20 16:13:00

Svetika
Member
Registered: 2015-08-04
Posts: 6

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

osm-файлы:
https://drive.google.com/file/d/0B8yBFp … 1lRkE/view

сконвертированные mp-файлы:
https://drive.google.com/file/d/0B8yBFp … V2UjQ/view

Ноды для примера:
файл 1:
RoadID=450
Nod21=323

файл 2:
RoadID=242
Nod0=499

Offline

#3852 2015-08-20 17:17:31

chnav
Member
From: Russia, mapping Kazakhstan
Registered: 2010-03-18
Posts: 3,303

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

Svetika wrote:

chnav, я сама вырезала из общих данных 2 части, которые мне нужны, то есть никаких специально поставленных нодов там нет. В результате на границе двух частей получились сегменты с крайними нодами, у которых стоит характеристика extnode, но после конвертации эта характеристика утрачивается, в этом и суть проблемы.

Эти ноды отсутствует в ОСМ, видимо созданы при обрезке и номер у них отрицательный. Может в этом проблема.

Мне уже интересно откуда там взялся тег garmin:extnode. Каким инструментом производилась обрезка ?

Offline

#3853 2015-08-21 06:06:03

liosha
Member
From: Moscow
Registered: 2008-03-04
Posts: 8,447
Website

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

chnav wrote:

Каким инструментом производилась обрезка ?

<osm version="0.6" generator="Navikey OSM splitter 1.06.32">

Offline

#3854 2015-08-21 06:20:48

liosha
Member
From: Moscow
Registered: 2008-03-04
Posts: 8,447
Website

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

Svetika wrote:

Ноды для примера:

Берём 1.osm, конвертируем. Смотрим первую попавшуюся ноду с тегом.

    <node id="10000000000" version="1" timestamp="2015-08-20T14:38:17Z" lat="53.1614541" lon="34.7926202">
        <tag k="garmin:extnode" v="yes"/>
    </node>

Вот она в mp, последняя в списке. Вроде всё как надо

; WayID = 74117433:0
; highway = trunk
; surface = asphalt
[POLYLINE]
Data0=(53.1985302,34.5259049),(53.1984973,34.5261215),(53.1982801,34.5275792),(53.1982414,34.5278407),(53.1980735,34.5289710),(53.1976724,34.5316724),(53.1971469,34.5352303),(53.1968892,34.5370239),(53.1966312,34.5387686),(53.1960524,34.5426018),(53.1955892,34.5457200),(53.1955028,34.5463152),(53.1947318,34.5514358),(53.1937157,34.5582792),(53.1926214,34.5657309),(53.1919427,34.5703329),(53.1914561,34.5736433),(53.1912619,34.5749639),(53.1906738,34.5790489),(53.1905366,34.5800102),(53.1904794,34.5804098),(53.1895349,34.5869271),(53.1885611,34.5936298),(53.1879009,34.5982858),(53.1876256,34.6001601),(53.1872467,34.6027399),(53.1869308,34.6049056),(53.1866800,34.6067007),(53.1862706,34.6095831),(53.1842984,34.6234128),(53.1837302,34.6273952),(53.1834788,34.6291572),(53.1815681,34.6433429),(53.1814313,34.6443563),(53.1802816,34.6528857),(53.1782048,34.6687070),(53.1773734,34.6747385),(53.1742074,34.6975638),(53.1689339,34.7367934),(53.1667392,34.7534134),(53.1648127,34.7675484),(53.1639737,34.7743466),(53.1629798,34.7813377),(53.1619263,34.7891028),(53.1614541,34.7926202)
RoadID=351
RouteParams=5,4,0,0,0,0,0,0,0,0,0,0
EndLevel=4
Type=0x01
Label=~[0x04]Р120
Nod0=0,669,0
Nod1=2,381,0
Nod2=3,85,0
Nod3=4,233,0
Nod4=11,468,0
Nod5=16,848,0
Nod6=18,262,0
Nod7=20,653,0
Nod8=23,859,0
Nod9=24,955,0
Nod10=25,70,0
Nod11=26,93,0
Nod12=27,885,0
Nod13=28,407,0
Nod14=30,602,0
Nod15=31,890,0
Nod16=32,493,0
Nod17=33,409,0
Nod18=34,371,0
Nod19=37,429,0
Nod20=38,470,0
Nod21=44,872,1
[END]

Offline

#3855 2015-08-21 11:17:41

Svetika
Member
Registered: 2015-08-04
Posts: 6

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

liosha, я конвертирую вашим скриптом osm2mp.pl, взятым отсюда:

https://github.com/liosha/osm2mp

и получаю в mp-файле, что этот нод не внешний.

В каком месте я могу ошибаться, я не понимаю...

Offline

#3856 2015-08-21 12:29:38

liosha
Member
From: Moscow
Registered: 2008-03-04
Posts: 8,447
Website

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

А в конфигах есть запись, что такие ноды надо делать внешними?
https://github.com/liosha/osm2mp/blob/m … on.yml#L14

Offline

#3857 2015-08-21 13:25:02

Svetika
Member
Registered: 2015-08-04
Posts: 6

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

Кажется, я поняла, в чем проблема. Я закомментила в конфиге файл настроек для нодов.

Спасибо большое за такую детальную помощь и извините за невнимательность.

Offline

#3858 2015-10-18 12:55:00

Giorgijag
New Member
Registered: 2015-10-18
Posts: 1

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

Привет  Liosha,

Когда я делаю конвертацию карта на Русском язике. Как я могу сделат по Англискыии?

Offline

#3859 2015-10-18 13:56:18

freeExec
Moderator
From: Ульяновск,Модератор всех слоёв
Registered: 2012-07-31
Posts: 8,547

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

Теперь я понимаю иностранцев когда мы пишем через гуглтранслейт smile

--namelist <key>=<list>
--nametaglist=<list>

Offline

#3860 2016-02-17 05:39:28

terrakris
Member
Registered: 2011-03-17
Posts: 32

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

Всем привет!

Есть проблема с определением скорости в LegalSpeed поле, а именно проблема с неявными значениями скорости типа RU:rural и т.п. (вот уже фидбэк http://forum.openstreetmap.org/viewtopi … 82#p577482)
Сейчас это работает так:

  LegalSpeed:
    selector: if
    condition: maxspeed = \d.*
    then: %maxspeed
    else:
      selector: if
      condition: highway = motorway
      then: 110
    else:
      selector: if
      condition:
       or:
        - highway = living_street
        - living_street = yes
      then: 20
    else:
      selector: if
    else:
      selector: if
      condition: inside_city
      then: 60
    else: 90

и судя по всему в некоторых ситуациях дорога оказывается в населенном пункте по мнению конвертера и мы получаем 60 кмч...
но даже это не главное т.к. тэги есть для разных стран и ограничения (конкретные значения скорости в цифрах) могут отличаться DE:rural и RU:rural.
Видится какой то справочник с этими значениями - для корректной работы...
Вот у гуру хотел спросить, как это можно реализовать?
Или подскажите верный путь решения ;-)
Спасибо!

Last edited by terrakris (2016-02-17 05:41:23)

Offline

#3861 2016-03-10 07:12:58

liosha
Member
From: Moscow
Registered: 2008-03-04
Posts: 8,447
Website

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

Если хочется обработку значений типа ??:rural, то можно добавить ветку

else:
  selector: if
  condition: maxspeed = .*rural
  then:
    selector: tag
    tag: maxspeed
    'DE:rural': 50
    ...
    _default: 60

Offline

#3862 2016-03-30 08:11:54

White_54
Member
From: 101 километр
Registered: 2014-07-16
Posts: 836

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

Ещё раз о проблеме определения скорости:

terrakris wrote:

в некоторых ситуациях дорога оказывается в населенном пункте по мнению конвертера и мы получаем 60 кмч...

http://www.openstreetmap.org/way/136321999 - за пределами НП и дополнительно maxspeed=RU:rural
Но нет, получаем 60 кмч...

liosha wrote:

Если хочется обработку значений типа ??:rural, то можно добавить ветку...

Добавил:

  LegalSpeed:
     selector: if
     condition: maxspeed = \d.*
     then: %maxspeed
     else:
       selector: if
       condition: highway = motorway
       then: 110
       else:
         selector: if
         condition:
           or:
             - highway = living_street
             - living_street = yes
         then: 20
         else:
           selector: if
           condition: inside_city
           then: 60
           else:
             selector: if
             condition: maxspeed = .*rural
             then:
               selector: tag
               tag: maxspeed
               'RU:rural': 90
               _default: 90
             else: 90

Всё равно 60 кмч...
Подумал может приоритет первой записи. Изменил (отсортировал, переместил) последовательность else: в LegalSpeed:
Хоть застрели - 60 кмч. Зато http://www.openstreetmap.org/way/181735226 - получила скорость в 80 кмч?!
80 кмч нигде никоим образом не упоминал. Что откуда берется, ума не приложу.

- как обеспечить приоритет для maxspeed=RU:rural
- как запретить ошибки ориентации дороги condition: inside_city
- можно ли дорогу с явно установленным ограничением в 90 кмч приоритетом включить в НП и получить 60 кмч без правки OSM
скажем для примера - http://www.openstreetmap.org/way/339934389
Спасибо!

Offline

#3863 2016-03-30 08:19:03

liosha
Member
From: Moscow
Registered: 2008-03-04
Posts: 8,447
Website

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

В примере inside_city проверяется раньше, чем maxspeed = .*rural
Надо поменять местами

Offline

#3864 2016-03-30 09:12:23

White_54
Member
From: 101 километр
Registered: 2014-07-16
Posts: 836

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

liosha wrote:

В примере inside_city проверяется раньше, чем maxspeed = .*rural
Надо поменять местами

Я ещё раз попробую, может пальцы дрогнули, но предыдущий такой эксперимент закончился на - 80 кмч.
Существуют ли жесткие требования (ограничения) по синтаксису:
- отступ к else
- отступ к then или расположение относительно else...
- положение очередного else относительно предыдущего else или относительно предыдущего then...
В моем примере и в исходнике - лесенка, в других примерах else строго под else. Может ли как то влиять формат записи?
Спасибо за быстрый ответ.

Offline

#3865 2016-03-30 11:10:31

liosha
Member
From: Moscow
Registered: 2008-03-04
Posts: 8,447
Website

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

Да, требования к отступам жёсткие, это же yaml.
Then и else одного условия должны быть на одном уровне

Offline

#3866 2016-03-30 11:46:53

White_54
Member
From: 101 километр
Registered: 2014-07-16
Posts: 836

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

liosha wrote:

Да, требования к отступам жёсткие, это же yaml.
Then и else одного условия должны быть на одном уровне

Уже получилось. Прикручиваю RU:urban - на тесте.
Спасибо!

Offline

#3867 2016-03-31 20:26:40

Kostik
Member
From: Moscow
Registered: 2011-01-02
Posts: 2,114

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

У меня так получилось:

  LegalSpeed:
     selector: if
     condition: maxspeed = \d.*
     then: %maxspeed
     else:
       selector: if
       condition: highway = motorway
       then: 110
       else:
         selector: if
         condition:
           or:
             - highway = living_street
             - living_street = yes
         then: 20
         else:
           selector: if
           condition: maxspeed = .*motorway
           then:
             selector: tag
             tag: maxspeed
             'RU:motorway': 110
             _default: 110
           else:
             selector: if
             condition: maxspeed = .*rural
             then:
               selector: tag
               tag: maxspeed
               'RU:rural': 90
               _default: 90
             else:
               selector: if
               condition: maxspeed = .*urban
               then:
                 selector: tag
                 tag: maxspeed
                 'RU:urban': 60
                 _default: 60
               else:
                 selector: if
                 condition: inside_city
                 then: 60
                 else: 90

Или так:

  LegalSpeed:
     selector: if
     condition: maxspeed = \d.*
     then: %maxspeed
     else:
       selector: if
       condition: highway = motorway
       then: 110
       else:
         selector: if
         condition:
           or:
             - highway = living_street
             - living_street = yes
         then: 20
         else:
           selector: if
           condition: maxspeed = RU.*
           then:
             selector: tag
             tag: maxspeed
             'RU:motorway': 110
             'RU:rural': 90
             'RU:urban': 60
             _default: 90
           else:
           selector: if
           condition: inside_city
           then: 60
           else: 90

Во втором случае LegalSpeed не проставляется если maxspeed не указан.

Last edited by Kostik (2016-03-31 20:36:02)

Offline

#3868 2016-03-31 20:37:00

borism346
Member
From: Minsk
Registered: 2008-11-12
Posts: 911

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

Надо бы еще service добавить, чтоб быстро не гоняли
- highway = living_street|service

Offline

#3869 2016-04-01 05:15:04

White_54
Member
From: 101 километр
Registered: 2014-07-16
Posts: 836

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

LegalSpeed:
    selector: if
    condition: maxspeed = \d.*
    then: %maxspeed
    else:
      selector: if
      condition: highway = motorway
      then: 110
      else:
        selector: if
        condition: maxspeed = .*rural
        then:
          selector: tag
          tag: maxspeed
          'RU:rural': 90
          _default: 90
        else:
          selector: if
          condition:
            or:
              - highway = living_street|service
              - living_street = yes
          then: 20
          else:
            selector: if
            condition: inside_city
            then: 60
            else:
              selector: if
              condition: maxspeed = .*urban
              then:
                selector: tag
                tag: maxspeed
                'RU:urban': 60
                _default: 60
              else: 90

Offline

#3870 2016-04-01 08:19:10

Marych73
Member
From: Ташкент
Registered: 2011-01-18
Posts: 283

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

Конвертирую Узбекистан в MP используя osm2mp 1.03
данные беру с GisLab

GPSMapEdit в MP файле (после работы постпроцессора)
22 марта -  находил 242 дубликата
1-го апреля - 5962 дубликата

куда копать?
PS
нашел причину, неправильно корректировал файл настроек конвертера.

Last edited by Marych73 (2016-04-01 15:25:19)

Offline

#3871 2016-04-01 09:31:01

Kostik
Member
From: Moscow
Registered: 2011-01-02
Posts: 2,114

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

Marych73 wrote:

куда копать?

Править иcходные данные в OSM

Last edited by Kostik (2016-04-01 09:33:23)

Offline

#3872 2016-04-01 11:08:15

terrakris
Member
Registered: 2011-03-17
Posts: 32

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

Вот что я теперь использую для rural (и иже с ними) тэгов:

  LegalSpeed:
    selector: if
    condition: maxspeed = \d.*
    then: %maxspeed
    else:
      selector: if
      condition: maxspeed = .*motorway
      then:
        selector: tag
        tag: maxspeed
        'CZ:motorway': 130
        'IT:motorway': 130
        'RO:motorway': 130
        'GB:motorway': 110
        'DE:motorway': 110
        'RU:motorway': 110
        'UK:motorway': 110
        _default: 110
    else:
      selector: if
      condition: maxspeed = .*motorroad
      then:
        selector: tag
        tag: maxspeed
        'CZ:motorroad': 110
    else:
      selector: if
      condition: maxspeed = .*rural
      then:
        selector: tag
        tag: maxspeed
        'CZ:rural': 90
        'DE:rural': 100
        'FR:rural': 90
        'IT:rural': 90
        'NO:rural': 80
        'ON:rural': 80
        'RO:rural': 90
        'RU:rural': 90
        _default: 60
    else:
      selector: if
      condition: maxspeed = .*express
      then:
        selector: tag
        tag: maxspeed
        'JP:express': 100
        _default: 60
    else:
      selector: if
      condition: maxspeed = .*trunk
      then:
        selector: tag
        tag: maxspeed
        'RO:trunk': 100
        _default: 60
    else:
      selector: if
      condition: maxspeed = .*nsl
      then:
        selector: tag
        tag: maxspeed
        'JP:nsl': 60
        _default: 60
    else:
      selector: if
      condition: maxspeed = .*nsl_dual
      then:
        selector: tag
        tag: maxspeed
        'GB:nsl_dual': 110
        'UK:nsl_dual': 110
        _default: 60
    else:
      selector: if
      condition: maxspeed = .*nsl_single
      then:
        selector: tag
        tag: maxspeed
        'UK:nsl_single': 90
        'GB:nsl_single': 90
        _default: 60
    else:
      selector: if
      condition: maxspeed = .*urban
      then:
        selector: tag
        tag: maxspeed
        'CZ:urban': 50
        'DE:urban': 50
        'FR:urban': 50
        'IT:urban': 50
        'NO:urban': 50
        'ON:urban': 50
        'RO:urban': 50
        'RU:urban': 60
        _default: 60
    else:
      selector: if
      condition: highway = motorway
      then: 110
    else:
        selector: if
        condition:
          or:
            - highway = living_street
            - living_street = yes
        then: 20
        else:
          selector: if
          condition: inside_city
          then: 60
          else: 90

Всем спасибо!!!

Last edited by terrakris (2016-04-01 11:13:51)

Offline

#3873 2016-04-04 19:32:36

gryphon
Member
From: Pskov
Registered: 2010-09-16
Posts: 1,690

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

Из наблюдений: если в значениях тегов в файле OSM есть хитрые символы, вроде перевода строки, то на выходе можно получить некорректный файл MP. Вот пример такой интересной точки http://www.openstreetmap.org/node/4010158535

Last edited by gryphon (2016-04-04 19:44:22)

Offline

#3874 2016-04-04 20:05:53

liosha
Member
From: Moscow
Registered: 2008-03-04
Posts: 8,447
Website

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

gryphon wrote:

если в значениях тегов в файле OSM есть хитрые символы, вроде перевода строки, то на выходе можно получить некорректный файл MP

Поправил

Offline

#3875 2016-04-04 20:31:25

gryphon
Member
From: Pskov
Registered: 2010-09-16
Posts: 1,690

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

Это было быстро

Спасибо

Offline

Board footer

Powered by FluxBB