[Talk-de] Overpass-Anfragen: großes Gebiet, nur einige Punkte

2012-12-27 Diskussionsfäden Johannes Huesing
Wie bekomme ich mit einer Overpass-Abfrage die Punkte innerhalb eines
Gebietes hin, also zum Beispiel alle Apotheken in Deutschland?

Wenn ich mit area-query und eingebetteter query 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?

-- 
Johannes Hüsing   There is something fascinating about science. 
  One gets such wholesale returns of conjecture 
mailto:johan...@huesing.name  from such a trifling investment of fact.  
  
http://derwisch.wikidot.com (Mark Twain, Life on the Mississippi)

___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de


Re: [Talk-de] Overpass-Anfragen: großes Gebiet, nur einige Punkte

2012-12-27 Diskussionsfäden Roland Olbricht
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 area-query und eingebetteter query 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