Zerstörungsfreies Auftrennen von Wegen

Gemeint ist hier nicht das “Längsauftrennen” von Wegen – z.B. in getrennte Fahrspuren statt einer Straße. Das ist nicht ohne Beschäftigung mit den zugehörigen Relationen möglich.
Hier geht es nur um das “Querauftrennen”: man schneidet den Weg sozusagen an einem seiner Punkte durch und hat dann zwei.

Oft muss ein Mapper einen Weg auftrennen, z.B. weil sich die Geschwindigkeitsbegrenzung ändert. Man sollte so etwas tun können, ohne sich in alle Regeln für Busrelationen, Wanderwege und Regierungsbezirksgrenzen einarbeiten zu müssen. Es geht also um die Frage: “Was splitte ich einen Weg im Editor xxx, ohne was kaputt zumachen.”

Unabhängig vom Editor gilt: Beim Auftrennen eines Weges, der eine einfache Fläche angibt (also Polygon, nicht Multipolygon) muss man sich mit den zugehörigen Problemen beschäftigen. Einfaches Auftrennen (auch mit zwei Trennpunkten) ist immer falsch. (Die Diskussionen dazu sind umfangreich und sollten möglichst nicht hier wiederholt werden.)

Ich fange mal mit dem JOSM an:

Problematisch sind eigentlich nur Routen (Busse, Wanderwege, …). Was man da vor dem Splitten machen muss, kann man aber ruhig immer machen – es schadet nie:

Falls ein Endpunkt des zu trennenden Weges im schraffierten (also nicht direkt geladenen) Bereich liegt, dann vergrößert man auf ihn und läd dann den kleinen Bereich um den Endpunkt nach. Liegen beide außerhalb, dann macht man das eben zweimal.

NAQ:

Was passiert, wenn man diesen extra Schritt nicht macht?
Dann kommen die beiden Teilwege oft in der falschen Reihenfolge in die Relation. Das ist etwas ärgerlich für den, der die Relation pflegt … aber man hat keine Informationen vernichtet oder sowas.

Was passiert, wenn man diesen Schritt macht?
Wenn es Informationen gibt, die ein richtiges Einsortieren der neuen Teile erlauben, dann sind sie danach vorhanden und werden von JOSM genutzt.

Weide

Potlatch 2 benutzen: Linksklick auf den Weg um diesen zu markieren, Punkt setzen wo man den Weg auftrennen will durch GROSS + Linksklick, Linksklick auf “Schere” (Weg teilen), fertig. Dauer 1,5s.

Das stimmt nicht. Es ist nicht sicher zerstörungsfrei – ich hab es gerade ausprobiert: In den Relationen waren die neuen Teile teilweise in der falschen Reihenfolge eingetragen.

Weide

wo, im xml der Relation? Wenn das für Routen relevant ist, dann ist es ein bug.
Ist mir noch nicht aufgefallen.

Dann solltest du erst einmal definieren, was du unter “zerstörungsfrei” genau verstehst.

imho ist die Reihenfolge der Member einer Relation total unwichtig.
(bis auf ÖPNV-Relationen. Dort und nur dort soll die Reihenfolge wichtig sein, obwohl ich das nicht nachvollziehen kann. Das ist aber ein anderes Thema)

Gruss
walter

Hallo Walter

Eine sinnvolle Reihenfolge ist für alle Routen-Relationen praktisch. Wirklich brauchen tut man das nicht, da die Wegstücke relativ leicht automatisch sortiert werden können (dabei forward/backward beachten).

Bei ÖPNV-Routen kommen jedoch noch die Haltestellen dazu. Die kann man (da einzelne, oft isolierte Punkte) in der Regel nicht automatisch sortieren.

Edbert (EvanE)

In der Reihenfolge der Member. Wenn in einer modernen Buslinienrelation (eine Relation pro Richtung oder Variante) die Member

A-B-C

in dieser Reihenfolge vorkommen, dann bedeutet das, dass sie in dieser Reihenfolge durchfahren werden. Splittet man B in B1 und B2, dann gibt es zwei Möglichkeiten für die neue Relation von denen meist eine falsch ist:

A-B1-B2-C
A-B2-B1-C

Gewöhnlich wird A mit einem der beiden Bs einen gemeinsamen Endpunkt haben und C mit dem anderen. (Es gibt aber auch gemein komplizierte Fälle. Roundabouts, Lücken, Schleifen)

Soweit würde ich nicht gehen. An sich kann ein Editor nicht alle Relationregeln kennen – wir erfinden ja auch dauernd neue… Aber wünschenwert wäre es ganz sicher. Ich sehe das eher als Zusatzleistung der Editoren.

Weide

Ich verstehe darunter, dass der Informationsgehalt der Relation sich nicht ändert. (Und wenn unvermeidbar, dann eben minimal und reparierbar)

Auch bei Wanderwegen spielt es eine Rolle. Man kann dort mit “oneway=yes” in der Relation angeben, dass sie nur in der angegebenen Richtung brauchbar ausgeschildert ist. Dazu muss es ja eine “angegebene Richtung” geben, aber die könnte man auch durch numerierte Roles oder was-weiss-ich erreichen.

Das “nur” würde ich nicht unterstützen. Da API 0.7 ausdrücklich erlaubt, dass Elementreihenfolgen eine Bedeutung haben, werden künftige Relationstypen das immer mehr benutzen.

och

Na gut. :slight_smile:

Weide

Wenn eine Routenrelation den tatsächlichen Fahrweg als eine Folge von Wegen abbilden soll, ist die richtige Reihenfolge nicht nur praktisch, sondern zwingend nötig. Es kommt vor, daß einzelne Streckenabschnitte auf einer Route mehrfach befahren werden. Dann ist mit automatischer Sortierung Essig.

JOSM sortiert die neuen Wege “richtig” ein, wenn B vorher mit A und C eine zusammenhängende Strecke bildete. Inzwischen unterscheidet JOSM beim Aufspalten auch zwischen Routen und Abbiegebeschränkungen und fügt bei letzteren nur noch den “richtigen” neuen Weg in die Relation ein, nicht beide. (Zumindest mit den gängigen Weg-Weg-Knoten-Relationen; bei No-U-Turns über mehrere Wege weiß ich es nicht.)
Potlatch hat mittlerweile auch Fortschritte gemacht: Vor nicht allzu langer Zeit gingen beim Splitten von Wegen noch regelmäßig Relationen kaputt, weil die neuen Wege komplett fehlten; später landeten sie dann einfach am Ende der Relation. Mittlerweile scheint immerhin A-B1-B2-C generiert zu werden, was für Routenrelationen immerhin in 50 % der Fälle richtig und sonst “fast richtig” ist.

Das Public-Traffic-Proposal braucht es. (Auch wenn es bei den meisten Buslinien nur eine sinnvolle Reihenfolge geben kann. Die anderen Fälle sind aber keineswegs nur theoretisch und sie sind nicht einmal selten.)

Weide

Nur dann, wenn die Endpunkte von B im geladenen Bereich liegen. Sonst landet JOSM auch bei der 50-50 Regel.

Weide

Während bei anderen Routen-Relationen (Wandern, Radfahren, Autobahn, Bundesstraßen, …) Schleifen (Zu- und Abfahrt über den gleichen Weg) eher sehr selten sind, kommen Schleifen bei ÖPNV-Routen in einer nicht zu vernachlässigenden Größenordnung vor. Das hatte ich in der Tat nicht bedacht.
Beispiele: Bedienung eines Ortsteils über eine Straße, Busbahnhof auf Gelände neben einer Straße.

Von daher gibt es zwei wesentliche Gründe für die Ordnung in ÖPNV-Relationen:

  • Schleifen im Weg können nicht automatisch sortiert werden.
  • Haltestellen (neben dem Weg) können nicht automatisch sortiert werden.
    {Stopstellen (im Weg) zur Orientierung sind selten komplett erfasst.}

Edbert (EvanE)

Es geht hier ja darum, einem (noch) nicht an Relationen interessierten Mapper zu sagen, wie er/sie einen Weg auftrennen kann, ohne Relationen zu beschädigen und ohne alle Relationsarten zu lernen. Ich hab das für JOSM gemacht, aber es wäre Quatsch, wenn ich da an die anderen Editoren gehen würde – da bin ich totaler Anfänger.

Weide

PS: Ich kenne mehrere erfahrene Mapper, die mit dem JOSM schon Relationen beschädigt haben (“Der JOSM kann das ja”). So gesehen ist eine solche Beschreibung nicht nur was für Anfänger.