x

Re: [OverpassAPI/JavaScript] Relationsmitglieder aus JSON verarbeiten


Geschrieben von tyr_asd (Gast) am 27. Januar 2013 11:07:20: [flux]

Als Antwort auf: [OverpassAPI/JavaScript] Relationsmitglieder aus JSON verarbeiten geschrieben von rayquaza (Gast) am 27. Januar 2013 02:24:

rayquaza wrote:

members[j].ref und ..elements[j].id passen nicht zusammen. Wie ist das überhaupt gedacht?

Doch doch, genau so ist es gedacht, und genau so funktioniert es auch. Ich kenne jetzt nicht genau deine Query, aber was du wahrscheinlich nicht bedacht hast, ist, dass wenn du eine <query type="relation"> und ein <recurse type="relation-relation"/> über eine <union> zusammenfasst, das Reihenfolge der Elemente i.d.R. durcheinander kommt. D.h., dass relJSON[0].elements[0] nicht der als Erstes über <query type="relation"> selektierten Hauptrelation entsprechen wird. Um das aber zu erreichen (ohne zwei getrennte API-Anfragen stellen zu müssen) verwendet man am Besten zwei <print> Statements (siehe Beispiel unten). Zusätzlich musst du noch bedenken, dass die Hauptrelation ja auch noch ways oder nodes als members haben kann (die du ja nicht geladen hast). Dagegen hilft eine zusätzliche Abfrage auf relJSON[0].elements[0].members[j].type == "relation".


<osm-script␣output="json">
<id-query␣type="relation"␣ref="2171699"␣/>
<print␣mode="body"/>
<recurse␣type="relation-relation"/>
<print␣mode="body"␣order="id"/>
</osm-script>