Re: Fragen zu Overpass Turbo
Geschrieben von mmd (Gast) am 20. Mai 2017 15:18:21: [flux]
Als Antwort auf:
Fragen zu Overpass Turbo
geschrieben von
ethylisocyanat
(Gast)
am
20. Mai 2017 14:21:
ethylisocyanat wrote:
Könnte mir bitte jemand den Syntax von (._;>;); erklären? Was macht das genau?
Siehe http://wiki.openstreetmap.org/wiki/Over … ss_QL#Item:
Es nimmt also das Ergebnis der vorhergehenden Query (also die landuse Ways), ermittelt alle Knoten dazu und stellt das ganze wieder zurück in die unbenamste Menge "._" zurück.
Dieses "._" kann man sich einfach als eine Art Variable vorstellen, die Mengen enthält. Normalweise werden sie in der Query nicht mit ausgeschrieben, weil sie implizit gelten. Sonst würde das so aussehen:
way(area.searchArea)[landuse=landfill]␣->␣._;␣␣␣␣//␣explizit␣Ablage␣des␣Ergebnisses␣in␣._
(._;>;)␣->␣._␣;␣␣␣␣␣␣//␣Nimm␣._,␣ermittle␣Nodes␣dazu,␣und␣merke␣dir␣das␣ganze␣wieder␣in␣._ ._␣out␣meta;␣␣␣␣␣␣␣␣␣//␣out␣meta␣gibt␣Ergebnis␣der␣Menge␣._␣aus
In Pseudocode:
var␣menge1␣=␣way(area.searchArea)[landuse=landfill];
var␣menge2␣=␣menge1␣+␣menge1.mach_Knoten_daraus();
print␣menge2;
Das Recurse Down ">" kann für Relationen noch mehr, das habe ich der Einfachheit halber aber hier weggelassen.
Eselsbrücke: wenn man das ">" rein bildlich betrachtet, macht man aus etwas größerem (links) etwas kleines (rechts). Die Reihenfolge groß nach klein ist bei OSM: Relation -----> Weg -----> Knoten.