[Talk-de] Overpass-Turbo
mmd
mmd.osm at gmail.com
Mo Mai 25 16:20:07 UTC 2015
Hallo Thorsten,
Am 25.05.2015 um 14:08 schrieb Thorsten Alge:
> Bei der Abfrage nach den selben Elementen in der Relation Galway erhalte
> ich aber alle Elemete. Auch jene, welche ein name:ga Tag haben. Ich
> verstehe allerdings nicht ganz warum.
>
> [out:json][timeout:25];
> area[name="Galway"];
> (
> node(area)["place"]["name"]-
> node(area)["name:ga"]
> );
> out body;
>> ;
> out skel qt;
>
> Kann mir Jemand einen Hinweis geben?
>
Gerne doch. Im Beispiel oben bezieht sich (area) jeweils auf das
Default-Inputset. Das ist einfach eine nicht näher benannten Menge, die
die gerade zu bearbeitenden Knoten, Wegen, Relationen sowie Areas enthält.
Ausgeschrieben würde das dann so aussehen:
node(area._)["place"]["name"]- (1)
node(area._)["name:ga"] (2)
Schauen wir uns für beide Zeilen einmal an, was jeweils an Elementen als
Eingabe berücksichtigt wird und wie die Ergebnismenge aussieht:
Zeile (1)
---------
Input: Area Galway, noch aus dem vorhergehenden area[name="Galway"];
Output: Nodes mit [place][name]. Die Area wird nicht übernommen!
(Output ist gleichzeitig Input für die nächste Zeile)
Zeile (2)
---------
Input: Nodes mit [place][name]
Output: Da in ._ keine Area enthalten ist, liefert (area._)
eine leere Menge zurück!
Beheben lässt sich das ganze, indem man die ursprüngliche Area in eine
Variable packt (hier ".a") und man sich später wieder darauf bezieht.
[out:json][timeout:25];
area[name="Galway"]->.a;
(
node(area.a)["place"]["name"]; -
node(area.a)["name:ga"];
);
out body;
> ;
out skel qt;
Ich hoffe, das war soweit einigermaßen verständlich. Wenn nicht: ich
habe das Thema schon einmal vorsorglich für die neue Overpass API
Learning Platform vorgeschlagen, die im Rahmen des GSoc 2015 entsteht :)
Gruß,
mmd
Mehr Informationen über die Mailingliste Talk-de