Bitte um Hilfe beim Anpassen einer overpass Abfrage

Hallo,
hier sind einige Beispiele für Abfragen aufgelistet.
https://wiki.openstreetmap.org/wiki/DE:Overpass_API/Beispielsammlung#Straßenliste

Unter anderen diese:

[out:csv(name;false)];
area[name=“Troisdorf”];
way(area)[highway][name];
out;

In dieser Abfrage habe ich Troisdorf durch Essen ersetzt - was auch soweit klappt. Da es aber mehrere Essen gibt - u.a. in Belgien erscheinen im Ergebnis auch Straßen die in anderen Essen, z.B. eben welche die in Belgien liegen. Daher habe ich versucht die Abfrage anstatt mit dem Ortsnamen “Essen” mit der rel(62713) durchzuführen. Das gelingt mir aber nicht. Wie kann ich in dieser Abfrage den “Ort” gegen die rel(62713) austauschen?

Als Zusatz steht dann noch unter der Beispielabfrage:
Das Ergebnis dieser Abfrage muss nur noch mit sort liste.csv | uniq von Duplikaten befreit werden.

Wie bewerkstellige ich das?

Vielen Dank im Voraus
Gruß
Blaubaer

Um eine Relation als Area zu verwenden, brauchst du zusätzlich die map_to_area-Anweisung.
Die for-Schleife sortiert dann alle Namen und entfernt Duplikate.

[out:csv("name";false)];
rel(62713);
map_to_area;
way(area)[highway][name];

for (t["name"])
(
  make x name=_.val;
  out; 
);

(kopiert und angepasst von hier: Overpass API by Example - List of streets)

Bedenke auch, dass in dieser Abfrage nicht nur Straßen, sondern alle highway-Typen enthalten sind, also z.B. auch Pfade, Feldwege, etc.

2 Likes

Vielen Dank,
das hätte ich leider so nicht hinbekommen obwohl ich in Zukunft versuchen möchte mich in die Grundlagen der Abfragesyntax einzuarbeiten…
Schauen wir mal was daraus wird :wink:

Statt des Namens kann man auch einen der eineindeutigen Tags nehmen, die an der Relation erfasst sind, z.B. den Amtlichen Gemeindeschlüssel:

area["de:amtlicher_gemeindeschluessel"="05113000"];
2 Likes

Danke, airbrick, versuch ich gleich auch mal in meine Abfragen einzubauen…