Wir brauchen feste Regeln für die Verwendung von Multipolygonen!

Nach meinem Verständnis des Wikis dürfen sich inner Rings berühren, sowohl an einzelnen Punkte als auch an ein oder mehr Kanten. Das wird in manchen Gegenden auch intensiv genutzt. Diese seltsame Ausnahme macht die Prüfung und das Renderung von MP erheblich komplizierter. Richtig eklig wird es dann, wenn man mehrere Inner so aneinander klebt, dass sie eine Fläche einschließen:
https://www.openstreetmap.org/relation/116883
https://www.openstreetmap.org/way/91005852
https://www.openstreetmap.org/way/144870352

Laut Wiki ja, das stimmt, in meinen Augen ist es aber stets vermeidbar. Es passiert dann unter Umständen das hier: https://tools.geofabrik.de/osmi/?view=areas&lon=6.31275&lat=50.53627&zoom=16 Das passiert, wenn mehrere Inner-Ringe aneinandergeklebt werden und diese dann selbst geschlossene Ringe bilden… Das kann man nur auflösen, wenn man einen taglosen Inner-Ring um die betreffenden Elemente zieht und alle Elemente innerhalb aus dem MP rausschmeißt und als simple Flächen erfasst.

Sven

Wenn der OSM Inspector das anmeckert und JOSM nicht, ist das natürlich auch nicht schön. Aus meiner Sicht sollte man erstmal im Wiki klar stellen, dass dies unerwünscht ist, falls da Konsens besteht.
Ich würde auch MP mit “outer ring” innerhalb von inner als “bäh” markieren. So eine Mehrfachverschachtelung ist erlaubt, aber kaum zu begreifen.
https://wiki.openstreetmap.org/wiki/DE:Relation:multipolygon#Insel_in_einem_Loch

Das Problem:
Ein Wald mit Waldwiese und in dieser ein kleiner See inmitten von Buschland. Auch wenn auf einem See eine Insel mit Buschland um einen Felsen ist. Oder auch ein Innenhof mit Wiese, Spielplatz und Teich.

Ich bin prinzipiell gegen MP die nicht unbedingt notwendig sind, und teile auch schon einmal eine Wiese mit einem innenliegende Buschland. Aber manchmal geht es nicht anders.

Zu begreifen schon - Teich auf Insel im See (siehe auch geri-oc) - aber schwerer wartbar.
Vermeiden lässt sich das durch den Kunstgriff, die äußere Fläche aufzuschneiden, am besten entlang einer nachvollziehbaren Linie wie Weg oder Bach.
Bei Seen eher selten verwendet, bei Gebäuden gar nicht, bei Flüssen als Fläche (waterway=riverbank oder natural=water & water=river) dagegen gängige Praxis. Da wird das selbst mit MPs (wegen Inseln im Fluss) gemacht.
NB: Bei Aufteilen zu den Inseln hin ließen sich sogar die Fluss-MPs praktisch vollständig vermeiden. Das soll jetzt aber kein neues Fass werden.

https://www.openstreetmap.org/#map=18/48.20575/11.88831

Man bräuchte vielleicht auch Regeln für Renderer :wink: was was überdeckt… dann könnte man sich auch so einige inner sparen… Teiche und Seen im Wald die bräuchte man nur höher im Level einordnen… Wiese ist vielleicht schwierig :confused:

Der Teich und der See sind aber wohl kaum das gleiche Gewässer, daher würde ich da immer nur die Insel aus dem See ausschneiden.
Dieser Weg ist dann der inner für den See und ein Outer für ein zweites MP Insel > Teich.

Geht im Prinzip.
Ob aber dasselbe Polygon einmal als inner und einmal als outer in zwei verschiedenen MPs einsichtiger und besser wartbar ist - ich weiß nicht.

Ich finde das allemal einfacher zu verstehen als ein outer mit natural=water in einem MP mit natural=wood, falls jemamd Wald → Lichtung → Teich in Lichtung mappen möchte.

Genau so sehe (und mache) ich das auch.

Gruss
walter

Doch das kann man noch reproduzieren.
Bei einer einfachen Fläche ohne Relation passiert es tatsächlich nicht, hatte dies auch erst wie Galbinus in Erinnerung, dass es sogar bei solchen Fällen bereits passiert.
Aber wenn man sich z.B. ein Haus mit Innenhof ( Beispiel-Relation: https://www.openstreetmap.org/relation/104696 ) vornimmt, dann werden beim Zerschneiden eines Weges*, wenn dieser mit einem Punkt des Outer-Rings und einem Punkt des Inner-Rings des Gebäuderandes vereint ist, auch die Gebäude-Linien (outer und inner) mit zerschnitten. Man erhält dann also zwei inner-ways und zwei outer-ways…

*(welcher durch eine Gebäudepassage in den Innenhof führt und man nur das Weg-Stück unter dem Gebäude als building_passage definieren möchte)

Ok, in dem Fall konnte ich es jetzt auch nachvollziehen. Unschön…

Habe jetzt durch etwas Herumspielen herausgefunden wie man die Objekt-History unter Verwendung des ID-Editors durch die Funktion “Vereinen” z.B. der Outer-ways erhält:
Es ist notwendig, dass man als erstes markiertes Wegstück den Teil auswählt, der noch die alte Weg-ID hat…
Ob das ausgewählte Wegstück das Wegstück mit der alten Weg-ID ist, kann man erkennen, wenn links unten im Teil-Fenster (unter den Eigenschaftenliste und unter der inner/outer Relationsliste aber kurz über der Browser-Statusleiste) ein verfügbarer Link mit dem Text “Auf openstreetmap.org ansehen” erscheint. Besteht der Link nicht, dann hat man das neue Wegstück, welches nach dem Splitt entstanden ist, selektiert …
Bei bestimmten Situationen ist es dann teilweise zusätzlich notwendig vor dem “Vereinen” vorher die OSM-way-Richtung zu ändern.
Diese Vorgehensweise ist tatsächlich sehr anfällig die Objekt-History zu “zerstören”, bzw. zu verkomplizieren
Ähnlich eben auch zu den Situation bei denen es nicht um MP’s geht, sondern wenn z.B. Highway-Wegstücke zerschnitten werden.

Weitere Auffälligkeit: soeben ausprobiert an Beispiel-Relation: https://www.openstreetmap.org/relation/104696

Wenn der Innenhof allerdings irgendeine Flächendefinition besitzt (z.B. landuse=xyz), dann bleibt der Inner-Ring bei der ID-Editor Funktion Weg-“Teilen” unangetastet als ganze Fläche bestehen. Für den Outer entstehen aber weiterhin noch zwei Teile…
Es hängt also doch irgendwie damit zusammen, ob die kreuzenden Linien nun Flächen oder Linien darstellen. Naja das ist dem gewöhnlichen OSM ID-Editor Benutzer aber sicher nicht bewusst. Keine Ahnung ob der ID-Editor diesbezüglich geändert werden sollte. Falls das jemand besser versteht, besser erklären und auf github (in Englisch) berichten kann, darf er gerne mal dort ein Ticket aufmachen :slight_smile:

Ihr habt doch hier bereits netterweise 2 interessante Abfragen zu einem anderen Fall zusammengebaut:
streckenkundler: http://overpass-turbo.eu/s/DE8 (MP-Relationen mit >=2 Outer und ohne Inner)
miche101: http://overpass-turbo.eu/s/DEb (Also Relationen mit inner rausfiltern)

Wäre es dann für diesen Fall “Touching inner Rings” auch irgendwie möglich eine Abfrage zu erfinden? Ggf. können die overpass-turbo-Spezialisten helfen :slight_smile:

Wenn man in iD einen geschlossenen Ring, der anhand seiner Tags als Fläche erkannt wird, und einen seiner Nodes selektiert hat, passiert beim Teilen meines Wissens folgendes:
der Ring wird am selektierten Node sowie dem gegenüberliegenden Node (nach Node-Anzahl) geteilt, und ein Multipolygon erzeugt, dass die beiden Teilringe als Member und die Tags bekommt.
Die Idee dahinter ist, dass der Weg zwar technisch geteilt wird, die Bedeutung aber erhalten wird.
Dies ist zwar theoretisch nachvollziehbar, aber in der praktischen Anwendung eher problematisch.

Das Ticket ist schon lange vorhanden. Leider ist eine praktikable Funktion zum Teilen von Flächen sehr schwierig in iD umzusetzen.
Da Multipolygone und einfache Flächen für den Benutzer in iD nur schwer unterscheidbar sind, sollte das Teilen für beide gleichartig funktionieren. Bei Multipolygonen hat man aber das Problem, dass diese ggf. nicht komplett geladen sind. Für das Nachladen bei der Ausführung der Teilen-Operation fehlt in iD aber noch die nötige Infrastruktur, und es kann potentiell sehr lange dauern. Weiterhin sind in iD Warnungen unerwünscht. Deshalb müssen Operationen bereits auf Ihre Verfügbarkeit geprüft sein, bevor der User die Operation anwählt, was aber ohne die Daten bereits geladen zu haben, nicht möglich ist.

Ich hatte schon beabsichtigt, dazu ein Pull-Request zu machen, allerdings festgestellt, dass iD erst noch grundlegende Infrastruktur dazu benötigt.

OT: Das erklärt wahrscheinlich auch, warum ich mit iD nicht zurecht komme. Er verbirgt eher die Informationen, die letztlich in der Datenbank gespeichert werden. Das ist bestimmt für einen Großteil der Anwender besser, wenn es gut funktioniert. Bei einem Auto interessiert mich ja normalerweise auch nicht, wie das Getriebe im Detail funktioniert. Jetzt bin ich aber eher jemand, der sich vermutlich falsche Daten in OSM anschaut. Da brauche ich dann eben Datentypen, Tags, ids und Historie und nicht die mehr oder weniger unbrauchbare Interpretation dieser unsinnigen Daten, kurz: JOSM :wink:

Braucht es diese Relation?

https://www.openstreetmap.org/relation/2923000

nach meiner Erfahrung… eigentlich nicht… :confused:

Naja, mann kann jedes MP in einzelne Polygone zerlegen, oder meinst Du dass man auf die inner-Member verzichten kann?
Das wäre aber semantisch nicht korrekt, da dann farmyard und farmland übereinander liegen.

Schaue einfach einmal im Luftbild. Wenn du vor Ort bist würde ich entlang der Feldwege vereinzeln. Damit werden die “inner” schon zu normalen Flächen ohne Relation und das MP ist nicht nötig. Meist sind auch die einzelnen Feldflächen an verschiedenen Bebauungen erkennbar. Auch ist manches grass oder meadow (Parkplatz? am Flugplatz)