x

Re: Camping-Seite Version 2


Geschrieben von tyr_asd (Gast) am 18. Dezember 2012 11:11:54: [flux]

Als Antwort auf: Camping-Seite Version 2 geschrieben von chrisMein (Gast) am 10. Dezember 2012 15:13:

chrisMein wrote:

die Abfrage hatte ich auch schon probiert.
Ich sehe in dem XML aber keine Verbindung zwischen den Areas und den Relations, Ways und Nodes. Wie bekomme ich raus zu welcher Area z.B. eine der ausgegebenen Relations gehört?

Um das Ergebnis etwas sortiert zu erhalten, kannst du mit foreach arbeiten:

<osm-script␣timeout="800"␣output="xml">
<query␣type="area"␣into="areas">
<has-kv␣k="tourism"␣v="camp_site"/>
</query>
<foreach␣from="areas"␣into="a">
<print␣from="a"/>
<union>
<area-query␣from="a"/>
<recurse␣type="up"/>
</union>
<print␣order="quadtile"/>
</foreach>
</osm-script>

So erhältst du immer ein <area> gefolgt von allen Elementen in der jeweiligen Area.

Wie du herausfindest, welche Relation zur Area gehört? Am Besten, indem alle in Frage kommenden Relationen nochmals nach den ursprünglichen Kriterien durchsucht. (Im Prinzip ginge es auch einfach über die Area-ID (siehe hier). Allerdings muss die direkte Zuordnung nicht immer genau so bleiben.)

<osm-script␣timeout="800"␣output="xml">
<query␣type="area"␣into="areas">
<has-kv␣k="tourism"␣v="camp_site"/>
</query>
<foreach␣from="areas"␣into="a">
<print␣from="a"/>
<area-query␣from="a"/>
<recurse␣type="up"␣into="b"/>
<query␣type="relation">
<item␣set="b"/>
<has-kv␣k="tourism"␣v="camp_site"/>
</query>
<print/>
<query␣type="way">
<item␣set="b"/>
<has-kv␣k="tourism"␣v="camp_site"/>
</query>
<print/>
</foreach>
</osm-script>

Wobei ich denke, dass es für dich wahrscheinlich einfacher sein wird, anstatt über Overpass-Areas direkt die jeweiligen Multipolygon-Relationen zu suchen.