Hallo,
danke für die Anfrage. Das Beispiel kommt dann gleich mit auf die
Beispielseite.
> Wie bekomme ich mit einer Overpass-Abfrage die Punkte innerhalb eines
> Gebietes hin, also zum Beispiel alle Apotheken in Deutschland?
area[name="Deutschland"];node(area)[amenity=pharmacy];out;
Die Abfrage sollte deutlich unter 3 Minuten brauchen (hat beim Testen 30
Sekunden gebraucht), ansonsten bitte
[timeout:900];area[name="Deutschland"];node(area)[amenity=pharmacy];out;
> Wenn ich mit und eingebetteter arbeite, versucht
> Overpass erst einmal, alle Punkte innerhalb des Gebiets zu kriegen,
> und bricht dann irgendwann ab. Gibt's keine Möglichkeit, die
> Und-Verknüpfung anders zu formulieren als über Schachteln?
Die Und-Verknüpfung wird üblicherweise mit mehreren Clauses in der gleichen
Query realisiert. Hier sind dies
(area)
und
[amenity=pharmacy]
Bei der Ausführung des Query-Statements werden diese dann verschachtelt,
ähnlich dem Query-Plan einer SQL-Datenbank, so dass nicht alle Nodes geladen
werden müssen. Das Grundprinzip ist in
http://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_QL#Clauses
erläutert (leider bisher nur auf Englisch verfügbar).
Etwas anders sieht es im Spezialfall einer "area"-Clause für Ways oder
Relations aus. Das ist leider noch nicht implementiert (es fehlt der
Schnittest Ways mit Area-Grenzen), so dass hier die umständliche Abfrage
unvermeidlich ist. Dafür muss ich leider auf später vertrösten, die
Funktionalität steht aber auf der ToDo-Liste.
Viele Grüße,
Roland
___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de