You are not logged in.
- Topics: Active | Unanswered
Announcement
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
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
Каким инструментом производилась обрезка ?
<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
Ноды для примера:
Берём 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
Теперь я понимаю иностранцев когда мы пишем через гуглтранслейт ![]()
--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: 60Offline
#3862 2016-03-30 08:11:54
- White_54
- Member

- From: 101 километр
- Registered: 2014-07-16
- Posts: 836
Re: Конвертер OSM -> MP
Ещё раз о проблеме определения скорости:
в некоторых ситуациях дорога оказывается в населенном пункте по мнению конвертера и мы получаем 60 кмч...
http://www.openstreetmap.org/way/136321999 - за пределами НП и дополнительно maxspeed=RU:rural
Но нет, получаем 60 кмч...
Если хочется обработку значений типа ??: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
В примере 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
Да, требования к отступам жёсткие, это же 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
куда копать?
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
если в значениях тегов в файле 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