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.

#26 2008-05-22 13:53:55

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

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

AkMeR wrote:

52.99073889885542,52.99073889885542,53.7130505181914,50.669608742885536

а где здесь что?  hmm
надо бы как в osmxapi - minlon,minlat,maxlon,maxlat

Online

#27 2008-05-22 14:20:57

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

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

liosha wrote:

а где здесь что?  hmm
надо бы как в osmxapi - minlon,minlat,maxlon,maxlat

Блин, и вправду что то я не то намутил. Еще раз.
48.80791241225375,52.91980721216367,50.66704512942237,53.71334191715539

Offline

#28 2008-05-22 16:08:38

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

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

AkMeR wrote:

48.80791241225375,52.91980721216367,50.66704512942237,53.71334191715539

добавил в список  smile
текущий вариант всё там же: http://garminmapsearch.com/osm/mp/

Online

#29 2008-05-22 18:11:29

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

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

liosha wrote:

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

Надо зачищать XML перед переработкой,
я вот ужо поправляю 455 ошибок прямо в ОСМ. И это без пересклейки ways в граф

$./scr-dupl < SPB-22052008.osm  | grep DUPLBUG | wc -l
455

Вот кусок скрипта (найден в wiki для конвертации в mapinfo)

awk -F\' 'BEGIN{prev=-1}
{
        if ($1 == "  <way id=")
        {
         prev=-1;
         way_id=$2;
        }
        if ($1 == "  </way>")
        {
         prev=-1;
        }
        if ($1 == "    <nd ref=")
        {
         if ($2 == prev) print "DUPLBUG: in line=",NR,"way_id=",way_id,"node1=",$2,"node2=",prev;
         if (prev != -1) print prev,$2
         prev=$2;
        }
}'

Last edited by usm78-gis (2008-05-22 18:17:25)

Offline

#30 2008-05-22 18:15:24

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

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

liosha wrote:

текущий вариант всё там же: http://garminmapsearch.com/osm/mp/

.csv файл хотелось бы поиметь для

http://forum.openstreetmap.org/viewtopic.php?id=632

Offline

#31 2008-05-22 18:28:08

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

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

liosha wrote:

только в москве маппер выдал 500 самопересечений

Есть еще сдвоенные сегменты и другие топологические ошибки.

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

Да, я бы ставил, так как это более логично.

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]

ИМХО, надо создавать только двухнодовые сегменты нарезая (в этом примере) на
три части (порядковый номер внутри полилинии не поправлен для простоты)

RoadID=51
RouteParams=1,4,0,0,0,0,0,0,0,0,0,0
Nod1=0,8482
Nod2=2,710
[END]
RoadID=52
RouteParams=1,4,0,0,0,0,0,0,0,0,0,0
Nod1=2,710
Nod2=4,86
[END]
RoadID=53
RouteParams=1,4,0,0,0,0,0,0,0,0,0,0
Nod1=4,86
Nod2=7,11829
[END]

Такую структуру гораздо проще отладить, самопересечения тут в принципе исключены (после DUPLBUG)

Last edited by usm78-gis (2008-05-22 18:36:11)

Offline

#32 2008-05-22 18:33:40

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

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

usm78-gis wrote:

Надо зачищать XML перед переработкой

так только последовательные дупы убрать можно, а они там и чередуются

usm78-gis wrote:

.csv файл хотелось бы поиметь

какой именно csv?

Online

#33 2008-05-22 18:43:13

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

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

liosha wrote:
usm78-gis wrote:

Надо зачищать XML перед переработкой

так только последовательные дупы убрать можно, а они там и чередуются

Это только для начала, вот

$ ./scr-dupl < NOV-22052008.osm  | awk '{if ($1 != "DUPLBUG:") print }' | wc -l
221032
$ ./scr-dupl < NOV-22052008.osm  | awk '{if ($1 != "DUPLBUG:") print }' | sort | uniq | wc -l
220533

есть еще 499 дублированных сегментов (но это не только дороги, так что часть из них может быть
приемлема)

usm78-gis wrote:

.csv файл хотелось бы поиметь

какой именно csv?

Который для mkgmap.

Offline

#34 2008-05-22 18:55:39

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

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

usm78-gis wrote:

Который для mkgmap.

а я свой не делал, стандартным пользовался.

Online

#35 2008-05-22 21:49:22

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

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

liosha wrote:
usm78-gis wrote:

Который для mkgmap.

а я свой не делал, стандартным пользовался.

ok

Offline

#36 2008-05-22 21:54:06

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

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

Написал маленький скрипт для автозачистки rmdupl.
Кто-то похоже очень упорно по 5-6 раз кликал smile

--- XXX1.osm    2008-05-23 00:53:35.000000000 +0400
+++ XXX2.osm    2008-05-23 00:56:30.000000000 +0400
-    <nd ref="253426719"/>
-    <nd ref="253426719"/>
-    <nd ref="253426356"/>
-    <nd ref="253426356"/>
-    <nd ref="253426356"/>
     <nd ref="253426356"/>
     <nd ref="253427443"/>
-    <nd ref="253427443"/>
-    <nd ref="253427051"/>
-    <nd ref="253427051"/>
-    <nd ref="253427051"/>
-    <nd ref="253427051"/>

Еще можно много что автоматически править: слишком близко расположенные ноды и т.п.

Last edited by usm78-gis (2008-05-22 21:59:28)

Offline

#37 2008-05-23 06:49:02

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

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

Какие будут предложения, как назначать RouteParams?
и из каких тегов брать информацию о запретах?

RouteParams=2,0,0,0,0,0,0,0,0,0,0,0
описывает класс дороги (0-7), ее скоростной тип (0-4; информации о том, как правильно интерпретировать эти цифры, у меня нет) и 10 бинарных признаков: односторонняя, платная, запрет для движения спасательных служб (?), служб доставки, автомобилей, автобусов, такси, пешеходов, велосипедов, грузовиков

Road class - Approximate number of roads
4  0.5% - 1.5%
3  1% - 3%
2  4% - 7%
1  10%-20%
0  60%-80%

Speed class - Speed attribute - Comment
7  128 km/h   
6  108 km/h  Can be adjusted in MapSource
5  93 km/h  Can be adjusted in MapSource
4  72 km/h  Can be adjusted in MapSource
3  56 km/h  Can be adjusted in MapSource
2  40 km/h   
1  20 km/h   
0  8 km/h  Ferry

Last edited by liosha (2008-05-23 06:50:08)

Online

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

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

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

liosha wrote:

и из каких тегов брать информацию о запретах?

Из раздела Restrictions.
Односторонняя - oneway=yes.
Платная - toll=yes.
автомобилей - motorcar=no
автобусов - psv=no
пешеходов - foot=no
велосипедов - bicycle=no
грузовиков - hgv=no и goods=no.
служб доставки, возможно, goods=no.

Класс дороги.
0 - Residential/Alley/Unpaved/Track
1 - Rounabout/Collector
2 - Arterial/Other highway
3 - Principal highway
4 - Major highway/Ramp

Скоростные ограничения.
0 - 5 км/ч
1 - 20 км/ч
2 - 40 км/ч
3 - 60 км/ч
4 - 80 км/ч
5 - 90 км/ч
6 - 110 км/ч
7 - no limit

Таким образом класс дороги стоит выбирать из типа дороги. А скорость. Ну по умолчанию 60 для обычных дорог, 90 - для major highway, либо, если есть, из тэга maxspeed.

Last edited by AkMeR (2008-05-23 08:13:37)

Offline

#39 2008-05-23 09:08:23

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

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

пока дефолты сделал такие:

highway         bridleway               r       0x16            0       1       0,1,0,0,0,1,1,1,1,0,0,1
highway         bus_guideway           
highway         construction           
highway         cycleway                r       0x16            0       1       0,1,0,0,0,1,1,1,1,0,0,1
highway         footway                 r       0x16            0       0       0,0,0,0,0,1,1,1,1,0,0,1
highway         living_street           r       0x07            0       1       0,1,0,0,0,0,0,0,0,0,0,0
highway         motorway                r       0x01            0       4       4,6,1,0,0,0,0,0,0,0,0,0     
highway         motorway_link           r       0x0B            0       2       4,3,1,0,0,0,0,0,0,0,0,0
highway         pedestrian              r       0x07            0       1       0,0,0,0,0,0,0,1,0,0,0,0            
highway         primary                 r       0x02            0       3       3,4,0,0,0,0,0,0,0,0,0,0
highway         primary_link            r       0x03            0       1       3,3,0,0,0,0,0,0,0,0,0,0
highway         residential             r       0x06            0       1       0,2,0,0,0,0,0,0,0,0,0,0
highway         secondary               r       0x04            0       2       2,3,0,0,0,0,0,0,0,0,0,0
highway         service                 r       0x07            0       0       0,1,0,0,0,0,0,0,0,0,0,0
highway         steps                   r       0x16            0       0       0,0,0,0,1,1,1,1,1,0,1,1
highway         tertiary                r       0x05            0       1       1,3,0,0,0,0,0,0,0,0,0,0
highway         track                   r       0x16            0       0       0,1,0,0,0,0,0,1,0,0,0,0
highway         trunk                   r       0x02            0       4       3,5,0,0,0,0,0,0,0,0,0,0
highway         trunk_link              r       0x03            0       2       3,3,0,0,0,0,0,0,0,0,0,0
highway         unclassified            r       0x06            0       1       1,2,0,0,0,0,0,0,0,0,0,0

highway         unsurfaced              r       0x0a            0       1       0,1,0,0,0,0,0,0,0,0,0,0

Online

#40 2008-05-23 09:42:44

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

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

http://wiki.openstreetmap.org/index.php/Relations
запреты поворотов вроде бы как уже в списке принятых

Online

#41 2008-05-23 12:43:43

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

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

liosha wrote:

http://wiki.openstreetmap.org/index.php/Relations
запреты поворотов вроде бы как уже в списке принятых

This is a proposal for a set of tags and members making a Relation to represent a turn restriction

Last edited by usm78-gis (2008-05-23 12:45:16)

Offline

#42 2008-05-23 12:48:52

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

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

AkMeR wrote:

Скоростные ограничения.
6 - 110 км/ч

Таких дорог настолько мало, что их можно все пометить тэгом.

7 - no limit

Вроде как в мире есть только 3-4 страны с такими дорогами ? smile

Offline

#43 2008-05-23 12:58:15

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

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

usm78-gis wrote:
liosha wrote:

http://wiki.openstreetmap.org/index.php/Relations
запреты поворотов вроде бы как уже в списке принятых

This is a proposal for a set of tags and members making a Relation to represent a turn restriction

Но это отношение, по крайней мере, находится в разделе "Established uses of Relations". На мой взгляд, когда его вынесут на голосование, его полюбому заапрувят. Так что можно использовать отношение без боязни...

Offline

#44 2008-05-23 18:00:04

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

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

Вроде бы доделал назначение роутинговых параметров...
Попробую теперь довести до компиляции с роутингом хотя бы небольшой кусок территории вокруг дома.
Если получится - выложу конвертер smile

Online

#45 2008-05-23 18:21:26

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

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

AkMeR wrote:

Так что можно использовать отношение без боязни...

Надо будет посмотреть, что делает вот этот скрипт:
http://trac.openstreetmap.org/browser/a … m_catmp.py
хотя не исключено, что он игнорирует запреты поворотов.

Offline

#46 2008-05-24 06:25:31

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

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

обнаружил баг: когда есть "вырожденные" дороги из одной точки, маппер вылетает по "access violation"
если их отфильтровывать, компиляция проходит, и роутинг в девайсе работает cool

желающим потестить: http://garminmapsearch.com/osm/osm2mp.zip
конфиги лежат в http://garminmapsearch.com/osm/mp/
запускать osm2mp.pl in.osm > out.mp

Online

#47 2008-05-24 20:35:20

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

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

liosha wrote:

обнаружил баг: когда есть "вырожденные" дороги из одной точки, маппер вылетает по "access violation"

Дорог из одной точки в "большом" СПб не обнаружил, зато есть вот такой топологический баг-кольцо,
где первый и последний нод совпадают:

 <way id='4454692' timestamp='2007-10-05T20:36:14Z'>
    <nd ref='25896343'/>
    <nd ref='25896344'/>
    <nd ref='25896345'/>
    <nd ref='25896346'/>
    <nd ref='25896343'/>
    <tag k='highway' v='residential'/>
  </way>

Надо разбираться, как быть...

компиляция проходит, и роутинг в девайсе работает cool

Потестим big_smile

Offline

#48 2008-05-24 21:11:42

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

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

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

Online

#49 2008-05-24 21:24:35

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

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

liosha wrote:

такие "одноточечные" дороги при кропе появляются.

osmxapi сливает ways целиком, при clip (по границам) надо будет ставить
флаги "внешних" нодов, иначе потом роутинг между областями не сделать.

а кольца часто встречаются, буду думать, как бы их порезать...

Нацело поделить пополам, ничего лучшее в голову не приходит.

Last edited by usm78-gis (2008-05-24 21:30:48)

Offline

#50 2008-05-24 22:31:25

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

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

Нашел 55 "чистых" колец (т.е. прямо в непорезанном .osm)

Offline

Board footer

Powered by FluxBB