[Talk-de] Schwierige Frage: OSM-Shapes Routingfähig machen

Kai Behncke Kai-Behncke at gmx.de
Mo Apr 20 12:22:01 UTC 2009


Hallo Liste,


folgendes Problem wurde hier festgestellt.


Für pgRouting wurden die Straßenshapes von hier genommen:
http://download.geofabrik.de/osm/europe/germany/niedersachsen.shp.zip

Es wurden dann mittels unterschiedlicher Werkzeuge die Daten von Osnabrück extrahiert
(Einmal mit Quantum GIS und, um einen weiteren Datensatz zu haben, einmal mit ogr2ogr).

Das daraus entstandene Shapefile wurde dann mittels shp2pgsql in eine PostgreSQL/PostGIS-Datenbank
transportiert und entsprechende pgRouting-Funktionen eingeladen.
Die Daten wurden entsprechend aufbereitet:

http://pgrouting.postlbs.org/wiki/Workshop-PrepareDikstra

Leider ohne Erfolg. Das Routing (Dijkstra) funktioniert in den meisten Fällen nicht.

Die selben Schritte wurden dann auch mit Straßendaten aus Victoria(Kanada) vollzogen.
In eigener Anwendung (mit eigener Datenbank etc.) funktionierte hier alles reibungslos:

Screenshot 1:
http://www.selbstverwaltung-bundesweit.de/correct.PNG


Bei einer anschließenden Fehlersuche wurden die Daten aus dem OSM-Shapefile dann analysiert.
Nach der Funktion, welche die Daten routing fähig macht:

SELECT assign_vertex_id('victoria', 0.001, 'the_geom', 'gid');

wurde evaluiert, ob die Daten korrekt Anfangs- und Endvertices haben.


Über den MapServer wurden die Punkte herausgefunden, welche letztlich als "dead end" vorliegen (in rot).


Screenshot 2:
http://www.selbstverwaltung-bundesweit.de/too_many_dead_ends.png

Wie Screenshot 2 zeigt sind es viel zu viele.

Es wurde sicherheitshalber versucht die Funktion
SELECT assign_vertex_id('victoria', 0.001, 'the_geom', 'gid');  mit verschiedenen größeren Toleranzräume durchlaufen zu lassen, zudem wurde auch neben 4326 ein anderes Referenzsystem getestet (900913), und zusätzlich 
anfänglich ein ogr2ogr über das Shapefile laufen lassen (repariert ja oft).

Das Resultat war immer das selbe (zu viele dead ends), oder bei zu großem Toleranzraum
nicht genügend vertices (Screenshot 3)


Screenshot 3:
http://www.selbstverwaltung-bundesweit.de/not_enough_vertices.png

Interessant wird es dann hier:

Screenshot 4
http://www.selbstverwaltung-bundesweit.de/weird_numbers.png


Die Abbildunbg zeigt:
a) genügend vertices sind vorhanden
b) Die drei Zahlen (schwarz auf grau) zeigen gid, source-Wert (Vertex) und target-Wert (Vertex),
diese Werte stimmen aber z.Teil nicht überein mit den tatsächlichen Vertices (rot=Fehler, blau=korrekt).


Und um das ganze dann komplett verwirrend zu machen: Wenn ich mir mittels osmosis aus dem Niedersachsen-osm-Satz
Osnabrück extrahiere und das ganze dann über osm2pgrouting in meine Datenbank einlese, dann ist alles wunderbar, 1a korrekt und völlig fehlerfrei.

Die Frage also:
Könnte ich bei der Umwandlung der Shapes von hier:
http://download.geofabrik.de/osm/europe/germany/niedersachsen.shp.zip

etwas übersehen haben?
Nur wieso bringen dieselben Schritte bei den Victoria-Testdaten
http://geobase.ca/geobase/en/data/nrn/index.html

ein fehlerfreies Ergebnis?

Hat jemand eine Vermutung woran das liegen könnte (ich dachte immer in Bezug auf Topologien ist ein Shape ein Shape)?
Auf der pgRouting-Seite wird augenblicklich auch noch gerätselt....

Viele Grüße, Kai
-- 
Neu: GMX FreeDSL Komplettanschluss mit DSL 6.000 Flatrate + Telefonanschluss für nur 17,95 Euro/mtl.!* http://dslspecial.gmx.de/freedsl-surfflat/?ac=OM.AD.PD003K11308T4569a




Mehr Informationen über die Mailingliste Talk-de