OpenStreetMap Forum

The Free Wiki World Map

You are not logged in.

Announcement

A fix has been applied to the login system for the forums - if you have trouble logging in please contact support@openstreetmap.org with both your forum username and your OpenStreetMap username so we can make sure your accounts are properly linked.

#1 2008-05-20 07:22:30

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

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

Тут обсуждается конвертер osm2mp.

Предназначен для перевода данных OSM в "польский формат" (.mp), - это промежуточный формат для многих навигационных карт, и родной формат cGPSmapper и GPSMapEdit.

Основные фичи:
* настраиваемый набор типов
* генерация роутингового графа
* поддержка расширенной схемы адресации
* обрезка карты по полигональной границе
* языковые плагины
* кое-какая обработка данных для совместимости с cgpsmapper (близкие узлы, самопересечения)

Актуальная версия только в SVN

Использование:
perl osm2mp.pl <options> file.osm -o file.mp
Для работы необходим Perl версии не ниже 5.10 (у кого нет, версию для своей платформы можно взять тут).
Подробнее про установку см. вики.

Полученный MP можно сконвертировать в формат для разных навигаторов:
Garmin, Навител, СитиГид, 7 дорог, PocketGIS и других

Last edited by liosha (2012-11-16 06:06:45)

Offline

#2 2008-05-20 12:27:11

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,407

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

liosha wrote:

Выходной MP cgpsmapper уже кушает.

С роутингом ? smile
wayID вроде как не удастся использовать в качестве roadID,
что конечно неудобно.

Last edited by usm78-gis (2008-05-20 13:13:01)

Offline

#3 2008-05-20 14:01:36

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

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

пока без, с форматом роутинга ещё разбираться надо
сначала таблицу разнесения по слоям надо нормально заполнить

Offline

#4 2008-05-20 21:03:10

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,407

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

liosha wrote:

пока без

Вот еще без роутинга:
http://wiki.openstreetmap.org/index.php/Osm2mp
Скачать мне не удалось.

Offline

#5 2008-05-20 21:38:57

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

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

liosha wrote:

Вечером попробую сделать автомат для скачки-конвертации-выкладывания хотя бы Московской области.

таки сделал  cool
mp москвы с окрестностями будет ежедневно появляться на http://garminmapsearch.com/osm/mp/
это если osmxapi глючить не будет...

Offline

#6 2008-05-20 21:59:54

A_G_T
Member
From: S-Pb
Registered: 2008-03-05
Posts: 386

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

usm78-gis wrote:

...
Вот еще без роутинга:
http://wiki.openstreetmap.org/index.php/Osm2mp
Скачать мне не удалось.

Скачал(через FireFox). Еще не смотрел.
Но:

Конвертер карт из osm в mp от User:Asdert.

Глючный, медленный и не предназначенный для использования.

hmm smile

Offline

#7 2008-05-20 23:09:25

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,407

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

OSM парсер с роутингом есть здесь
http://navit.svn.sourceforge.net/viewvc … iew=markup
но модифицировать эту программу - задача точно не для слабонервных wink

Самое важное это "-w (--dedupe-ways)       : ensure no duplicate ways or nodes."

Last edited by usm78-gis (2008-05-20 23:12:47)

Offline

#8 2008-05-21 08:23:38

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

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

Пронумеровать дороги - проще всего.
Проставить в пересечениях узлы тоже несложно, но парсер двухпроходным делать придётся.

Offline

#9 2008-05-21 08:30:05

akaDamian
Member
Registered: 2007-11-07
Posts: 6

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

Конвертацией OSM в польский формат занимается куча народу. Для западных пользователей это возможность получить бесплатные гарминовские карты, а для ex-USSR - еще и и конвертация в Русу, Навител и т.д.

Помимо конвертора Liosha, мне известны еще следующие:

- упомянутый выше Osm2mp
Сайт - http://wiki.openstreetmap.org/index.php/Osm2mp . Ссылка не прямая, требуется хайти по ней браузером и уже на следующей странице кликать на загрузку (особенность бесплатного хостинга я-ля Народ.ру).
Конвертор неплохой, GPSMapEdit на файл не ругается. Роутинга нет.

- конвертор Radomir'а
Описание - http://forum.openstreetmap.org/viewtopi … 2802#p2802
Скачать пока нечего. Вроде есть роутинг.

- конвертор Karl Newman aka SiliconFiend
Описание - http://forum.openstreetmap.org/viewtopi … 2836#p2836
Скачать можно, но сказано, что очень медленный на больших областях. Другая версия только в процессе обдумывания. Неплохо описаны задачи и концепция. Роутинга нет.

Еще есть легенда о том, чтобы сделать Mkgmap способным производить файлы .mp, но насколько продвинулась работа, неизвестно.

В идеале, как мне кажется, конвертор должен представлять собой нечто, могущее работать на сервере, не сильно потребяющее ресурсы в процессе конвертации, но при этом выполняющее ее достаточно быстро. На вход подаются .osm-файлы, разрезанные osmosis, а также файл конфигурации, в котором описываются замены типов. На выходе получается .mp.

Offline

#10 2008-05-21 09:17:31

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

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

У меня конвертер сделан перловым скриптом.
Работает в один проход (пока), но при этом все точки грузит в память.
Конфиги внешние, доступны на http://garminmapsearch.com/osm/mp/
Кстати, по ним нужен фидбэк, ибо делались на коленке.

Что касается скачать, мне-то не жалко, но пока это чисто "лабораторный" скрипт, никому интереса не представляющий  smile

Offline

#11 2008-05-21 10:35:00

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

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

Почитал мануал по роутингу в маппере...
В общем, назначить RoadID, NodeID и классы дорог (ака псевдороутинг) не проблема.
А вот про запреты поворотов я там ничего не нашёл.
Где про них написано?

Offline

#12 2008-05-21 11:26:17

Asdert
Member
Registered: 2008-05-07
Posts: 5

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

Про формат можешь здесь почитать:
http://www.gps-forum.ru/cgi-bin/forum/s … =flat&sb=1

Нормальный роутинг появиться лишь тогда, когда появятся конкретные правила, как описывать запреты поворотов в osm. Когда поддержка этих правил будет внедрена в potlatch и josm.

Сейчас же существует только множество предложений, реально никем не использующиеся.

Offline

#13 2008-05-21 12:11:39

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

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

Asdert, спасибо.
Видимо, действительно только по примерам изучать  smile

Offline

#14 2008-05-21 12:37:06

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,407

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

liosha wrote:

Пронумеровать дороги - проще всего.

На RoadID накладываются какие-то ограничения, так что их скорее всего придется нумеровать подряд
(то что делает, кстати, gpsmapedit)

Проставить в пересечениях узлы тоже несложно, но парсер двухпроходным делать придётся.

osm2navit четырехпроходный,
после первого прохода надо резать ways на куски по всем нодам у которых число линков больше двух.
Также надо рекурсивно объединять куски по нодам у которых число линков равно двум (знаменитая проблема
нарезки линий в .rus и .ntm) и имя,тип,односторонность,etc. совпадают.
Вот для этой последней задачи я "готового" решения не знаю.

Last edited by usm78-gis (2008-05-21 13:15:59)

Offline

#15 2008-05-21 12:45:44

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,407

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

liosha wrote:

В общем, назначить RoadID, NodeID и классы дорог (ака псевдороутинг) не проблема.

Есть еще одностороннее движение и toll.

А вот про запреты поворотов я там ничего не нашёл.
Где про них написано?

По моему никакого приличного описания нет,
были только довольно туманные намеки в
http://cgpsmapper.com/download/RFormat_temp.zip

Offline

#16 2008-05-21 12:55:11

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,407

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

Asdert wrote:

Нормальный роутинг появиться лишь тогда, когда появятся конкретные правила, как описывать запреты поворотов в osm.

Запреты поворотов (ИМХО) это простая CSV таблица

way_from,node,way_to,time_start,time_end

и ее всегда можно просто присобачить к существующему .mp файлу.

Когда поддержка этих правил будет внедрена в potlatch и josm.

Дело не столько в поддержке как таковой (она уже де-факто есть),
а в "database integrity". Вот с этим будет тяжело, так что особо не надейтесь на potlatch и josm.

Last edited by usm78-gis (2008-05-21 13:10:39)

Offline

#17 2008-05-21 12:55:48

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

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

Класс дороги, односторонность, платность - это всё описывается в RouteParams.
Нумеровать RoadID - разумеется, подряд  smile
Скорее всего, это номер строки таблицы

usm78-gis wrote:

osm2navit четырехпроходный.

ну так он же компилятор всё-таки, там совсем другие задачи

Offline

#18 2008-05-21 13:07:10

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,407

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

liosha wrote:
usm78-gis wrote:

osm2navit четырехпроходный.

ну так он же компилятор всё-таки, там совсем другие задачи

Ок, уточнил текст вверху ^^^

Offline

#19 2008-05-21 13:24:26

usm78-gis
Member
Registered: 2008-04-21
Posts: 2,407

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

liosha wrote:

Нумеровать RoadID - разумеется, подряд  smile

Тяжело отслеживать изменения
и вносить поправки не зная way_id -> RoadID соответствия.
Ну а секция [NODES] в .mp
вообще не присутствует, что позорно для формата включающего
дорожный граф.

usm78-gis wrote:

osm2navit четырехпроходный.

ну так он же компилятор всё-таки, там совсем другие задачи

Будем надеяться на скорый osm2img smile

Offline

#20 2008-05-21 13:30:08

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

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

usm78-gis,
у меня сейчас в mp родные NodeID и WayID прописаны в комментариях

Offline

#21 2008-05-21 19:57:45

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

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

про два прохода - это я слишком оптимистично сказанул...  smile
в osm у линий сначала задаётся список узлов, а тольго потом теги
поэтому проходов минимум три:
1. среди всех линий выделить дороги
2. на дорогах выделить узловые точки
3. выдать данные в mp

Offline

#22 2008-05-22 08:41:17

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

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

пытаюсь выделить узловые точки для роутинга
столкнулся с такой штукой: см. WayID=17331468
интересно, как умудрились провести дорогу 20 раз (!) через одну и ту же точку??

Offline

#23 2008-05-22 11:47:31

AkMeR
Member
From: Samara
Registered: 2008-02-27
Posts: 1,157

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

2 liosha.
Нда. И в самом деле удивительная улица... Она рисовалась в потлахе 0.5 версии. А не в этой ли версии был глюк, когда создавались дубликаты объектов? Вполне возможно, что эта улица получилась объединением из двух версий одной улицы. А может и просто неудачно нарисовали...

P.S. Кстати, а ведь Red_rebel делал конвертер и у него уже была автогенерация роутингового графа. Может стоит выйти на него ради обмена опытом?

Offline

#24 2008-05-22 13:00:26

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

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

в общем, вот что пока получается... вечером выложу результат
до компиляции с роутингом ещё далеко - только в москве маппер выдал 500 самопересечений
может быть, потом сделаю фильтр

вопрос: а нужно ли узлы ставить на крайних точках дорог?

и кстати, если кому-то другие области нужно в MP, кроме Москвы, скажите нужный bbox smile

; WayID = 4871028
; highway=secondary
[POLYLINE]
Type=0x04
Data0=(55.7240971,37.3995234), (55.7237002,37.3999852), (55.7229563,37.4008194),
(55.7190745,37.4014631), (55.7184605,37.4015833), (55.7162607,37.4020382),
(55.7161122,37.4021405), (55.7160059,37.4022006)
EndLevel=2
Label=ул.Толбухина

RoadID=5
RouteParams=1,4,0,0,0,0,0,0,0,0,0,0
Nod1=0,8482
Nod2=2,710
Nod3=4,86
Nod4=7,11829
[END]

Offline

#25 2008-05-22 13:44:42

AkMeR
Member
From: Samara
Registered: 2008-02-27
Posts: 1,157

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

liosha wrote:

и кстати, если кому-то другие области нужно в MP, кроме Москвы, скажите нужный bbox smile

Тольятти-Самарская Лука-Самара.
52.99073889885542,52.99073889885542,53.7130505181914,50.669608742885536

smile

Offline

Board footer

Powered by FluxBB