Mit out meta; kommt jedes Element mit seiner Versionsnummer, der Zeit der letzten Bearbeitung, dem Benutzer, der sie gemacht hat, und dem Changeset. timestamp() macht die Zeit in Filtern verwendbar.
Diese Abfrage findet die Läden in Bern, die seit 2020 niemand bearbeitet hat: eine Liste für einen Rundgang, um zu prüfen, ob es sie noch gibt.
Die Abfrage
[out:json][timeout:60];
area["name"="Bern"]["admin_level"="8"]["wikidata"="Q70"]->.a;
nwr["shop"](area.a)(if:date(timestamp())<date("2020-01-01"));
out center meta;
Ausführen
Live-Ergebnis von overpass.ch, bis zu 12 Stunden zwischengespeichert. Kartendaten © OpenStreetMap-Mitwirkende (ODbL).
So funktioniert es
- Ein anderer Ort namens Bern hat ebenfalls admin_level 8.
["wikidata"="Q70"]wählt die Schweizer Bundesstadt. timestamp()ist die Zeit der letzten Bearbeitung.date(…)macht aus einer Zeit eine Zahl, damit sich zwei Zeiten vergleichen lassen.(if:date(timestamp())<date("2020-01-01"))behält die Läden, die zuletzt vor 2020 bearbeitet wurden.out center meta;ergänzt jedes Ergebnis um Version, Zeit und Benutzer; die Tabelle zeigt sie.
Varianten
- Nach einem Rundgang hält ein Tag
check_datemit dem Datum des Besuchs fest, dass es den Laden noch gibt. - Von einem Benutzer bearbeitet:
(user:"…"). In einem Zeitraum geändert:(changed:"2025-01-01T00:00:00Z","2025-02-01T00:00:00Z"). Halten Sie den Zeitraum kurz: Über ein Jahr gingchangedselbst bei einem kleinen Rahmen der Speicher aus. - Jede Version eines einzelnen Objekts: siehe alle Versionen eines Objekts.
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.json()["elements"][:3])
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.json());
Speichern Sie die Abfrage als query.overpassql. Sie funktioniert genauso in Overpass Turbo, QGIS und JOSM.