[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
Live-Ergebnis von overpass.ch, bis zu 12 Stunden zwischengespeichert. Kartendaten © OpenStreetMap-Mitwirkende (ODbL).
So funktioniert es
[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.(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.out meta geom;gibt jede Version mit Tags, Koordinaten, Versionsnummer, Zeit und Benutzer aus.- Jede Änderung ist eine
<action>:createfür Neues,modifymit einer<old>- und einer<new>-Version,deletefür Verschwundenes. Ein gelöschtes Objekt hatvisible="false"in<new>; ohne das gibt es das Objekt noch, es passt aber nicht mehr zur Abfrage. - 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());vorout, wie bei gelöschten Objekten in einem Gebiet. - Mit Relationen (
nwrstattnw) 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'
import requests
query = open("query.overpassql").read()
r = requests.post("https://api.overpass.ch/v1/IHR_API_SCHLÜSSEL/interpreter",
data={"data": query}, timeout=120)
r.raise_for_status()
print(r.text)
const res = await fetch("https://api.overpass.ch/v1/IHR_API_SCHLÜSSEL/interpreter", {
method: "POST",
body: new URLSearchParams({ data: query }),
});
if (!res.ok) throw new Error(await res.text());
console.log(await res.text());
Speichern Sie die Abfrage als query.overpassql. Sie funktioniert genauso in Overpass Turbo, QGIS und JOSM.