You are not logged in.
- Topics: Active | Unanswered
#1 2008-05-20 07:22:30
- liosha
- Member
- From: Moscow
- Registered: 2008-03-04
- Posts: 8,447
- 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,636
Re: Конвертер OSM -> MP
Выходной MP cgpsmapper уже кушает.
С роутингом ?
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,447
- Website
Re: Конвертер OSM -> MP
пока без, с форматом роутинга ещё разбираться надо
сначала таблицу разнесения по слоям надо нормально заполнить
Offline
#4 2008-05-20 21:03:10
- usm78-gis
- Member
- Registered: 2008-04-21
- Posts: 2,636
Re: Конвертер OSM -> MP
пока без
Вот еще без роутинга:
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,447
- Website
Re: Конвертер OSM -> MP
Вечером попробую сделать автомат для скачки-конвертации-выкладывания хотя бы Московской области.
таки сделал
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
...
Вот еще без роутинга:
http://wiki.openstreetmap.org/index.php/Osm2mp
Скачать мне не удалось.
Скачал(через FireFox). Еще не смотрел.
Но:
Конвертер карт из osm в mp от User:Asdert.
Глючный, медленный и не предназначенный для использования.
Offline
#7 2008-05-20 23:09:25
- usm78-gis
- Member
- Registered: 2008-04-21
- Posts: 2,636
Re: Конвертер OSM -> MP
OSM парсер с роутингом есть здесь
http://navit.svn.sourceforge.net/viewvc … iew=markup
но модифицировать эту программу - задача точно не для слабонервных
Самое важное это "-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,447
- 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,447
- Website
Re: Конвертер OSM -> MP
У меня конвертер сделан перловым скриптом.
Работает в один проход (пока), но при этом все точки грузит в память.
Конфиги внешние, доступны на http://garminmapsearch.com/osm/mp/
Кстати, по ним нужен фидбэк, ибо делались на коленке.
Что касается скачать, мне-то не жалко, но пока это чисто "лабораторный" скрипт, никому интереса не представляющий
Offline
#11 2008-05-21 10:35:00
- liosha
- Member
- From: Moscow
- Registered: 2008-03-04
- Posts: 8,447
- 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,447
- Website
Re: Конвертер OSM -> MP
Asdert, спасибо.
Видимо, действительно только по примерам изучать
Offline
#14 2008-05-21 12:37:06
- usm78-gis
- Member
- Registered: 2008-04-21
- Posts: 2,636
Re: Конвертер OSM -> MP
Пронумеровать дороги - проще всего.
На 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,636
Re: Конвертер OSM -> MP
В общем, назначить 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,636
Re: Конвертер OSM -> MP
Нормальный роутинг появиться лишь тогда, когда появятся конкретные правила, как описывать запреты поворотов в 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,447
- Website
Re: Конвертер OSM -> MP
Класс дороги, односторонность, платность - это всё описывается в RouteParams.
Нумеровать RoadID - разумеется, подряд
Скорее всего, это номер строки таблицы
osm2navit четырехпроходный.
ну так он же компилятор всё-таки, там совсем другие задачи
Offline
#18 2008-05-21 13:07:10
- usm78-gis
- Member
- Registered: 2008-04-21
- Posts: 2,636
Re: Конвертер OSM -> MP
usm78-gis wrote:osm2navit четырехпроходный.
ну так он же компилятор всё-таки, там совсем другие задачи
Ок, уточнил текст вверху ^^^
Offline
#19 2008-05-21 13:24:26
- usm78-gis
- Member
- Registered: 2008-04-21
- Posts: 2,636
Re: Конвертер OSM -> MP
Нумеровать RoadID - разумеется, подряд
Тяжело отслеживать изменения
и вносить поправки не зная way_id -> RoadID соответствия.
Ну а секция [NODES] в .mp
вообще не присутствует, что позорно для формата включающего
дорожный граф.
usm78-gis wrote:osm2navit четырехпроходный.
ну так он же компилятор всё-таки, там совсем другие задачи
Будем надеяться на скорый osm2img
Offline
#20 2008-05-21 13:30:08
- liosha
- Member
- From: Moscow
- Registered: 2008-03-04
- Posts: 8,447
- 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,447
- Website
Re: Конвертер OSM -> MP
про два прохода - это я слишком оптимистично сказанул...
в osm у линий сначала задаётся список узлов, а тольго потом теги
поэтому проходов минимум три:
1. среди всех линий выделить дороги
2. на дорогах выделить узловые точки
3. выдать данные в mp
Offline
#22 2008-05-22 08:41:17
- liosha
- Member
- From: Moscow
- Registered: 2008-03-04
- Posts: 8,447
- 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,158
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,447
- Website
Re: Конвертер OSM -> MP
в общем, вот что пока получается... вечером выложу результат
до компиляции с роутингом ещё далеко - только в москве маппер выдал 500 самопересечений
может быть, потом сделаю фильтр
вопрос: а нужно ли узлы ставить на крайних точках дорог?
и кстати, если кому-то другие области нужно в MP, кроме Москвы, скажите нужный bbox
; 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,158
Re: Конвертер OSM -> MP
и кстати, если кому-то другие области нужно в MP, кроме Москвы, скажите нужный bbox
Тольятти-Самарская Лука-Самара.
52.99073889885542,52.99073889885542,53.7130505181914,50.669608742885536
Offline