User:Wandertext/Overpass XML Referenz

From OpenStreetMap Wiki
(Redirected from Overpass XML Referenz)
Jump to navigation Jump to search

Overpass API-Ref

Attribute die in fast allen XML-Elementen verwendet werden können:

  • from:
    Wählt die Eingabemenge aus.
  • into:
    Vergibt für Ausgabgemenge einen Namen.

<osm-script>

Markierung, dass hier eine Overpass Abfrage kommt. Sie stellt nur globale Einstellungen ein und wird in der Regel automatisch um alle Abfragen gesetzt, solange sie nicht explizit mit angegeben wird. Werden die Grenzen überschritten, so wird die Anfrage abgebrochen. Enthält Abfragen und Ausführungsanweisungen.
Attribute:

  • timeout
    Timeout für eine Abfrage in Sekunden
  • element-limit
    Maximale Anzahl an Ergebniseinträgen
  • maxsize:
    Gibt die maximale RAM-Größe an die eine Abfrage verwenden darf in Byte
  • bbox:
    Bounding Box als s,w,n,e
    Erzeugt ein bbox-query nur eben schon im osm-script Teil
  • output:
    define the output format
    Werte:
    "xml"
    "json"
    "csv"
    "custom": Benötigt ein Template für das Ausgabeformat.
    "popup"
  • date:
    Liefert nur Daten mit dem Zeitstempel zurück z.B. "2012-09-14T07:00:00Z" -> So als wäre die OSM-Datenbank zum angegebenen Datum abgefragt wurden.
  • from:
    Ist ein Zeitstempel ab den Elemente zurückgegeben werden. z.B. "2012-09-14T07:00:00Z" arbeitet wie newer
  • augmented:
    Werte:
    "deletions": Kann nur zusammen mit from gesetzt werden und liefert dann alle Löschungen seit dem Zeitstempel auf.
    "": Standardwert

<query>

Definiert eine Abfrage mit entsprechenden Filterausdrücken. (Enthält Filterausdrücke)
Attribute:

  • type:
    Legt den grundlegenden Typ der Zurückgegebenen Elemente fest.
    Werte:
    "node": -> Alle OSM Knoten
    "way": -> Alle Wegelemente
    "relation": -> Alle Relationen
    "area": -> Alle Bereiche
  • into:
    Ziel an das die Elemente geschickt werden sollen

<polygon-query>

Filtert nach einem Koordinatenpolygon.
Attribute:

  • bounds:
    Polygonpunkte in Koordinaten z.B. "50.7 7.1 50.7 7.2 50.7005 7.1005" für ein sehr schmales Dreieck in Bonn
  • into:
    -> siehe allgemeine Info zu into Attributen

<has-kv>

Filter für OSM-Attribute nach dem key-value Prinzip. Attribut = key, value = enthaltener Wert. Dabei muss nicht immer das komplette Key-Value Paar vorgegeben werden, man kann auch nur nach keys oder nur nach Values filtern.
Attribute:

  • k:
    Der Key Wert nach dem gefiltert werden soll
  • v:
    Der Value Wert nach dem gefiltert werden soll
  • modv:
    "": Value is found in key
    "not": Value is not found in key
  • regk:
    regualar expression as key filter.
  • regv:
    regular expression as value
  • case:
    "sensitive"
    "ignore"

<bbox-query>

Definiert eine Bereichseingrenzung (als Filter?).
Attribute:

  • into:
    Ausgabemenge
  • s: (outh)
    Südkoordinate als unterer Breitengrad +Nord, - Süd [+90° .... -90°]
  • w:(est)
    Westkoordinate als linker Längengrad (Als Längengrad -> Erde = 0° bis 360° -> negativ ändert die Drehrichtung -> + geht also nach Osten)
  • n:(orth)
    Nordkoordinate als oberer Breitengrad +Nord, - Süd [+90° .... -90°]
  • e:(ast)
    Ostkoordinate als rechter Längengrad (0° bis 360° -> 0° ist bei Greenwich) Ist w > e, dann wird genau der Teil entgegen der normalen Drehsinns von links nach rechts genommen, also durch den 180° Punkt durch.



Sonderkürzel:

  • {{bbox}}:
    Kurzform für den aktuellen im Overpass-turbo angezeigten Kartenausschnit


<id-query>

Liefert das Element mit der angegebenen ID zurück. Oder Optional auch des ID-Bereichs. -> ID-Filter
Attribute:

  • into:
  • type:
    "node"
    "way"
    "relation"
    "area"
  • ref:
    Die zu findende ID.
  • lower:
    ID Bereich in dem die ID sein sollte. (ref >= lower)
  • upper:
    Obergrenze des ID Breichs (ref < upper)


<recurse>

(Transformationsanweisung, kein Filter) Liefert die Kindelemente zu bereits gefundenen Elementen. Dabei muss aber vorgegeben welche Beziehung zwischen den Elementen gefolgt werden soll. Dabei werden die Eingabelemente nicht weitergereicht. Erst mit einem <Union> Werden auch die Eingabemengen mit den Ausgabmengen vereinigt.
Attribute:

  • type:
    Legt die Art der Beziehung fest.
    Werte:
    "node-way": -> Alle Wege (Ways) von den bisher gefundenen Knoten (Nodes)
    "node-relation": -> Alle Relationen von bisher gefundenen Knoten
    "way-node": -> Alle Knoten von bisher gefundenen Wegen
    "way-relation": -> Alle Relationen von bisher gefundenen Wegen
    "relation-way": -> Alle Wege von bisher gefundenen Relationen
    "relation-node": -> Alle Knoten von bisher gefundenen Relationen
    "relation-backwards": -> Alle Elemente die auf die bisher gefundenen Relationen verweisen
    "relation-relation": -> Alle Relationen die auf die bisher gefundenen Relationene verweisen.
    "up": -> Liefert alle Elemente die auf die Eingabeelemente verweisen
    "up-rel" -> Liefert alle Relationen die auf die Eingabeelemnete verweisen
    "down": -> Liefert alle Elemente auf die die Eingabeelementen verweisen
    "down-rel" -> Liefert alle Relationen auf die die Eingabelemente verweisen
  • into="var_name":
    Gibt an in welchen Variablennamen die Kindelemente abgelegt werden sollen
  • role:
    Filtert zusätzlich die gefundenen Beziehungen nach Rollen. Rollen sind Schlüsselworte was die Nodes auf die verwiesen wird eigentlich darstellen sollen. z.B. Bushaltestellen als "stops"
  • role-restricted:
    Aktiviert die Role-Filterung. Normalerweise automatisch gesetzt, sobald ein role Attribut gesetzt wird. Kann aber auch manuell gesetzt werden. z.B. wenn alle Relationen ohne Rolle gefunden werden sollen.
    "no"
    "yes"
  • from:
    Wählt aus welche Menge für die Relationsfindung als Eingabe dient.

<around>

Schränke die Ergebnisse auf einen Nahen Bereich ein. Dieser Bereich wird auf alle Eingegebenen Elemte angewendet. (Filter)
Attribute:

  • radius:
    Gibt den Näheren Bereich als Radius in Metern an. (float)
  • from:
    Eingabe Elementemenge
  • into:
    Ausgabemenge
  • lat:
    Gibt den Breitengrad des zustäzlichen Punkts an (-90° bis 90°)
  • lon:
    Gibt den Längengrad des zustäzlichen Punkts an. (-180° bis 180°)


<union>

Vereinigt alle enthaltenen Abfragen in eine Gesamtmenge.
Attribute:

  • into:
    Ausgabemenge

<print>

Gibt die Eingabemenge im gewünschten Format aus.
Attribute:

  • mode:
    "ids_only": Nur die Elemente-IDs ausgeben.
    "skeleton": Liefert nur Koordinaten der elemente für die räumliche Anordnung der Elemente
    "body": Standardwert. Liefert alle typischen Kartendaten.
    "meta": Print all meta of the elements (e.g. version, changeset idm timestam, user data, user, ...)
    "tags": Liefert nur IDs und Tags der Elemente
  • order:
    "id": Sortiere nach IDs
    "quadtile": Sortiere nach quad tile index -> Näherungsweise nach geographischer Position
  • limit:
    Nummer gibt die maximale Anzahl an Ausgabeelementen an.
  • out:
    Legt das Ausgabeformat fest
    "xml":
    "json"
    "csv"
    "custom"
    "popup"
  • count:
    Legt fest das nur die Anzahl der Elemente gezählt werden soll
  • e:
    ?Bounding Box Grenzen
  • from:
    siehe allgemeines zu from
  • geometry:
    "skeleton": Standartwert
    "full": Liefert alle Koordinatendaten der Elemente zurück.
    "bounds": Liefert zusätzlich eine BoundingBox für jedes Element zurück
    "center": Liefert den Mittelpunkt der BoundingBoxen zurück
  • n:
    ? -> Bounding Box Grenzen
  • s:
    Bounding Box Grenzen
  • w:
    Bounding Box Grenzen

<item>

Wählt alle bisher gefundenen Elemente aus. Kann zum definieren von benannten Sets genutzt werden.
Attribute:

  • set="set_name":
    Benennt eine Menge. (hier: set_name) wirkt genau wie into sonst.


<make-area>

Erzeugt eine Area-Menge aus den Wegen der Eingabelemente. -> Baut also ein neues Area für die Overpass API auf.
Attribute:

  • from:
    Eingabemenge
  • into:
    Ausgabemenge
  • pivot:
     ?

<area-query>

Ruft eine Area-Struktur mit einer ID ab
Atribute:

  • from:
    Eingabemenge
  • into:
    Ausgabemenge
  • ref:
    Die ID des Areas


<foreach>

Führt die angegebenen Unterstatements mit jedem Element der Eingabemenge aus.
Attribute:

  • from:
    Eingabemenge
  • into:
    Ausgabemenge

<newer>

Liefert Elemente die ab einem Datum erstellt wurden. (Filter)
Attribute:

  • than:
    Gibt das Startdatum an. z.B.: "2012-09-14T07:00:00Z"

<changed>

Filtert nach dem Änderungsdatum. Dabei muss immer ein Zeitbereich von bis festgelegt werden.
Attribute:

  • into:
    Ausgabemenge
  • since:
    "auto"
    Zeitstempel als Startzeitpunkt, z.B. "2012-09-14T07:00:00Z"
  • until:
    "auto"
    Zeitstempel als Endzeitpunkt z.B. "2012-09-14T07:00:00Z"

<user>

Filtert nach Benutzer IDs und gibt nur die Elemte zurück die diese Anforderung erfüllen.
Attribute:

  • into:
    Ausgabemenge
  • uid:
    Benutzer ID
  • name:
    Benutzername (es darf immer nur eins von beiden gesetzt sein uid oder name)
  • type:
    "node"
    "way"
    "relation"


<coord-query>

Liefert Areas die die angegebene Koordinate enthalten zurück. (Filter)
Attribute:

  • from:
    Eingabemenge
  • into:
    Ausgabemenge
  • lat:
    Breitengrad der Koordinate
  • lon:
    Längengrad der Koordinate

<difference>

Muss zwei Unterabfragen enthalten. Dabei wird die Differenz der Ergebnismenge der ersten Abfrage - der Ergebnismenge der zweiten Abfrage erzeugt und in into-Menge abgelegt.
Attribute:

  • into:
    Ausgabemenge

<map-to-area>

Findet die Areas die die eingegebenen Weg- oder Relationselemente enthalten.
Attribute:

  • from:
    Eingabemenge
  • into:
    Ausgabemenge


OSM Datenstrukturen:

Die Rohe Datenbank kennt nur Nodes, Ways, Relations und Tags für alle vorher genannten Daten. http://chrisnatali.github.io/osm_notes/osm_schema.html

<Node id="2934503289" lat="50.6862257" lon="3.1742962">
<tag k="" v=""/>
</Node>

<way id="">
<nd ref=""/> .... Referenz auf eine Node
<tag k="" v=""/>
</way>

<relation id="">
<member type="way" ref="99050013" role="outer"/>
<tag k="name" v="x"/>
</relation>


Es gibt aber geschlossene Wege die mit dem Tag area=yes ausgestattet sind. Oder Relationen mit mehreren Wegen und dem Tag multipolygon=yes. Multipolygone können auch Löcher enthalten (role=inner) und eben den geschlossenen Begrenzungspfad (role=outer) Die Overpass API baut daraus dann die Areas als eigene Datenstrukturen. (http://wiki.openstreetmap.org/wiki/Overpass_API/Areas) Grundlegend werden Postleitzahlen, Wege mit dem Tag area=yes und admin-Level Strukturen als Area aufgenommen.