JOSM-Plugin Relation abtrennen

Kennt jemand das Tool “Relation abtrennen”? Alt+Umschalt-G
Was bewirkt es?
Wie wendet man es an?

Ich kapier es einfach nicht. :frowning:
Kann mir jemand helfen?

In Erwartung
surveyor54

Hilft Dir das hier https://www.mail-archive.com/josm-dev@openstreetmap.org/msg03928.html weiter?

Hallo zusammen,

@surveyor54

vor dem selben Problem stand ich auch, darum meine Zeilen weitestgehend zu dem selben Thema hier.

GerdP bot mir an, meine Beobachtungen ihm als PN zu schicken… habe ich getan. Ich schreibe das trotzdem hier nochmal, daß es andere auch mal testen mögen…


JOSM-Erweiterung utilsplugin2
Wenn ich ein simples Polygon mit einer Linie, mit vielen Stützpunkten teile (Funktion Objekt aufteilen), entstehen zwei Flächen, bei denen eine die Historie hat. Das ist Ok.
Wenn ich das selbe mit einer Multipolygon-Relation mache, wird immer innerhalb dieser Relation eine separate Outer-Fläche angelegt. Es entsteht der Geometriefehler “duplicate segment in Relation”. Dabei ist es egal, ob ich eine Fläche mit oder ohne einer Inner-Rolle abtrennen will.
Die neu entstandene Outer-Fläche und deren Inner-Flächen muß manuell sortiert und manuell eine neue Relation erstellt werden.

JOSM-Erweiterung PolygonCutOut
Wenn ich beide Aktionen mit der Erweiterung PolygonCutOut mache, werden sowohl Polygone, als auch Multipolygonrelationen korrekt getrennt. Es gibt aber den großen Nachteil, daß keine der neu entstandenen Polygone oder Multipolygonrelationen die Historie des Vorgängerobjektes bekommt.
Also, wenn ich eine Multipolygon-Relation mit einer outer-Rolle und zwei inner-Rollen in eine Multipolygon-Relation in der Mitte zerteilen will und es sollen zwei Multipolygon-Relationen mit je einer Outer-Rolle und je einer inner-Rolle entstehen, dann entsteht das so. Jedoch ohne daß die History an einem der neuen Objekte erhalten wird.

Die Funktion “Relation abtrennen” (=Alt+Umschalt-G) aus der Toolsammlung utilsplugin2 macht hier auch nichts…

Ich habe auch immer darauf geachtet, daß die Schnittlinie innerhalb des zu schneidenen Objektes ist…

Noch zu meiner Umgebung:

OSM Version 18193 deutsch tested.

Java:
IMPLEMENTOR=”Eclipse Foundation”
IMPLEMENTOR_VERSION=”Temurin-11.0.12+7”
JAVA_VERSION=”11.0.12”
JAVA_VERSION_DATE=”2021-07-20”

Viele Grüße,

Sven

@Sven: Hast Du auch sicher die neueste Version des plugins utilsplugin2 (mindestens 35792) und das Multipolygon ausgewählt?

Ja und ja… gerade eben am MP https://www.openstreetmap.org/relation/9350016 mit einer taglosen Linie von Punkt https://www.openstreetmap.org/node/1385924138 zu Punkt https://www.openstreetmap.org/node/1385924162 mit einem Zwischenpunkt der sauber die beiden südwestlichen inner vom Rest trennt, offline getestet.

Mit den Funktionen von PolygonCutOut wird das MP sauber getrennt, wenn ich lediglich die taglose Linie markiere aber ohne Historie beider neuentstandenen MP’s. Mit “Objekt aufteilen” wird nur ein zweites Outer im bestehenden MP angelegt. Mit “Relation abtrennen” passiert nix, egal, was in welcher Kombination markiert ist.

Sven

Ich ziehe die Linie von Knoten 1385924138 zu 1385924162, wähle die Relation 9350016 und die neue Linie aus und drücke Alt+X.
Ergebnis: Ein neues MP mit 4 Mitgliedern und das alte mit 3 Mitgleidern.
Wenn ich die Relation nicht auswähle, dann wird keine neue Relation erzeugt und ich bekomme zwei outer Rings, die sich ein Segment teilen.

Zu “Relation abtrennen”: Ich zeichne ein Rechteck, trenne die obere Seite mit P, dann wähle ich beide Linen aus und erzeuge ein MP.
Ich habe also unten ein U und oben eine gerade abgetrennte Seite, die beide outer in meinem MP sind.
Dann zeichne ich eine weitere Linie vom Knoten oben links nach oben, dann nach rechts, dann wieder runter zum Ende der abgetrennten Linie und erzeuge ein zweites MP aus dieser neuen Linie und der Mittellinie. Also der typische Fall von verklebten MP.
Diese beiden MP sollten “getrennt werden”, dazu wähle ich die Mittellinie und drücke Alt+Shift+G. Das Ergebnis ist, dass eines der beiden MP jetzt eine neue Line als outer hat, die die gleichen Knoten hat wie die Mittellinie. Wozu das gut ist, weiss ich aber auch nicht so recht.

Argh… Dann entstehen ja meine MP-“Lieblinge” :frowning:
Ein kalter Schauer läuft mir den Rücken hinunter! Beide neu entstandenen MP’s haben jeweils unnötig 2 Outer… Grrr… In meinen Augen ganz böse…

Es muß hier bei diesem Beispiel entstehen: 1 MP mit 2 Elementen: 1 inner, 1 Outer (nordöstlich) und 1 MP mit einem outer und 2 inner(südwestlich)… Erst wenn sich das Outer der 2000-Stützpunkt-Grenze nähert (=technische Grenze) würde ich 2 Outer akzeptieren Ansonsten niemals…

Ist doch aber auch viel zu kompliziert in der Anwendung…
Die Erweiterung PolygonCutOut zeigt, daß es technisch einfacher geht… Linie ziehen (diese ist makiert), “Split Polygon” anwenden, MP’s werden getrennt… Das MP muß nicht extra ausgewählt werden, was durchaus ohnehin gelegentlich mehrfachs Klicken erfordert. Es muß nur die Historie nach dem Trennen mit eingebaut werden…

Die nächste Steigerung wäre, wenn die Schnittlinie durch die oder eine der Inner-Flächen geht… Dann muß/müsste das auch gleich mit separiert, also als separate Fläche/Geometrie abgeteilt werden, die dann nicht mehr Teil einer der anderen Flächen ist … Eigentlich normale geometrische Operationen…

Sven

Tja, Du kannst ja dann mit Alt+Shift+G die verklebten Relationen trennen und anschließend die outer wieder zusammenkleben. Das macht aber nur Sinn, wenn die Wege keine andere Bedeutung haben, braucht also wieder relativ viel Wissen über Kontext.
Der Nachteil von PolygonCutOut ist halt, dass es nur mit geschlossenen Ringen umgehen kann. Split Object kann auch sehr komplexe MP mit mehreren outer ways trennen, zumindest, wenn es nur einen outer Ring gibt.
Ich selbst trenne von MP meist eher kleine Stücke ab, die dann kein MP mehr sind. Da brauche ich eh andere Methoden.

Hi,
danke für die Mühe die ihr euch gemacht habt. Hab es jetzt kapiert. :wink:

Ich habe die ganze Zeit die Funktion “Objekt aufteilen” benutzt und bin damit eigentlich recht zufrieden.

@ streckenkundler Bei Gelegenheit werde ich mir die Funktionen von PolygonCutOut einmal anschauen.

Gruß
surveyor54

Das Problem bei MPs ist doch, dass das Mitglied auch für was komplett eigenes stehen und zig Relationen als Eltern haben kann. Die Relationen müssen ja noch nicht mal geladen sein. Da wird es schwierig mit dem Vereinigen der Linien die einen “outer” Ring bilden.

Was sich aber mit etwas kontinuierlicher Datenpflege weitestgehend vermeiden lässt… z.B. gehören für mich Straßen und Gewässer nicht als outer von Wald-MP’s nachgenutzt. MP’s mit mehreren Outer- Segmenten lassen sich fast immer vermeiden… Da beiseitigt man schon jede Menge Störgrößen… Das selbe gilt auch für Grenzen.
Sven

Es spricht ja auch nichts dagegen, dass nach eingehender Prüfung zu machen. Es ist allerdings extrem komplex, diese Prüfungen alle in dem Plugin einzubauen. Je mehr die Funktion automatisch macht, umso wahrscheinlicher macht sie unter bestimmten Umständen was kaputt.
Abgesehen davon ist ja niemand gezwungen, eine Funktion zu benutzen, deren Ergebnis nicht gefällt. :wink:

Andererseits habe ich auch ein stückweit das Gefühl, daß mit diesen Schnitt-, Splitt- und Abtrennfunktionen eh die datentechnischen Grenzen ausgetestet werden dürften… Da ja die Flächenbildungsmöglichkeiten von OSM doch etwas vielfältiger sind, als wenn man einen OGC-konformen Datentyp Polygon für Flächen hätte (was ich mir wünschen würde)…

Sven