[Talk-de] Verwendung von Multipolygonen

Peter Wendorff wendorff at uni-paderborn.de
Sa Okt 20 14:15:33 UTC 2012


Am 20.10.2012 15:46, schrieb Willi:
> On Saturday, October 20, 2012 5:47 AM Stephan Knauss
> [mailto:osm at stephans-server.de] wrote:
>
>> Was war denn speziell bei dem Flughafen die Motivation zum Beispiel das
> Vorfeld
>> aus der Relation wegzulassen?
>> http://www.openstreetmap.org/browse/relation/1442532
> 	
> Ich habe das Vorfeld (apron) nicht aus der Relation weggelassen sondern es
> als inneres Mitglied (inner) derselben aufgenommen. Damit wird zum einen
> mitgeteilt, dass es innerhalb der äußeren Begrenzung (outer) des Flughafens
> liegt. Und zum Anderen, dass es etwas Anderes ist als die restliche
> Flughafenfläche (outer ohne alle inner) und anders dargestellt werden soll.
> Wie legt aeroway=apron fest. Für die restliche Flughafenfläche gilt
> aeroway=aerodrome.
Das halte ich für falsch.
Dass das Vorfeld innerhalb des Flughafens liegt, ergibt sich aus der 
Geometrie.
Die Role inner eines Multipolygons dagegen besagt "schneide dieses 
Polygon aus, das gehört nicht dazu."
Das ist ungefähr genau das Gegenteil und hier nicht zutreffend.
Dass es etwas anderes ist als die restliche Flughafenflche (outer ohne 
alle inner), ist etwas anderes, aber dann gehört die Eigenschaft "dies 
ist ein Flughafen" (aeroaway=aerodrome) an den outer-way, nicht ans 
Multipolygon.
> Damit habe ich festgelegt wie ich den Flughafen sehe und verstanden haben
> will. Zum Beispiel zeichnet daraufhin ein Renderer wie Mapnik das Vorfeld
> nach, also über die Flughafenfläche und das Vorfeld ist sichtbar. Da Mapnik
> Wasser nach Flughafenflächen zeichnet wenn nichts anderes angegeben ist, ist
> auch der See http://www.openstreetmap.org/browse/way/33300147
> zu sehen obwohl er kein inneres Mitglied des Multipolygons ist.
Das ist aber ein Problem des Mapnik-Stils, der nichts mit den Daten zu 
tun hat.
Die Daten sind nicht falsch, nur weil der Mapnik-Stil hier 
offensichtlich fehlerhafte Ergebnisse produziert.
> Diesen See http://www.openstreetmap.org/browse/way/186750719
> zeichnet Mapnik nach dem Wald
> http://www.openstreetmap.org/browse/way/186750716
> in dem er liegt. Er ist also sichtbar, auch ohne Multipolygon.
>
> Auch diesen See http://www.openstreetmap.org/browse/way/186750718
> zeichnet Mapnik nach diesem Wald
> http://www.openstreetmap.org/browse/way/186750717.
> Mapnik merkt nicht, dass dies der umgekehrte Fall ist, Wald im See. Mapnik
> prüft gar nicht ob eine Fläche in einer anderen liegt. Der Wald wird nicht
> dargestellt.
Richtig erkannt: Mapnik prüft überhaupt keine Lage, sondern zeichnet 
stumpf in vorgegebener Reihenfolge übereinander.
Meistens funktioniert das, manchmal auch nicht, aber es ist ein Fehler 
bzw. eine Begrenzung von Mapnik, wenn dabei was schiefgeht.
> In diesem Beispiel wird durch eine Relation Multipolygon
> http://www.openstreetmap.org/browse/relation/2410561
> mitgeteilt, dass ein Wald in einem See liegt und Mapnik zeichnet dann den
> Wald nach dem See. Der Wald ist sichtbar.
Jein.
Jetzt sind wir an der Uneindeutigkeit der natürlichen (hier deutschen) 
Sprache.
Die inhaltliche Frage wäre eigentlich: gehört der See zum Wald oder 
nicht? Liegt der See im Wald, oder erstreckt sich der Wald um den See herum?
Semantisch halte ich im Falle von Wald und See beides für vertretbar und 
damit beide Möglichkeiten, das in den Daten zu modellieren, für korrekt.

Beim Flughafen dagegen ist das was anderes: Niemand käme auf die Idee, 
ernsthaft zu behaupten, das Vorfeld gehöre nicht zum Flughafen.
Das gehört nicht zu den Flughafengebäuden, nicht zum Terminal, nicht zur 
Wiese, die sich auch auf dem Flughafengelände erstreckt, aber genauso 
wie Terminals, Wiese und so weiter gehört es zum Flughafen. Es 
auszuschneiden wäre damit falsch.
>
> Da die Reihenfolge der Abarbeitung der Flächen nicht festgelegt ist, kann
> ein anderer Renderer zu einer anderen Darstellung kommen. Durch Verwendung
> von Multipolygonen verhindere ich dies, wie in diesem Beispiel
> http://www.openstreetmap.org/browse/relation/1625506.
Stimmt, dadurch verhinderst Du das.
Aber was tust du damit eigentlich?
Im Flughafen-Beispiel erzeugst Du bewusst und absichtlich Fehler in den 
Daten und versteckst dafür Fehler der Renderer.
Du verminderst Auswertungsmöglichkeiten der Daten (Wie viel Fläche hat 
der Flughafen?) und minderst gleichzeitig den Druck, Fehler in den 
Renderern zu beheben.
Stattdessen könntest Du den Fehler der Renderer berichten und versuchen 
mitzuhelfen, wie man ihn beheben könnte (was zugegeben im aktuellen Fall 
nicht unbedingt einfach wird).
> Ausser für den beschriebenen können Multipolygone auch noch für andere
> Zwecke eingesetzt werden. Zum Beispiel zur Beschreibung von Exklaven und
> Enklaven. Es wird also beschrieben, dass eine Fläche in einer anderen liegt,
> aber nicht zu ihr gehört. Es ist nicht immer sofort ersichlich wozu die
> Relation Multipolygon erstellt wurde. Und so entstehen immer wieder
> Missverständnisse und eigentlich unnötige Diskussionen.
Die Beschreibung von Enklaven und Exklaven ist der einzige (!) Sinn von 
Multipolygonen bzw. deren inner-role.
Deine Beispiele oben sind falsche Anwendungen des Multipolygons, und nur 
so werden Missverständnisse eingeführt, denn eigentlich ist die 
Definition klar:
Die Multipolygon-Relation ist eine Möglichkeit, eine Fläche zu 
beschreiben, die durch einen geschlossenen Linienzug (= closed way = 
Polygon) nicht beschrieben werden kann, indem
a) mehrere nicht geometrisch zusammenhängende Flächen zusammengefasst werden
und/oder
b) Löcher aus einfachen Flächen ausgeschnitten werden.

Die dritte Variante, auch noch aus nicht geschlossenen Wegen Flächen 
zusammenzustückeln, ist eine technisch gebundene "Notlösung", die ich 
persönlich auch schon kritisch sehe; das berührt aber nicht die bis 
hierhin von mir beschriebene Situation.

Gruß
Peter




Mehr Informationen über die Mailingliste Talk-de