DE:Relation:multipolygon
![]() |
![]() |
Beschreibung |
---|
Die Relation Multipolygon wird zur Darstellung von komplexen Flächen verwendet. Das sind insbesondere Flächen mit 'Löchern', großen Umfängen oder geographisch getrennt liegenden Flächenstücken. ![]() ![]() |
Gruppe: Eigenschaften |
Mitglieder |
|
Status: de facto |
Werkzeuge für dieses Attribut |
Relationen vom Typ Multipolygon werden zur Darstellung von komplexen Flächen verwendet.
Einfache Flächen werden durch einen geschlossenen Linienzug, versehen mit einem Attribut, das eine Fläche nahelegt, dargestellt. Zum Beispiel wird ein geschlossener Linienzug mit dem Attribut "landuse=forest" als Fläche interpretiert, nicht dagegen ein geschlossener Linienzug mit dem Attribut "junction=roundabout". Dies ist bei einfachen Flächen möglich, deren Umriss aus einer einzigen Linie besteht und keine Löcher aufweist.
Für alle Flächen, die komplexer sind, ist die Relation Multipolygon erforderlich. Zum Beispiel wenn die Fläche Löcher hat, oder bei extrem großen Flächen.
Es ist empfehlenswert, immer die einfachste mögliche Darstellung zu wählen. Einfache Flächen können von allen Editoren dargestellt werden und sind für alle Kartierer und Anwender der Daten am leichtesten verständlich und veränderbar.
- Für einfache Flächen empfehlen sich einfache Polygone (geschlossene Linienzüge).
- Für Flächen mit Löchern empfiehlt sich eine Multipolygon-Relation, die nur einfache Polygone (geschlossene Linienzüge)
enthält.
- Für sehr komplexe Objekte oder Objekte, die sich über ein sehr großes Gebiet erstrecken, ist eine Multipolygon-Relation wie hier beschrieben notwendig.
Eine Relation Multipolygon kann eine beliebige Anzahl von äußeren (Umriss) und eine beliebige Anzahl von inneren Wegen (Löcher) aufweisen, und diese müssen gültige Ringe bilden. Es wird empfohlen, die äußeren und inneren Umrisse jeweils als geschlossene Linienzüge zu zeichnen!
Gültige Ringe sind gegeben, entweder durch einen geschlossenen Weg oder durch mehrere Wege
, die aneinandergekettet das Gleiche ergäben, also ebenfalls einen geschlossenen Weg
.
Attribute
Schlüssel | Wert | Erläuterung |
---|---|---|
type | multipolygon | Für die Mitglieder der Relation gelten flächenbildende Regeln. |
Mitglieder
Alle offenen Linienzüge sind nach Zusammensetzung der Fläche jeweils Teil genau eines äußeren oder inneren Ringes. Bleiben offene Linienzüge übrig, oder wurde ein Linienzug zweimal verwendet, ist die gesamte Relation kein gültiges Multipolygon.
Jedes Multipolygon muss mindestens einen äußeren Ring definieren. Dieser ist in der Mitgliederliste angegeben, entweder durch einen geschlossenen Linienzug oder durch mehrere offene Linienzüge, die zusammengesetzt einen geschlossenen Linienzug ergeben.
Verwendung
Multipolygone werden folgendermaßen verwendet:
- Attribute, 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 Linienzüge erhalten nur Attribute, wenn sie etwas Eigenes darstellen. Zum Beispiel kann die Außengrenze eines Waldes und eines Naturschutzgebiets identisch sein, wohingegen die Lichtung oder der See im Wald nicht zum Wald gehört, wohl aber zum Naturschutzgebiet. Hier wird das Multipolygon als Wald beschrieben und die äußere Fläche als Naturschutzgebiet.
- Wenn der innere Linienzug etwas Eigenes ist, so kann dieser mit entsprechenden Attributen versehen werden, zum Beispiel das "Loch" in einem Wald, wenn es sich um einen See handelt.
- Ansonsten erhalten die inneren Linienzüge keine Attribute.
- Die Richtung der Linienzüge 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 überschneidenden Ringen. #Sich berührende innere Ringe sind jedoch gültige Multipolygon-Relationen.
Beispiele
Ein Außen- und ein Innenring - jeweils geschlossene Linienzüge
Ein Außen- und zwei Innenringe
Mehrere Linienzüge bilden einen Ring
Zwei getrennte äußere Ringe
Getrennte äußere Ringe und innerer Ring aus mehreren Linienzügen
Komplexe Kombination aller Möglichkeiten
Insel in einem Loch
Sich berührende innere Ringe
Einige Kartografen zeichnen "Multipolygone" mit sich berührenden inneren oder äußeren Ringen. Laut Abschnitt #Verwendung sind dies gültige Multipolygon-Relationen, auch wenn sie nicht der OGC-Norm für Multipolygone entsprechen. OSM folgt dieser Norm nicht, JOSM informiert Multipolygon-Ringe teilen sich Punkte. <!-- zu Bild 8 mit innliegenden Objekte -->
<relation id="1">
<!-- Nicht OGC-konform, aber valide OSM-Multipolygon-Relation -->
<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>
<way id="2">
<tag k="landuse" v="farmland" />
<nd ref="5"/>
<nd ref="2"/>
<nd ref="3"/>
<nd ref="6"/>
<nd ref="5"/>
</way>
<way id="3">
<tag k="natural" v="water" />
<tag k="water" v="lake" />
<nd ref="1"/>
<nd ref="2"/>
<nd ref="3"/>
<nd ref="4"/>
<nd ref="1"/>
</way>
Hinweis: Da Multipolygon-Daten vom OSM-Server derzeit nicht darauf geprüft werden, ob diese auch gültige Multipolygon-Züge definieren (siehe #Verwendung), können ungültige Daten eingetragen werden. Derzeit prüft er nur, ob Multipolygon-Relationen gültige Relationen sind. |
![]() Das Beispiel zeigt einen Wald (grau) mit einer Lichtung, die je zur Hälfte See (blau) und Farmland (grün) ist. Der Kartograf zeichnet alle Ränder der drei Objekte als je einen geschlossenen Weg. Da sich die Kanten zwischen See und Farmland berühren, führt die Aufnahme beider Ringe in die Relation als inner zu einem gemäß OGC-Norm ungültigen Multipolygon. Das Problem kann entweder durch das Zeichnen eines weiteren überlappenden, geschlossenen Weges um See und Farmland behoben werden (der dann als innerer Ring benutzt wird), oder mittels der in Bild 8a gezeigten Methode. |
<!-- zu Bild 8a mit innliegenden Objekten -->
<relation id="9">
<tag k="type" v="multipolygon" />
<tag k="landuse" v="forest" />
<member type="way" id="1" role="outer" />
<member type="way" id="2" role="inner" />
<member type="way" id="3" role="inner" />
</relation>
<relation id="78">
<tag k="type" v="multipolygon" />
<tag k="landuse" v="farmland" />
<member type="way" id="2" role="outer" />
<member type="way" id="4" role="outer" />
</relation>
<relation id="33">
<tag k="type" v="multipolygon" />
<tag k="natural" v="water" />
<tag k="water" v="lake" />
<member type="way" id="3" role="outer" />
<member type="way" id="4" role="outer" />
</relation>
|
![]() |
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 noch nicht vorhanden.
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 dies auch nicht alle Editoren oder Renderer. |
Bild noch nicht vorhanden. |
Weitere Beispiele
Weitere Beispiele finden sich auf Relation:multipolygon/Examples, mit dem Hinweis, Multipolygone nur zu verwenden, wenn es keine andere Möglichkeit gibt. Die Segmentierung von Straßen (highway=*) zur Ringbildung soll nach Möglichkeit vermieden werden, denn dies kompliziert für einige Mapper Änderungen der Straßenwerte. Eine Alternative ist, überlappende Wege auf den für die Flächenbildung relevanten Straßenabschnitten/-segmenten zu zeichnen, die sonst durch Teilungsoperationen herausgelöst würden (Tastaturkürzel: Taste-F (follow/verfolgen) nutzen). Gleiches gilt für ähnlich linienartig gemappte Objekte, wenn deren Segmentierung vermieden werden soll. Allerdings komplizieren auch überlappende Wegobjekte für einige Mapper Änderungen an OSM-Daten.
Attribute (Tags)
- Es wird empfohlen, alle die Fläche beschreibenden Attribute der Relation und nicht den Linienzügen zuzuordnen. Dies wird in vielen Fällen zu Linienzügen ohne jegliche Attribute führen.
- Um kompatibel zu bleiben gilt (nur für Software-Entwickler):
- Der Zeichenstil richtet sich nach der Relation.
- Wenn die Relation keine Attribute hat, wird der Zeichenstil der äußeren Linienzüge verwendet.
- Wenn die Zeichenstile der äußeren Linienzüge nicht zusammenpassen oder kein Stil gefunden wird, so ist dies ein Fehler.
- Attribute an inneren Linienzügen ergeben den Zeichenstil für die inneren Ringe. Sind Zeichenstil für innere und äußere Ringe identisch (alte Methode) sollte der Zeichenstil für die inneren Ringe als nicht angegeben betrachtet werden.
Attribute im Detail
Dieser Abschnitt ist für Software-Entwickler. Kartierer sollten die Attribute immer an die Relation und nicht an die äußeren Ringe schreiben!
Für die verschiedenen Fälle und deren Probleme werden folgende Lösungen vorgeschlagen:
- Es gibt mehr als einen äußeren Linienzug:
- Die Relation ist mit Attributen versehen:
- Es gelten die Attribute der Relation. Attribute der Linienzüge werden ignoriert.
- Die Relation hat keine Attribute, aber ein oder mehrere äußere Linienzüge haben identische, gültige Attribute:
- Die Attribute gelten für den kompletten äußeren Linienzug.
- Die Relation hat keine Attribute, und äußere Linienzüge haben unterschiedliche Attribute:
- Dies kann beliebig interpretiert werden.
- Es gibt mehr als einen inneren Linienzug:
- Ein geschlossener Linienzug, der aus mehreren Segmenten bestehen kann, hat keine Attribute aber ein anderer hat Attribute:
- Der Linienzug ohne Attribute ist ein Loch. Die Attribute des anderen Linienzugs gelten für diesen.
- Verschiedene geschlossene Linienzüge mit verschiedenen Attributen:
- Für jedes Loch gelten seine eigenen Attribute.
- Ein geschlossener Linienzug, der aus mehreren Segmenten besteht, wobei die Segmente verschiedene Attribute haben:
- Für Segmente ohne Attribute gelten die Attribute der anderen Segmente. Falls die Segmente verschiedene Attribute haben, so kann dies beliebig interpretiert werden.
Rendern
- JOSM ab Version 1203 kann komplexe Multipolygone verarbeiten.
- de:Osmarender (T@H) unterstützt komplexe Multipolygone. (nicht mehr gepflegt)
- 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.
Wie erstellen
JOSM
Beispielhaft, einen Wald mit Feuchtgebiet und Tümpel mittendrin erfassen - inklusive Insel mit Loch und einander berührende innere Ringe:
-
Luftbild der Szene
-
Umrisse des Tümpels zeichnen und taggen
-
Umrisse des umgebenden Feuchtgebiets zeichnen, nicht taggen
-
Die beiden erstellte Flächen auswählen
-
Strg-B oder aus dem Menü/Werkzeuge/Multipolygon erstellen wählen und als Feuchtgebiet taggen
-
Umrisse des zweiten Feuchtgebietes zeichnen und als solches taggen
-
Die beiden Feuchtgebiete und den umgebenden Wald markieren
-
Diese gleichfalls zu einem Multipolygon wandeln und als solches taggen
-
Renderer müssen nicht raten, was gemeint ist
Hinweis: Sollten bestehende Kanten genutzt worden sein, dann behält der Editor die Tags auf den umgreifenden Wegen oder Flächen bei. Diese gehören entfernt. Der Editor warnt vor dem Hochladen mit einem Hinweis darauf.
Werkzeuge
- JOSM und Multipolygone
- Potlatch und Multipolygone
- Merkaartor und Relationen
- Relation Check
- Workshop: Relationen-Editor von JOSM
Mögliche technische Erfassungsunstimmigkeit
![]() |
Eine mögliche technische Erfassungsunstimmigkeit besteht dann, wenn das Merkmal type=multipolygon an Knotenpunkten |
Siehe auch
- Zur Zukunft von Flächen (engl.) mit alternativen Vorschlägen zum Multipolygon
- Area (de), Area (en)