From OpenStreetMap Wiki
multipolygon
|
|
|
|
| Beschreibung
|
| Die Multipolygon Relation wird zur Darstellung von allen möglichen Flächen verwendet. Die Multipolygon Relation ist OpenStreetMaps Datentyp für Flächen.
|
| Gruppe
|
| Properties
|
| Mitglieder Hilfe
|
-
- outer
-
- inner
|
| Tagwatch Hilfe
|
|
|
Relationen vom Typ
Multipolygon werden zur Darstellung von allen möglichen Flächen verwendet. Die
Multipolygon Relation ist OpenStreetMaps Datentyp für Flächen.
Der Einfachheit halber können Flächen auch durch einen geschlossenen Weg versehen mit einem Tag, das eine Fläche nahelegt, dargestellt werden. Zum Beispiel wird ein geschlossener Weg mit dem Tag "landuse=forest" als Fläche interpretiert, nicht dagegen ein geschlossener Weg mit dem Tag "junction=roundabout". Dies ist jedoch nur bei einfachen Flächen möglich, deren Umriß aus einem einzigen Weg besteht und keine Löcher aufweist.
Für alle Flächen, die komplexer sind, ist die Multipolygon Relation erforderlich. Zum Beispiel wenn der Umriß aus mehreren Wegen zusammengesetzt ist, wenn die Fläche aus mehreren getrennten Wegen besteht oder wenn die Fläche Löcher hat. Für administrative Grenzen sollte ebenfalls type=multipolygon benutzt werden (und nicht type=boundary). Eine Grenzrelation kann eindeutig durch die Eigenschaft boundary=* identifiziert werden.
Eine Multipolygon Relation kann eine beliebige Anzahl von äußeren (Umriß) und eine beliebige Anzahl von inneren Wegen (Löcher) aufweisen und diese müssen gültige Ringe bilden.
Tags
| Schlüssel
|
Wert
|
Erläuterung
|
| type
|
multipolygon
|
Für die Mitglieder der Relation gelten flächenbildende Regeln.
|
Mitglieder
| Weg oder Knoten
|
Rolle
|
Anzahl
|
Erläuterung
|
|
outer
|
eins oder mehr
|
Die Wege, die den äußeren Ring oder die äußeren Ringe der Fläche bilden.
|
|
inner
|
null oder mehr
|
Die Wege, die den inneren Ring oder die inneren Ringe der Fläche bilden.
|
|
keine
|
|
In den meisten Fällen kann eine Relation auch ohne Angabe der Rollen "innen" und "außen" richtig interpretiert werden. Es wird dennoch empfohlen, die Rollen anzugeben, um anderen Kartografen das Verständnis zu erleichtern.
|
Verwendung
Multipolygone werden folgendermaßen verwendet:
- Tags, die das Multipolygon beschreiben und somit für die gesamte Fläche abzüglich der Inner-Bereiche gelten sollen (zum Beispiel "landuse=forest"), gehören zur Relation. Die äußeren Wege erhalten nur Tags, wenn sie etwas Eigenes darstellen. Ist zum Beispiel ein Wald durch vier Straßen begrenzt, so erhalten die vier Straßen das Tag "highway" und sind zugleich äußere Mitglieder der Relation "Wald".
- Ist der Außenring ein einziger geschlossener Weg, der nur die Fläche beschreibt, könnte er mit Tags versehen werden und die Relation ohne Tags bleiben. Bei mehr als einem Außenring macht dies keinen Sinn, siehe Beispiel #Getrennte äußere Ringe und folgende. Um die Konsistenz zu wahren, sollte stets die Relation mit den Tags für das Multipolygon versehen werden.
- Wenn der innere Weg etwas Eigenes ist, so kann dieser mit entsprechenden Tags versehen werden, zum Beispiel das "Loch" in einem Wald, wenn es ein See ist.
- Ansonsten erhalten die inneren Wege keine Tags.
- Die Richtung der Wege spielt keine Rolle.
- Die Reihenfolge der Mitglieder der Relation spielt keine Rolle. Sie kann jedoch für den Leser hilfreich sein.
- Die Relation Multipolygon ermöglicht generell die Erstellung von Multipolygonen die dem "OGC Simple Feature Standard" entsprechen. Nach dieser Norm ungültige Multipolygone sind auch ungültige Multipolygon Relationen, zum Beispiel Polygone mit sich schneidenden Ringen. # Sich berührende innere Ringe sind jedoch gültige Multipolygon Relationen.
Beispiele
Ein Außen- und ein Innenring - jeweils vollständige Wege
Beim alten, vielfach genutzten Typ der Relation Multipolygon war nur ein Außenring und mehrere Innenringe gestattet und diese durften jeweils nur aus geschlossenen Wegen bestehen. Dieser Polygontyp war nicht ein richtiges mehrfaches Polygon sondern eher ein mehrfacher Weg. Er wird weiterhin unterstützt. Die Regeln sind jedoch gelockert, so dass dies lediglich ein Spezialfall der mehr allgemeinen Relation Multipolygon ist.
<relation id="1">
<tag k="type" v="multipolygon" />
<member type="way" id="1" role="outer" />
<member type="way" id="2" role="inner" />
</relation>
|
Bild 1: Ein Außen- und ein Innenring
|
Ein Außen- und zwei Innenringe
<relation id="1">
<tag k="type" v="multipolygon" />
<member type="way" id="1" role="outer" />
<member type="way" id="2" role="inner" />
<member type="way" id="3" role="inner" />
</relation>
|
Bild 2: Ein Außen- und zwei Innenringe
|
Mehrere Wege bilden einen Ring
Beim komplexen Multipolygon kann jeder Außen- oder Innenring aus mehr als einem Weg bestehen. Dies ist für Multipolygone sinnvoll, die Flächen darstellen, welche nicht von einem einzigen Weg umschlossen werden können. Dies ist z.B. bei Grenz-Polygonen der Fall.
<relation id="1">
<tag k="type" v="multipolygon" />
<member type="way" id="1" role="outer" />
<member type="way" id="2" role="outer" />
<member type="way" id="3" role="inner" />
</relation>
|
Bild 3: Mehrere Wege bilden einen Ring
|
Zwei getrennte äußere Ringe
Bei der komplexen Relation Multipolygon ist eine beliebige Anzahl äußerer Ringe gestattet. Sie ist somit ein echtes Multipolygon.
<relation id="1">
<tag k="type" v="multipolygon" />
<member type="way" id="1" role="outer" />
<member type="way" id="2" role="outer" />
</relation>
|
Bild 4: Zwei getrennte äußere Ringe
|
Getrennte äußere Ringe und innerer Ring aus mehreren Wegen
Auch innere Ringe können aus mehreren Wegen bestehen.
<relation id="1">
<tag k="type" v="multipolygon" />
<member type="way" id="1" role="outer" />
<member type="way" id="2" role="inner" />
<member type="way" id="3" role="inner" />
<member type="way" id="4" role="outer" />
<member type="way" id="5" role="inner" />
</relation>
|
Bild 5: Getrennte äußere Ringe, innere Ringe aus ein oder mehreren Wegen
|
Komplexe Kombination aller Möglichkeiten
Dieses Beispiel zeigt die komplexe Kombination aller Möglichkeiten: drei äußere Ringe, einer mit einem und einer mit drei inneren Ringen, wobei viele Ringe aus mehreren Wegen bestehen.
<relation id="1">
<tag k="type" v="multipolygon" />
<member type="way" id="1" role="outer" />
<member type="way" id="2" role="outer" />
<member type="way" id="3" role="outer" />
<member type="way" id="4" role="outer" />
<member type="way" id="5" role="inner" />
<member type="way" id="6" role="inner" />
<member type="way" id="7" role="inner" />
<member type="way" id="8" role="inner" />
<member type="way" id="9" role="inner" />
<member type="way" id="10" role="inner" />
<member type="way" id="11" role="inner" />
<member type="way" id="12" role="outer" />
<member type="way" id="13" role="outer" />
<member type="way" id="14" role="outer" />
<member type="way" id="15" role="outer" />
<member type="way" id="16" role="inner" />
<member type="way" id="17" role="inner" />
<member type="way" id="18" role="inner" />
<member type="way" id="19" role="inner" />
<member type="way" id="20" role="outer" />
</relation>
|
Bild 6: Komplexe Kombination aller Möglichkeiten
|
Insel in einem Loch
Dadurch dass mehrere äußere Ringe gestattet sind können auf einfache Weise "Inseln" in einem Loch dargestellt werden.
<relation id="1">
<tag k="type" v="multipolygon" />
<member type="way" id="1" role="outer" />
<member type="way" id="2" role="inner" />
<member type="way" id="3" role="outer" />
</relation>
Eine solche Konstellation erforderte früher verschiedene Multipolygon Relationen, eine mit "way 1" als äußerem und "way 2" als innerem Ring und eine mit "way 2" als äußerem und "way 3" als innerem Ring. Solche Kaskaden sind nach wie vor zu empfehlen wenn die "Insel" in der Mitte etwas anderes als die äußere Fläche ist. Sind beide das selbe so genügt es ein Loch in einem Loch zu machen.
|
Bild 7: Insel in einem Loch
|
Sich berührende innere Ringe
Einige Kartografen benutzen die aktuelle "Multipolygon" Relation für sich berührende innere oder äußere Ringe.
<relation id="1">
<tag k="type" v="multipolygon" />
<member type="way" id="1" role="outer" />
<member type="way" id="2" role="inner" />
<member type="way" id="3" role="inner" />
</relation>
Das Beispiel zeigt einen Wald mit einer Lichtung, die je zur Hälfte See und Farmland ist. Der Kartograf zeichnet einfach nur die Ränder der drei Objekte Wald, See und Farmland.
In "OGC Simple Feature Standard" ist diese einfache Möglichkeit nicht vorgesehen, dort sind sich berührende innere Ringe nicht erlaubt. Stattdessen wäre zunächst in den Wald ein Loch zu zeichnen und in dieses dann die einzelnen Polygone für See und Farmland.
|
Bild 8: Sich berührende innere Ringe
|
Loch in Loch (in Loch ...)
Es kann Löcher in den Löchern eines Multipolygons geben. Zum Beispiel ein Wald mit einer Lichtung und einer Baumgruppe auf der Lichtung.
Beispiel ausstehend.
Gemäß "OGC Simple Feature Standard" wird dies durch abwechselnde äußere und innere Ringe dargestellt. Im Beispiel Wald sind der Waldrand und die Baumgruppe äußere Ringe und die Lichtung innerer Ring. Das kann beliebig so weiter gehen, sollte aber zum Wohle anderer Kartografen begrenzt bleiben. Eventuell unterstützen auch nicht alle Editoren oder Renderer dies.
| Bild ausstehend.
|
Beispiele
Beispiele finden sich auf
DE:Relation:multipolygon/Examples
und
DE:Multipolygon_Examples.
Tagging
- Es wird empfohlen, alle die Fläche beschreibende Tags der Relation und nicht den Wegen zuzuordnen. Dies wird in vielen Fällen zu Wegen ohne jegliche Tags führen.
- Um kompatibel zu bleiben gilt:
- Der Zeichenstil richtet sich nach der Relation.
- Wenn die Relation keine Tags hat wird der Zeichenstil der äußeren Wege verwendet.
- Wenn die Zeichenstile der äußeren Wege nicht zusammenpassen oder kein Stil gefunden wird so ist dies ein Fehler.
- Tags an inneren Wegen ergeben den Zeichenstil für die inneren Ringe. Sind Zeichenstil für innere und äußere Ringe identisch (alte Methode) sollte der Zeichenstill für die inneren Ringe als nicht angegeben betrachtet werden.
Tagging im Detail
Für die verschiedenen Fälle und deren Probleme werden folgende Lösungen vorgeschlagen:
- Es gibt mehr als einen äußeren Weg:
- Die Relation ist mit Tags versehen:
- Es gelten die Tags der Relation. Tags der Wege werden ignoriert.
- Die Relation hat keine Tags, aber ein oder mehrere äußere Wege haben identische, gültige Tags:
- Die Tags gelten für den kompletten äußeren Weg.
- Die Relation hat keine Tags und äußere Wege haben unterschiedliche Tags:
- Dies kann beliebig interpretiert werden.
- Es gibt mehr als einen inneren Weg:
- Ein geschlossener Weg, der aus mehreren Segmenten bestehen kann, hat keine Tags aber ein anderer hat Tags:
- Der Weg ohne Tags ist ein Loch. Die Tags des anderen Wegs gelten für diesen.
- Verschiedene geschlossene Wege mit verschiedenen Tags:
- Für jedes Loch gelten seine eigenen Tags.
- Ein geschlossener Weg, der aus mehreren Segmenten besteht, wobei die Segmente verschiedene Tags haben:
- Für Segmente ohne Tags gelten die Tags der anderen Segmente. Falls die Segmente verschiedene Tags haben, so kann dies beliebig interpretiert werden.
Rendering
- JOSM ab Version 1203 kann komplexe Multipolygone verarbeiten.
- Osmarender (T@H) unterstützt komplexe Multipolygone.
- Die für OpenStreetMap verwendete Mapnik Konfiguration unterstützt komplexe Multipolygone weitgehend.
- mkgmap ab Version 1497 unterstützt komplexe Multipolygone voll.
- Es gibt einen empfohlenen Algorithmus zur Verarbeitung von Multipolygonen.
Werkzeuge