Beispiel für eine Overpass-Abfrage

Änderungen in einem Gebiet zwischen zwei Daten (adiff)

Ein Augmented Diff listet, was zwischen zwei Daten hinzukam, sich änderte oder gelöscht wurde, mit alter und neuer Version. Beispiel: Paradeplatz, Zürich, Ende 2024.

Verlaufsabfragen gehören zu den Tarifen Medium und Large. Das Ergebnis unten läuft für diese Seite auf unserem Server.

[adiff:…] führt die Abfrage an zwei Daten aus und vergleicht die Antworten. Das Ergebnis listet, was hinzukam, was sich änderte und was gelöscht wurde; ein geändertes Element kommt mit seiner alten und seiner neuen Version.

Diese Abfrage listet die Änderungen rund um den Paradeplatz in Zürich zwischen dem 1. Oktober 2024 und dem 1. Januar 2025. Diffs gibt es nur in XML: Mit [out:json] lehnt Overpass die Abfrage ab.

Die Abfrage

[out:xml][timeout:60][adiff:"2024-10-01T00:00:00Z","2025-01-01T00:00:00Z"];
nw(47.370,8.538,47.372,8.542)(if:count_tags()>0);
out meta geom;

Ausführen

Die Abfrage läuft…

Live-Ergebnis von overpass.ch, bis zu 12 Stunden zwischengespeichert. Kartendaten © OpenStreetMap-Mitwirkende (ODbL).

So funktioniert es

  1. [adiff:"2024-10-01T00:00:00Z","2025-01-01T00:00:00Z"] gibt die beiden Daten an. Mit nur einem Datum vergleicht Overpass es mit den aktuellen Daten.
  2. (if:count_tags()>0) lässt die Nodes von Ways ohne Tags weg. Wenn ein solcher Node verschoben wird, erscheint der Way als geändert, manchmal mit derselben Versionsnummer.
  3. out meta geom; gibt jede Version mit Tags, Koordinaten, Versionsnummer, Zeit und Benutzer aus.
  4. Jede Änderung ist eine <action>: create für Neues, modify mit einer <old>- und einer <new>-Version, delete für Verschwundenes. Ein gelöschtes Objekt hat visible="false" in <new>; ohne das gibt es das Objekt noch, es passt aber nicht mehr zur Abfrage.
  5. Die meisten Zeilen stammen von Bearbeitungen der Tramgleise am 11. November 2024: verschobene Nodes und die Ways, die sie verwenden. An vier Stellen kamen Aussensitzplätze hinzu, und der Junobrunnen wurde neu gezeichnet: Sein Punkt verlor die Tags, und ein neuer Umriss trat an seine Stelle.

Varianten

  • [diff:…] liefert dieselben Änderungen ohne die neue Version des Verschwundenen. Es kann also ein gelöschtes Objekt nicht von einem unterscheiden, das nicht mehr passt.
  • Nur Hinzugekommenes und Gelöschtes: Ergänzen Sie compare(delta:id()); vor out, wie bei gelöschten Objekten in einem Gebiet.
  • Mit Relationen (nwr statt nw) dauerte diese Abfrage zehnmal so lange, und die Antwort war 20-mal grösser.
  • Um die Bearbeitungen in einem Gebiet zu verfolgen, führen Sie die Abfrage jeden Tag mit dem Vortag als einzigem Datum aus.

Aus Ihrem Code ausführen

curl https://api.overpass.ch/v1/IHR_API_SCHLÜSSEL/interpreter \
  --data-urlencode 'data@query.overpassql'

Speichern Sie die Abfrage als query.overpassql. Sie funktioniert genauso in Overpass Turbo, QGIS und JOSM.

Weitere Beispiele

Alle Beispiele →