[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