Muellabfuhr

Aus /dev/tal
Wechseln zu: Navigation, Suche

Müllabfuhr

Hier entsteht eine Dokumentation zu der API von AWG [1] und der weiteren Möglichkeit zur Auswertung.




Wie man die Straßenposition aus OSM Daten abruft

Über die OSM API v0.6 kann man alle OSM Daten einer bestimmten Region über eine Bounding Box abrufen. Die genau Beschreibung der API-Anfrage findet man auf der OSM API v0.6.

  1. Suchen der Straße über der Straßennamen (in Wuppertal)
  2. Bestimmen aller Ways die zur Straße gehören
  3. Bestimmen aller Nodes die zur all diesen Ways gehören
  4. Ermitteln der Postionen von all diesen Nodes

Ein Beispiel

Zur Verdeutlichung der Funktion hier mal ein kleines Beispiel.

Mit der folgenden Abfrage über Nominatim lässt sich nach dem Namen "Mirker Straße" in Wuppertal suchen:

http://nominatim.openstreetmap.org/search?street=Mirker+Stra%C3%9Fe&city=Wuppertal&country=Germany&format=xml

Die in der XML-Ausgabe finden sich mehrere Ergebnisse (places).

<searchresults ...>
 <place ... osm_type="way" osm_id="42258384" ... />
 <place ... osm_type="way" osm_id="188836503" ... />
 <place ... osm_type="way" osm_id="233759747" ... />
</searchresults>

Uns interessieren nur die osm_ids von allen places mit osm_type="way". Für die einzelnen osm_ids können wir nun die beteiligten refs abfragen. Für eine der ids sieht die Abfrage wie follgt aus:

http://api.openstreetmap.org/api/0.6/way/233759747

XML-Ausgabe wieder:

<osm ...">
  <way id="233759747" ...>
    <nd ref="2420975486"/>
    <nd ref="2420975763"/>
    <nd ref="2420975488"/>
    <nd ref="2420975487"/>
    <tag k="highway" v="service"/>
    <tag k="name" v="Mirker StraÃe"/>
  </way>
</osm>

Wenn alle Referenzen bestimmt sind und Duplikate entfernt wurden, kann für jede ref die Details angefragt werden.

http://api.openstreetmap.org/api/0.6/node/2420975486
<?xml version="1.0" encoding="UTF-8"?>
<osm ...>
  <node id="2420975486" ... lat="51.2671375" lon="7.1465396" .../>
</osm>

Erzeugen von Regionen

Um Regionen in der Karte darzustellen, bietet sich als einfachsten an, die konvexe Hülle aller Punkte einer Region zu berechnen. Dies lässt sich z.B: über den Graham Scan realisieren.

Um die Regionen als Overlay in der Karte anzuzeigen, bietet sich OSMTool [3] an. Siehe OSM Slyppimap [4]

Weblinks