Overpass Turbo - Union aus zwei Queries mit unterschiedlichen Bboxes

Hallo,
ich versuche gerade, bei Overpass Turbo eine Union aus zwei Queries mit unterschiedlichen bboxes hinzukriegen, aber stecke leider fest…

Diese Query funktioniert:

[out:json][timeout:25]
[bbox: 53.60263523333334,9.891993379333329,53.60589356666667,9.895251712666663];
(node[“shop”=“supermarket”];node[“amenity”=“fast_food”];);
out center;

Das Ergebnis von oben hätte ich gerne zusammen mit dem einer weiteren Query mit einer anderen bbox, z.B. dieser hier:

[out:json][timeout:25]
[bbox: 53.55926553333333,9.963177765877191,53.562523866666666,9.966436099210526];
(node[“amenity”=“bar”];node[“amenity”=“cafe”];);
out center;

Das Ziel wäre, das mit einem API Call hinzukriegen… Würde mich sehr über eine Idee freuen :slight_smile:

Viele Grüße,
Florian

Hier schon mal was lauffähiges: :wink:

http://overpass-turbo.eu/s/10Wt

Eine Möglichkeit auf die Schnelle ohne Optimierungen:

(
node"shop"=“supermarket”;
node"amenity"=“fastfood”;
node"amenity"=“bar”;
node"amenity"=“cafe”;
);

Edit: Dabei hab ich extra vor dem Senden aktualisiert … :wink:

g so ein Zufall, dass wir um die gleichen Zeit der Frage annehmen… 14:49Uhr schon gepostet wurde :laughing:

Haha, ich hatte um kurz nach 14Uhr schon fix was aufgeschrieben, aber mich dann gewundert dass eine völlig andere Anzahl am Ergebnis rauskommt.
Jetzt erst realisiert, dass du ja je Gebiet/BBox ja völlig andere Objekte abfragst ^^

Also eine gute Variante wäre erstmal die Gebiete zu definieren und dann mit einem Union halt die Objekte darin raussuchen:
http://overpass-turbo.eu/s/10WK

[out:json][timeout:25];

// Bereiche definieren, bzw. erstmal alle Objekte je Bereich speichern
node(53.60263523333334,9.891993379333329,53.60589356666667,9.895251712666663)  -> .elbgau;
node(53.55926553333333,9.963177765877191,53.562523866666666,9.966436099210526) -> .sternschanze;

// Union über die Ergebnisse
(
  // in der "elbgau"-Objekten nach den gewünschten suchen:
  node.elbgau["shop"="supermarket"];
  node.elbgau["amenity"="fast_food"];
  
  // in den "sternschanze"-Objekten nach den gewünschten suchen:
  node.sternschanze["amenity"~"^(bar|cafe)$"];
) -> .result;

// und Ergebnis ausspucken:
.result out geom;

Gruß,
asca

PS:
Was ich zunächst gemacht hatte, war halt:

[out:json][timeout:25];

(
  node(53.60263523333334,9.891993379333329,53.60589356666667,9.895251712666663);
  node(53.55926553333333,9.963177765877191,53.562523866666666,9.966436099210526);
) -> .searchNodes;

(
  node.searchNodes["shop"="supermarket"];
  node.searchNodes["amenity"~"^(fast_food|bar|cafe)$"];
) -> .result;

.result out geom;

Sprich in beiden Gebeiten, alles gesucht, da kam natürlich mehr raus. Ich schreibs nur mit dazu, weil’s so ein Weg ist, wie man zwei oder mehrere Suchgebiete als BBox zusammenfassen kann.
Im Grundegenommen definiert man aber nicht mehrere Suchgebiete, sondern sucht wertelos in allen Suchgebieten zunächst alle Nodes raus und sucht dann in diesen später genauer.
Eine/Mehrere BBox in einer Variable als Area zusammenzufassen geht meines Erachtens nach nicht.

Toll! Ganz großen Dank an euch! :slight_smile: