Overpass: Frage zur Differenzbildung
-
Overpass: Frage zur Differenzbildung · maxwellhill (Gast) · 02.10.2020 16:44 · [flux]
Hallo Community,
es geht darum, alle Golf-Fairways außerhalb von eines gemappten Golfplatzes (leisure=golf_course) zu finden. Overpass-Link
Nach Studium der Anleitung dachte ich, dass die folgende Abfrage funktionieren müsste:[out:json][timeout:800][bbox:{{bbox}}];
area[leisure=golf_course]; out␣body;
(way[golf=fairway];)->.fairways;
(.fairways;␣-␣way[golf=fairway](area););
out␣geom␣meta;
Allerdings werden weiterhin alle Fairways gefunden, die Differenzbildung funktioniert nicht! Warum?
- Re: Overpass: Frage zur Differenzbildung · GeorgFausB (Gast) · 02.10.2020 17:58 · [flux]
[out:json][timeout:800][bbox:{{bbox}}];
area[leisure=golf_course]; out␣body;
(way[golf=fairway](area);)->.golfcoursefairways;
(way[golf=fairway];)->.fairways;
(.fairways;␣-␣.golfcoursefairways;);
out␣geom␣meta;
(In den Overpass-Beispielen wird bei der Differenz immer eine Ergebnis-Variable genommen, statt die Abfrageformel direkt zu verwenden.)
Scheint zumindest gemäß diesem Testgebiet zu funktionieren ...
Du musst jetzt nur noch einen Weg außerhalb verifizieren. 😉 - Re: Overpass: Frage zur Differenzbildung · fx99 (Gast) · 02.10.2020 19:52 · [flux]
Nach einigem Probieren ergab sich folgende Overpass Abfrage http://overpass-turbo.eu/s/YDz
[out:json][timeout:60][bbox:{{bbox}}];
way[leisure=golf_course]; map_to_area␣->.b;
way(area.b)[golf=fairway]␣->␣.fairGolf; //␣.fairGolf␣out;.fairGolf␣>;out␣geom;
way[golf=fairway]␣->␣.fairAll; //.fairAll␣out;.fairAll␣>;out␣geom;
(way.fairAll;␣-way.fairGolf;); out;␣>␣;␣out␣geom;
im Gegensatz zu
area[leisure=golf_course];
das alle golf_course weltweit (siehe Areas: 28040 rechts unten im Fenster) findet, bewirkt
way[leisure=golf_course]; map_to_area␣->.b;
dass nur die golf_course im aktuellen Fenster verwendet werden.
Der Rest sucht erst die fairways innerhalb der golf_course area .b, dann alle fairways und bildet schließlich die
Differenz.Nachtrag: http://overpass-turbo.eu/s/YDA Abfrage mit ein paar Kommentaren!
- Re: Overpass: Frage zur Differenzbildung · axelr (Gast) · 02.10.2020 20:17 · [flux]
@fx99: damit fehlen die multipolygone leisure=golf_course
Zufällig entdeckt https://www.openstreetmap.org/relation/2212411 - Re: Overpass: Frage zur Differenzbildung · fx99 (Gast) · 02.10.2020 20:43 · [flux]
axelr wrote:
@fx99: damit fehlen die multipolygone leisure=golf_course
Zufällig entdeckt https://www.openstreetmap.org/relation/2212411Danke für den Hinweis.
Sollte einfach zu lösen sein:
//␣alle␣golf=fairway␣außerhalb␣leisure=golf_course [out:json][timeout:60][bbox:{{bbox}}];
//␣suche␣alle␣way/rel[leisure=golf_course]␣in␣bbox (way[leisure=golf_course]; rel[leisure=golf_course]; ); //␣convert␣to␣area map_to_area␣->.golfcourse;
//␣golf=fairway␣innerhalb␣leisure=golf_course way(area.golfcourse)[golf=fairway]␣->␣.fairGolf; //␣.fairGolf␣out;.fairGolf␣>;out␣geom;
//␣alle␣golf=fairway way[golf=fairway]␣->␣.fairAll; //.fairAll␣out;.fairAll␣>;out␣geom;
//␣Differenz␣und␣Ausgabe (way.fairAll;␣-way.fairGolf;); out;␣>␣;␣out␣geom;
- Re: Overpass: Frage zur Differenzbildung · Jo Cassel (Gast) · 03.10.2020 14:35 · [flux]
fx99 wrote:
[...]
im Gegensatz zu
area[leisure=golf_course];
das alle golf_course weltweit (siehe Areas: 28040 rechts unten im Fenster) findet, bewirkt
way[leisure=golf_course]; map_to_area␣->.b;
dass nur die golf_course im aktuellen Fenster verwendet werden.
[...]Hatte mich auch schon gewundert, dass die Originalabfrage 7MB liefert.
(Wobei sich mir aber die Frage stellt, welchen Sinn hier eine Fenster-reduzierte Abfrage machen soll, denn dort leisure=golf_course + golf=fairway anzuzeigen reicht ja eigentlich um Probleme zu finden bzw. zu sehen)Grundsätzlich aber eine geometrisch interessante Sache, die IMHO in
https://wiki.openstreetmap.org/wiki/Ove … by_Example
gehört - konnte dort zumindest nix vergleichbares finden. - Re: Overpass: Frage zur Differenzbildung · fx99 (Gast) · 03.10.2020 15:26 · [flux]
Jo Cassel wrote:
Grundsätzlich aber eine geometrisch interessante Sache, die IMHO in
https://wiki.openstreetmap.org/wiki/Ove … by_Example
gehört - konnte dort zumindest nix vergleichbares finden.Habs mal eingefügt:
https://wiki.openstreetmap.org/wiki/Ove … olf_course[bbox:{{bbox}}] wird aber ungewöhnlich angezeigt:
[bbox:(bbox={{{minlon}}},{{{minlat}}},{{{maxlon}}},{{{maxlat}}})]
- Re: Overpass: Frage zur Differenzbildung · Jo Cassel (Gast) · 03.10.2020 15:50 · [flux]
Das ging ja schnell ... Du willst wissen, warum sich das OSM-Wiki da so seltsam verhält?
Die Stelle finde ich passend, schau Dir mal dan Gesamtzusammenhang an
https://wiki.openstreetmap.org/w/index. … section=21
so wie ich das auf die Schnelle sehe, sind die Code-Beispiele in eine "{{OverpassTurboExample..."-Vorlage integriert.Die
Pub tour in Dublin ====
dagegen nicht - sollte nicht unbedingt Vorbild sein ;-)
Nachtrag:
nach Bearbeitungen, auch in der Überschrift, ist der Link:
https://wiki.openstreetmap.org/wiki/Ove … olf_course