Overpass API: Unterschied zwischen den Versionen

Aus Geoinformation HSR
Wechseln zu: Navigation, Suche
K
K
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 [[HowTo_OpenStreetMap]]
+
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/
  
Beispiele:
+
Beispiel 1: Siehe [[Nutzen von OpenStreetMap-Daten in GIS]].
* 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, 03:08 Uhr

Overpass API - Selektiver Download von Daten aus der Hauptdatenbank von OpenStreetMap.

Siehe auch HowTo OpenStreetMap

Webseiten:

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;

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>