You are not logged in.

Announcement

*** NOTICE: By 30th of September 2022 the forum.openstreetmap.org will be 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. We expect the migration of data will be finished by that date, you can follow its progress here.***

#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,665

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,447
Website

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

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

Offline

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

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

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,447
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,665

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,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/
Кстати, по ним нужен фидбэк, ибо делались на коленке.

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

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, спасибо.
Видимо, действительно только по примерам изучать  smile

Offline

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

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

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,665

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,665

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,447
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,665

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,665

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,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

про два прохода - это я слишком оптимистично сказанул...  smile
в 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 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,158

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

liosha wrote:

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

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

smile

Offline

Board footer

Powered by FluxBB