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

_______________________________________________
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de

Antwort per Email an