OpenStreetMap logo OpenStreetMap

a_peter's Diary

Recent diary entries

Da sich die Dokumentation der Overpass-API um dieses Thema herumdrückt, werde ich das mal hier beschreiben.

Ausgangspunkt ist overpass turbo, um Overpass-Abfragen starten zu können.

Als Beispiel nehmen wir mal meine Heimatstadt Berlin. Zuerst müssen wir herausfinden, welche Relation die Stadt Berlin beschreibt. Ab zu openstreetmap.org und “Berlin” in das Suchfeld eingetragen. Bei mir ist es der zweite Treffer “Landesgrenze Berlin, Deutschland, Europäische Union”. Mit der Maus über den Link fahren und wir sehen Relation 62422 beschreibt die Berliner Stadtgrenze.

Jezt wollen wir eine Abfrage in overpass machen, die diese Relation als Außengrenze nutzt. Dazu verwenden wir folgende Notation:

node(area:3600062422);

Wo die 3.600.000.000 herkommen, die man zur ID der Relation addieren muss habe ich noch nicht herausgefunden. Vielleich kann mir das jemand noch mitteilen. Auf jeden Fall funktioiniert das mit jeder beliebigen Relation. Zu deren ID 3.600.000.000 addieren und mit Doppelpunkt hinter “area” schreiben. Damit kann man außer “node” natürlich auch “way” und “rel” angeben, um Wege oder Relationen innerhalb einer Relation abzufragen.

Jetzt wollen wir mal sehen, ob es Knoten gibt, die in “addr:city” irgendetwas anderes haben als “Berlin”. Ein erster Versuch mit

node(area:3600062422)[“addr:city”!~”Berlin”]; out meta;

schlägt fehl. Denn es werden zuviele Knoten gefunden [“addr:city”!~”Berlin”] findet nämlich auch alle Knoten, die gar kein “addr:city” haben. Da müssen wir etwas “komplizierter” denken.

Suchen wir zuerst mal alle Knoten, die überhaupt das Attribut “addr:city” haben. Durch die Einschränkung innerhalb der Relation sind das schon mal nicht ganz soviele:

node(area:3600062422)[“addr:city”]; out meta;

See full entry