DE:Area

From OpenStreetMap Wiki
Jump to navigation Jump to search
Mf area.svg
Eine Fußgängerfläche in Verbindung mit dem Straßennetz

Die Area, also eine Fläche oder ein Gebiet (oder ausgefülltes Polygon) kann auf zwei Arten definiert werden:

  • als geschlossener Weg (Linienzug) geschlosser Linienzug gemeinsam mit geeigneten anderen Eigenschaften oder
  • als Multipolygon-Relation, das eine Fläche auf Basis mehrerer Linien definiert.

Hinweis: Flächen sind keine eigenständigen Datenelemente. Einige geschlossene Linien (beispielsweise landuse=*) werden automatisch als Fläche interpretiert, andere (highway=footway) werden nur als Rundweg interpretiert, solange area=yes fehlt.

Wie kartieren

  • Bei kleineren, einfachen Flächen zeichnet man einen geschlossenen Linienzug und versieht ihn mit geeigneten Eigenschaften. Wenn durch die Eigenschaft nicht automatisch eine Fläche definiert wird, muss man noch area=yes hinzufügen. Für Einzelheiten siehe area=*
  • Bei größeren Gebieten oder komplexeren Flächen, solche die sich aus anderen Flächen oder Wegen zusammensetzen oder Löcher enthalten, verwendet man eine Multipolygon-Relation mit geeigneten Eigenschaften. Details siehe dort.

Somit können mit verschiedenen tag-Kombinationen aus geschlossenen Wegen lineare "geschlossene Polygone" und Gebiete (area) erzeugt werden.

Ein Beispiel: Ein Kreisverkehr mit einem Rasenbereich in der Mitte würde als ein geschlossener Way definiert und sowohl mit dem Tag highway=primary als auch mit landuse=grass versehen werden. Dies wird von Darstellungsprogrammen als eine kreisförmig verlaufende Straße mit einer Grünfläche in der Mitte verstanden.

Wenn Wege gerendert werden, die mit nur für geschlossene Wege benutzten Tags versehen wurden, werden sie, wenn sie nicht geschlossen wurden, durch joining (Verbinden) der Enden geschlossen, damit das Gebiet (Area) gefüllt werden kann.

Früher war es nötig, Grenzen um Gebiete in einer bestimmten Richtung (im oder gegen den Uhrzeigersinn) zu zeichnen, damit die Informationen richtig gerendert wurden. Das ist heute nicht mehr nötig.

Modellierung von Flächen in Flächen

Beim Rendern werden kleine Flächen im Allgemeinen "auf" größere Flächen gezeichnet, wenn die kleine Fläche vollständig in der großen liegt und beide Grenzlinien keine gemeinsamen Punkte haben. Dann wird ein kleines Wäldchen in einem großen Park aussehen wie ein Wäldchen in einem Park und umgekehrt wird eine kleine Wiese in einem großen Wald als Lichtung in einem Wald gerendert. Wenn eine Fläche mittels eines Multipolygons modelliert wird, kann man sehr schön festlegen, dass eine Wiese in einem Wald eine Lichtung ist.

In der Community tobt seit Einführung der Multipolygone im Zuge der Umstellung auf die API 0.6 der Streit, ob man für das obige Beispiel ein Multipolygon verwenden soll oder nicht.

Beispiele

Eine einfache Fläche

In diesem Beispiel wird ein See mit einem geschlossenen Weg modelliert, wobei der letzte Punkt des Weges zugleich auch der erste Punkt ist. Die Verwendung des Tags natural=water impliziert area=yes.

  <way id="4876027" timestamp="2008-03-12T07:59:11Z" user="MichaelCollinson">
    <nd ref="31492372"/>
    <nd ref="31492338"/>
    <nd ref="31492370"/>
    <nd ref="31492371"/>
    <nd ref="31492372"/>
    <tag k="natural" v="water"/>
    <tag k="name" v="Spegeldammen"/>
  </way>

Ein Multipolygon

Eine Fläche kann mit einem Multipolygon modelliert werden. Ein Multipolygon ist eine Liste an Wegen, die die äußere Grenze und auch innere Grenze(n) (z.B. Waldlichtung) definieren. Dieses Beispiel-Multipolygon hat eine äußere Grenze, welche aus einem einzigen, in sich geschlossenen Weg besteht. Außerdem hat es noch zwei innere Grenzwege, die beide jeweils in sich geschlossen sind und jeweils eine einzelne Waldlichtung modellieren.

  <relation id="12" timestamp="2008-12-21T19:31:43Z" user="kevjs1982" uid="84075">
    <member type="way" ref="2878061" role="outer"/>
    <member type="way" ref="8125153" role="inner"/>
    <member type="way" ref="8125154" role="inner"/>
    <member type="way" ref="3811966" role=""/>
    <tag k="type" v="multipolygon"/>
    <tag k="landuse" v="forest"/>
  </relation>

See also