Muellabfuhr: Unterschied zwischen den Versionen

Aus /dev/tal
Wechseln zu: Navigation, Suche
(Wie man die Straßenposition aus OSM Daten abruft)
K (Ein Beispiel)
 
(3 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 22: Zeile 22:
 
Zur Verdeutlichung der Funktion hier mal ein kleines Beispiel.
 
Zur Verdeutlichung der Funktion hier mal ein kleines Beispiel.
  
Mit der folgenden Abfrage lässt sich nach dem Namen "Mirker Straße" in Wuppertal suchen:
+
Mit der folgenden Abfrage über [http://wiki.openstreetmap.org/wiki/Nominatim 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
 
  http://nominatim.openstreetmap.org/search?street=Mirker+Stra%C3%9Fe&city=Wuppertal&country=Germany&format=xml
Zeile 59: Zeile 59:
 
   <node id="2420975486" ... lat="51.2671375" lon="7.1465396" .../>
 
   <node id="2420975486" ... lat="51.2671375" lon="7.1465396" .../>
 
  </osm>
 
  </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 [http://de.wikipedia.org/wiki/Graham_Scan Graham Scan] realisieren.
 +
 +
Um die Regionen als Overlay in der Karte anzuzeigen, bietet sich OSMTool [3] an. Siehe OSM Slyppimap [4]
  
 
= Weblinks =
 
= Weblinks =
Zeile 64: Zeile 70:
 
* [1] AWG http://awg.wuppertal.de
 
* [1] AWG http://awg.wuppertal.de
 
* [2] ics mit php erstellen http://www.php.de/php-tipps-2009/55208-erledigt-ics-icalendar-datei-mit-php-erstellen.html
 
* [2] ics mit php erstellen http://www.php.de/php-tipps-2009/55208-erledigt-ics-icalendar-datei-mit-php-erstellen.html
 +
* [3] http://osmtools.de
 +
* [4] http://osmtools.de/easymap

Aktuelle Version vom 12. Oktober 2013, 01:42 Uhr

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