Muellabfuhr: Unterschied zwischen den Versionen
(→Erzeugen von Regionen) |
(→Weblinks) |
||
Zeile 70: | 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 |
Version vom 12. Oktober 2013, 01:32 Uhr
Inhaltsverzeichnis
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.
- Suchen der Straße über der Straßennamen (in Wuppertal)
- Bestimmen aller Ways die zur Straße gehören
- Bestimmen aller Nodes die zur all diesen Ways gehören
- Ermitteln der Postionen von all diesen Nodes
Ein 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:
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
- [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
- [3] http://osmtools.de
- [4] http://osmtools.de/easymap