x

Multipolygone Relations


Geschrieben von marvel (Gast) am 23. Januar 2011 05:30:27: [flux]

Hallo liebe Community,
ich komme einfach an einem bestimmten Punkt nicht weiter. Es geht um die Multipolygonen Relationen die mir sehr zu schaffen machen. Ich habe ein Programm entwickelt welches gezielt Objekte aus einer OSM File entnimmt. Ich entnehme z.B. alle natural/water und natural/land Objekte und speichere diese dann ab. Solche Objekte können auch durch eine Relation näher definiert werden, so kann das Wasser als outer role definiert sein und ein Ausschnitt/Loch/Insel als inner role. Leider habe ich feststellen müssen das sich nicht jeder an diese Konvention hält und jeder sein eigenens Süppchen kocht.

Bsp.:

Relation:
<relation id="1">
<tag k="type" v="multipolygon" />
<member type="way" id="1" role="outer" />
<member type="way" id="2" role="inner" />
</relation>

Way:

<way id="1" version="2" changeset="180693" uid="1852" user="Sven Anders" timestamp="2008-04-18T17:03:11Z">
<nd ref="15727860"/>
<nd ref="15727861"/>
<nd ref="15727862"/>
<nd ref="15727863"/>
<nd ref="15727856"/>
<tag k="natural" v="water" />
</way>

<way id="2" version="2" changeset="180693" uid="1852" user="Sven Anders" timestamp="2008-04-18T17:03:11Z">
<nd ref="15727859"/>
<nd ref="15728163"/>
<nd ref="15727860"/>
<tag k="natural" v="land" />
</way>

bei diesem bsp ist es einfach die objekte zu ermitteln da sie ordnungsgemäß einem Typ(water,land) zugeordnet sind und die Relation diese verknüpft. Leider ist das auch nur ein optimales Beispiel, es gibt anscheinend so viele unterschiedliche Möglichkeiten die Relationen zu definieren das ich einfach nicht mehr durchblicke. So habe ich Relationen gefunden die direkt einem Typ zugeordnet sind, also nicht erst durch die referenzierten Ways näher deklariert werden oder Relationen deren referenzierte Ways keinem Typ zugeordnet sind, also namenlos sind etc. Ich würde mich sehr freuen wenn wir das Ganze einmal durchsprechen können denn so komme ich einfach nicht weiter. Danke im vorraus.

MfG
Marvel


Antworten: