Overpass API: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Stefan (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
Stefan (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
||
| Zeile 1: | Zeile 1: | ||
Overpass API - Selektiver Download von Daten aus der Hauptdatenbank von [[OpenStreetMap]]. | Overpass API - Selektiver Download von Daten aus der Hauptdatenbank von [[OpenStreetMap]]. | ||
Siehe auch [[ | Siehe auch [[HowTo OpenStreetMap]] | ||
Webseiten: | Webseiten: | ||
| Zeile 7: | Zeile 7: | ||
* Overpass Turbo (Webapp/Server): http://overpass-turbo.eu/ | * Overpass Turbo (Webapp/Server): http://overpass-turbo.eu/ | ||
Beispiel 1: Siehe [[Nutzen von OpenStreetMap-Daten in GIS]]. | |||
Beispiel 2: Alle Eisenbahnschienen in der Gegend von Rapperswil | |||
Diskussion: | |||
* Die BBox-Werte für Osten müssen größer sein als für Westen und genauso die Werte für Norden größer als für Süden. Also: s<n und w<e, sortiert als s,w,n,e (Rapperswil: 47.213,8.704,47.336,8.905). | |||
* '{{bbox}}' ist eine Variable im Overpass Turbo (funktioniert im Overpass Service natürlich nicht). | |||
* 'recurse' löst Referenzen von Ways zu Nodes auf (warum auch immer 'recurse' (und nicht z.B. dereference) da dies ja nur einstufig ist?) | |||
* 'union' fasst Ergebnismengen von Anfragen zusammen - auch wenn's im Falle von recurse nur eine ist (...?) (OR-Verknüpfung) | |||
* 'print' gibt die Sache aus (warum auch immer print gewählt wurde, da dies ja nichts mit der Konsole zu tun hat... Warum nicht 'format='?) | |||
XML: | |||
<osm-script timeout="900"> | |||
<union> | |||
<query type="way"> | |||
<has-kv k="railway" v="rail"/> | |||
<bbox-query {{bbox}}/> | |||
</query> | |||
<recurse type="way-node"/> | |||
<query type="way"> | |||
<has-kv k="railway" v="narrow_gauge"/> | |||
<bbox-query {{bbox}}/> | |||
</query> | |||
<recurse type="way-node"/> | |||
</union> | |||
<print/> | |||
</osm-script> | |||
QL: | |||
[timeout:900]; | |||
( | |||
way | |||
["railway"="rail"] | |||
(47.213,8.704,47.336,8.905); | |||
node(w); | |||
); | |||
out; | |||
Kompakte QL: | |||
http://www.overpass-api.de/api/interpreter?data=%28way%5B%22railway%22%3D%22rail%22%5D%2845%2E8%2C5%2E95%2C47%2E83%2C10%2E51%29%3Bnode%28w%29%3B%29%3Bout%3B | |||
oder mit Regex: | |||
<osm-script timeout="900"> | |||
<union> | |||
<query type="way"> | |||
<has-kv k="railway" regv="^(rail|narrow_gauge)$"/> | |||
<bbox-query s="47.213" w="8.704" n="47.336" e="8.905"/> | |||
</query> | |||
<recurse type="way-node"/> | |||
</union> | |||
<print/> | |||
</osm-script> | |||
oder mit Negation: | |||
<osm-script timeout="900"> | |||
<union> | |||
<query type="way"> | |||
<has-kv k="railway" modv="not" regv="rail|narrow_gauge"/> | |||
<bbox-query s="47.213" w="8.704" n="47.336" e="8.905"/> | |||
</query> | |||
<recurse type="way-node"/> | |||
</union> | |||
<print/> | |||
</osm-script> | |||
[[Kategorie:Howto]] [[Kategorie:OpenStreetMap]] | [[Kategorie:Howto]] [[Kategorie:OpenStreetMap]] | ||
Version vom 9. Februar 2013, 01:08 Uhr
Overpass API - Selektiver Download von Daten aus der Hauptdatenbank von OpenStreetMap.
Siehe auch HowTo OpenStreetMap
Webseiten:
- Overpass API (Dokumentation und öff. Server): http://overpass-api.de/ und http://wiki.openstreetmap.org/wiki/Overpass_API
- Overpass Turbo (Webapp/Server): http://overpass-turbo.eu/
Beispiel 1: Siehe Nutzen von OpenStreetMap-Daten in GIS.
Beispiel 2: Alle Eisenbahnschienen in der Gegend von Rapperswil
Diskussion:
- Die BBox-Werte für Osten müssen größer sein als für Westen und genauso die Werte für Norden größer als für Süden. Also: s<n und w<e, sortiert als s,w,n,e (Rapperswil: 47.213,8.704,47.336,8.905).
- 'Vorlage:Bbox' ist eine Variable im Overpass Turbo (funktioniert im Overpass Service natürlich nicht).
- 'recurse' löst Referenzen von Ways zu Nodes auf (warum auch immer 'recurse' (und nicht z.B. dereference) da dies ja nur einstufig ist?)
- 'union' fasst Ergebnismengen von Anfragen zusammen - auch wenn's im Falle von recurse nur eine ist (...?) (OR-Verknüpfung)
- 'print' gibt die Sache aus (warum auch immer print gewählt wurde, da dies ja nichts mit der Konsole zu tun hat... Warum nicht 'format='?)
XML:
<osm-script timeout="900">
<union>
<query type="way">
<has-kv k="railway" v="rail"/>
<bbox-query Vorlage:Bbox/>
</query>
<recurse type="way-node"/>
<query type="way">
<has-kv k="railway" v="narrow_gauge"/>
<bbox-query Vorlage:Bbox/>
</query>
<recurse type="way-node"/>
</union>
<print/>
</osm-script>
QL:
[timeout:900];
(
way
["railway"="rail"]
(47.213,8.704,47.336,8.905);
node(w);
);
out;
oder mit Regex:
<osm-script timeout="900">
<union>
<query type="way">
<has-kv k="railway" regv="^(rail|narrow_gauge)$"/>
<bbox-query s="47.213" w="8.704" n="47.336" e="8.905"/>
</query>
<recurse type="way-node"/>
</union>
<print/>
</osm-script>
oder mit Negation:
<osm-script timeout="900">
<union>
<query type="way">
<has-kv k="railway" modv="not" regv="rail|narrow_gauge"/>
<bbox-query s="47.213" w="8.704" n="47.336" e="8.905"/>
</query>
<recurse type="way-node"/>
</union>
<print/>
</osm-script>