Muellabfuhr: Unterschied zwischen den Versionen
Omega (Diskussion | Beiträge) K (→Wie man die Straßenposition aus OSM Daten abruft) |
Omega (Diskussion | Beiträge) (→Wie man die Straßenposition aus OSM Daten abruft) |
||
Zeile 13: | Zeile 13: | ||
Ü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 [http://wiki.openstreetmap.org/wiki/API_v0.6#Retrieving_map_data_by_bounding_box:_GET_.2Fapi.2F0.6.2Fmap OSM API v0.6]. | Ü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 [http://wiki.openstreetmap.org/wiki/API_v0.6#Retrieving_map_data_by_bounding_box:_GET_.2Fapi.2F0.6.2Fmap 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 | + | # Bestimmen aller Nodes die zur all diesen Ways gehören |
# Ermitteln der Postionen von all diesen Nodes | # Ermitteln der Postionen von all diesen Nodes | ||
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 | + | 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 | + | 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: | |
− | <node id=" | + | |
+ | <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> | ||
= Weblinks = | = Weblinks = |
Version vom 12. Oktober 2013, 01:15 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>
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