Geokoordinaten einer Strasse aus den osm Daten auslesen

mein Ziel ist es, die Geokoordinaten einer Strasse eines bestimmten Ortes auszulesen.
Also zum Beispiel, in Düsseldorf die KÖ.

Ich habe die NRW Daten in eine SQL Datenbank eingelesen (Via osm2mssql).

Mein Problem ist aber, das die Zuordnung per NameTags der Ways an Orte nicht konsequent ist.
Also in einem WayTag gibt es mal den Ort, mal aber nicht.

Aber wie ist der richtige Weg den Way und seine Nodes eines Ortes zu suchen?

Oder gibt es einen Way der die Grenzen eines Ortes umfasst und mit diesen muss man die Koordinaten der Strasse kombinieren?

Oder gibt es eine Api die mein Problem vielleicht vereinfacht?

Muß es der Straßenname sein oder ginge auch die Osm-ID des Weges?
In letzterem Fall wäre es über die Overpass-API recht einfach …

Gruß Klaus

Das ist ein häufiges Problem. Die korrekte Lösung ist so:

  1. Finde den Ort (im Sinne eines Ortsgrenzen-Polygons). Ich kenne osm2mssql nicht, aber damit das richtig funktioniert, muss der Importer die meist als Relationen formulierten administrativen Grenzen als Polygon in die Datenbank importieren. In den meisten Fällen wirst Du nach einer Relation mit boundary=administrative und admin_level=4 (wenn es ein Stadtstaat ist) oder 6 (kreisfreie Stadt) oder 8 (sonstige Stadt) suchen. Im Fall von Düsseldorf ist es diese Relation: http://www.openstreetmap.org/browse/relation/62539

  2. Stelle an Deine Datenbank eine Anfrage der Form “welches Linienobjekt mit highway=irgendwas und name=Königsallee liegt im Polygon der Relation 62539”.

Dann bekommst Du das Gesuchte.

Du kannst natürlich eine Nominatim-Abfrage nach “Königsallee Düsseldorf” machen:

http://nominatim.openstreetmap.org/search.php?q=k%C3%B6nigsallee+d%C3%BCsseldorf&format=xml

Das liefert dir als Resultat zumindest schonmal drei OSM-Ways mit ID, und Du koennst dann anhand einer eigenen Datenbank oder mit

http://api.openstreetmap.org/api/0.6/way/hier-die-id-die-mich-interessiert/full

alle Nodes zu diesem Way bekommen. Diese Art des Daten-Downloads ist fuer ab-und-zu-Benutzung voellig ok, aber das solltest Du nicht in ein Programm einbauen, das das dann tausendmal am Tag macht.

Bye
Frederik