Kreisel und Routen, Kreisel in DE:wiki

Das ist überhaupt nicht notwendig, Der Abschhnitt des Kreisels, über den die Route konkret führt, ist durch die implizite Einbahneigensschaft eines Kreisverkehrs festgelegt. Das muss muss man als Mapper nicht vorkauen.

Und wie ist dann beim Aufsplitten mit dem Taggen der einzelnen Abschnitte, das sind nach Definition ja dann keine Kreisverkehre (geschlossener Kreis) mehr, sondern ganz gewöhnliche Einbahnstraßen?

Nein. Solange an allen Abschnitten junction=roundabout steht, bilden sie routinglogisch einen einzigen Kreisel. Keine mir bekannte Software hat damit ein Problem.

–ks

Finde ich auch. Es ist so verbreitet, Kreisverkehre nicht für Routen aufzuteilen, dass alle verarbeitenden Programme das können müssen.

Für aufgeteilte Kreisverkehre gibt es keine besonderen Regeln in Routen. Also müssen genau die passenden Teile in die Route. Das bedeutet insbesondere, dass man beim ersten Aufteilen eines Kreisverkehrs nicht nur die gerade interessierende Route ändern muss … man muss sämtliche Routen laden, prüfen und anpassen.

Wie ich in https://forum.openstreetmap.org/viewtopic.php?pid=713298#p713298 schon schrob und hier gern nochmal wiederhole: Nein, ein Muss ist das nicht. Es kommt drauf an, ob man einen Kreisel als separate Straße betrachtet oder als Bauform einer Kreuzung. Beides ist technisch korrekt, und im Interesse des KISS-Prinzips bin ich dafür, Kreisel im 2felsfall nicht zu teilen.

Auch das Wiki sagt am Beispiel von Busrouten eindeutig, dass beide Methoden – ganzer Kreisel rein oder Kreisel aufteilen und nur die befahrenen Abschnitte rein – richtig und üblich sind.

–ks

Der Kreisel muss zerstückelt werden damit die einzelnen Weg-Teile richtig, und auch in der richtigen Reihenfolge in die Relationen aufgenommen werden können.

  • Einen simplen Kreisel als node zu Betrachten finde ich eleganter und übersichtlicher und wartungsärmer.

  • Ein nicht gesplitteter Kreisel behält eine lineare Reihenfolge der Relationsmitglieder. Keine Parallelverzweigung

  • Macht weniger Arbeit beim anlegen.

Habe gerade so einen Kreisel umgebaut, den ich anfangs zu komplex angelegt habe (2 Routen gingen durch).

Ich bin auch kein Freund von aufsplittern… auch die “Last” der Relationen die an den Way, Nodes hängt finde ich auch nicht toll, gerade die Routen sind eine ganz schöne Last geworden :frowning: Pflegeaufwand enorm… vielleicht sollte man irgendwo mal dahingehend… weil es immer schlimmer wird, Routen-Graph/shape als GPX-Dateien ablegen und diesen in der Karte anzeigen. GPX-Dateien auto/manuell/wie_auch_immer erzeugen und Aktualisieren…

Aber mei… ich kann mir ja heute schon mit OSMand mit einer GPX-Datei Routen lassen:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<gpx xmlns="http://www.topografix.com/GPX/1/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.1">
<metadata><copyright author="OpenStreetMap contributors"/></metadata>
  <wpt lat="48.157831" lon="11.995417"> <name>1</name></wpt>
  <wpt lat="48.157723" lon="11.992124"> <name>2</name></wpt>
  <wpt lat="48.156085" lon="11.977313"> <name>3</name></wpt>
  <wpt lat="48.158309" lon="11.956263"> <name>4</name></wpt>
  <wpt lat="48.162333" lon="11.94525"> <name>5</name></wpt>
  <wpt lat="48.167103" lon="11.933307"> <name>6</name></wpt>
  <wpt lat="48.178789" lon="11.881911"> <name>7</name></wpt>
  <wpt lat="48.186006" lon="11.869374"> <name>8</name></wpt>
  <wpt lat="48.191041" lon="11.868084"> <name>9</name></wpt>
  <wpt lat="48.192742" lon="11.86169"> <name>10</name></wpt>
  <rte>
   <rtept lat="48.157831" lon="11.995417"></rtept>
   <rtept lat="48.157723" lon="11.992124"></rtept>
   <rtept lat="48.156085" lon="11.977313"></rtept>
   <rtept lat="48.158309" lon="11.956263"></rtept>
   <rtept lat="48.162333" lon="11.94525"></rtept>
   <rtept lat="48.167103" lon="11.933307"></rtept>
   <rtept lat="48.178789" lon="11.881911"></rtept>
   <rtept lat="48.186006" lon="11.869374"></rtept>
   <rtept lat="48.191041" lon="11.868084"></rtept>
   <rtept lat="48.192742" lon="11.86169"></rtept>
  </rte>
</gpx>

https://maps.openrouteservice.org/directions?n1=48.174424&n2=11.928551&n3=13&a=48.157831,11.995417,48.157723,11.992124,48.156085,11.977313,48.158309,11.956263,48.162333,11.94525,48.167103,11.933307,48.178789,11.881911,48.186006,11.869374,48.191041,11.868084,48.192742,11.86169&b=4c&c=0&d=100&k1=de&k2=km

Über Punkteliste… wird route berechnet… easy… bei openrouteservice.org hab ich Höhenprofil, kann mir die berechnete Route runterladen als GPX usw.

Eine GPX-Datei aus einer OSM-Relation zu machen… k.A. hab ich noch nie gemacht… wie, wo geht das?

Warum muss? Erklär uns das bitte.

Ein Beispiel ist nur ein Beispiel und sagt noch nichts über richtig und falsch aus. Im Wiki zum Mappen von Kreiseln ist eindeutig von gesschlossen ways die Rede. Tags beschreiben das Objekt, an dem sie hängen, bei einem gesplitteten Kreisverkehr also die einzelnen Abschnitte. Und die sind für sich eindeutig kein Kreisverkehr.

Kann mir nicht wirklich vorstellen wie das überhaupt gehen soll… Als Node. OK, logisch geht das natürlich aber dann haben wir keinen Kreisel mehr in der Karte wenn nicht zufällig der Renderer das “malen” von einem Kreisel in dem Fall unterstützt. Wie dem auch sein… Schick mir mal einen Link. Das möchte ich mir mal gerne anschauen.

Sorry, ich denke ich habe meine Aussage falsch ausgedrückt. Ich meinte, dass man den Kreisel als ein einzelnes Element (geschlossener way) in der Relation betrachten soll und nicht als echter node. Im Kontrast zu einem komplexen Netz an parallelen ways.

Im Wiki steht: Kennzeichne den/die OSM-Weg(e) des Kreisverkehrs mit junction=roundabout (in der deutschen Seite; in der englischen steht es sinngleich unter „How to map“). Ein Kreisel kann demnach in OSM sowohl ein einziger geschlossener Weg sein als auch ein (natürlich geschlossener) Ring aus mehreren verbundenen Wegen.

–ks

Ich fasse mal zusammen:

Ein Kreisel kann in OSM a) als ein einziger geschlossener Way abgebildet werden (junction=roundabout getaggt) oder b) als ein geschlossener Ring von miteinander verbundenen Einzel-Ways (von denen jeder einzelne junction=roundabout getaggt ist). Das steht eindeutig auf den Wikiseiten zu Key:junction=roundabout. Beides ist möglich, jedes hat seine Vor- und Nachteile.

Beim Anlegen einer Routenrelation kann ein teilweise durchfahrener Kreisel c) als Ganzes in die Relation aufgenommen werden, ohne einen technischen Fehler zu erzeugen. Dabei wird der Kreisel als Kreuzung betrachtet, nicht als Aufspaltung der Route. Der Kreisel kann aber auch d) in verbundene Ways aufgeteilt werden, um nur die durchfahrenen Abschnitte in die Relation aufzunehmen. Das steht in Wiki unter https://wiki.openstreetmap.org/wiki/Relation:route#Bus_routes_and_roundabouts. Auch hier: Beides ist möglich, jedes hat seine Vor- und Nachteile.

Über die Vor- und Nachteile lässt sich diskutieren. Aber keine der genannten Mappingmethoden ist per se „falsch“. Wer Andersdenkenden das unterstellt, hat unrecht (er/sie bleibt zumindest den Nachweis schuldig).

–ks

Es kann sein, dass es nicht falsch ist, wenn man alle Straßensegmente des Kreisverkehrs in die route aufnimmt, das sollte aber nur die simplen Fälle betreffen, wo man für Hin- und Rückweg dieselbe Relation hat. Ansonsten würde ich das eher als „falsch“ sehen, weil wir bei Routen in Segmenten denken (von node zu node) und nicht in Elementen (ways), daher werden die ways nach Erfordernis gesplittet. Dass die Auswerter in einfachen Situationen diesen „Fehler“ trotzdem lösen können heißt nicht, dass es auch formal richtig ist, könnte aber bedeuten dass man es so machen kann ohne dass es Probleme gäbe.

Es geht um Kreisel, die nicht segmentiert sind, also nur aus einem einzigen geschlossenen Way bestehen. Bei denen ist es kein Fehler, diesen Way komplett in die Route aufzunehmen, statt ihn zu segmentieren.

–ks

wieso kann man hier zuviel in die Route stecken? Mit dem Argument bräuchte man ja überhaupt keine highways mehr splitten für Routen relationen, außer in Ausnahmefällen. Einfach ein größeres Stück highway in die Route packen, was zuviel ist können die routen-Auswerter erkennen, und die ways bleiben schön lang.

Ein Dankeschön an Kreuzschnabel, der das Ergebnis in Bezug auf “richtige oder falsche Methode” wunderbar zusammengefasst hat: Beides ist möglich, beides ist richtig.

Bei der Diskussion sollten wir jetzt Aufwand und Nutzen und damit die Vorteile/Nachteile betrachten. Ich habe das in einer Tabelle zusammengetragen, weiß aber leider nicht, wie man das als Tabelle hier integriert, deshalb im folgenden als Fließtext :(. Untersucht sind verschieden Aspekte, mit folgenden Interpretationen:

Informationsgehalt: Der vermeintlich größere Informationsgehalt der gesplitteten Kreisel ist auch im ungesplitteten vorhanden, weil die zu einer Route zugehörigen Teile des ungesplitteten Kreisels eindeutig ermittelbar sind.
Nutzung: Nutzer, die auf einer detaillierten Darstellung des Verlaufs der Route innerhalb des Kreisels Wert legen, sind bei ungesplitteten Kreiseln darauf angewiesen, hierfür entweder ein Tool (Algorithmus, grafische Darstellung etc.) zu haben oder dies gedanklich selber zu machen.
Unabhängigkeit: Ungesplittet: Route und Kreisel sind völlig unabhängig voneinander. Änderungen an der Route können ohne Änderung am Kreisel durchgeführt werden, Änderungen am Kreisel ohne Änderung an der Route. Gesplittet: Große gegenseitige Abhängigkeit, z.B. bedeuten Strukturänderungen am Kreisel Strukturänderungen für alle Routen, eine neue Route bedeutet u.U. Strukturänderungen am Kreisel (und damit wieder aller Routen).
Erstellung: Ungesplittet: Es gibt genau einen Eintrag, ohne role. Gesplittet: Darstellung ist aufwändiger, sie erfordert fast immer mehr und detailliertere Einträge in der Route, sei es mehr ways, bei 2 Richtungs-Routen immer forward/backward role.
Wartbarkeit Kreisel alleine: Ungesplittet: Sehr einfach, man braucht nur die Tags am ganzen Kreisel verändern. Auch die Änderung von Zu-/Wegfahrten ist einfach. Gesplittet: Änderungen müssen an allen ways durchgeführt werden, dies ist fehleranfällig. Bei Änderung von Zu-/Wegfahrten ist u.U. die Struktur des Kreisels und damit alle Routen betroffen.
Wartbarkeit Route: Ungesplittet: Kein Wartungsaufwand, außer Kreisel rein/raus. Gesplittet: Wird eine Route durch einen Kreisel gelegt, muss der Kreisel u.U. weiter gesplittet werden (Seiteneffekt auf Kreisel). Damit alle anderen Routen betroffen. Viel Aufwand, sehr fehleranfällig (Seiteneffekt auf andere Routen).
Wartbarkeit übergreifend: Ungesplittet: Änderungen am Kreisel ohne Kenntnis der Routen möglich, ja generell ohne Kenntnis des abstrakten Routenkonzepts. Der Kreisel kann von Mappern geändert werden, die nichts von durchlaufenden Routen wissen. Selbst Zu-/Wegfahrten können ihren Eintrittsort in den Kreisel ändern (an einen anderen node gelegt werden), ohne dass die Route Schaden nimmt. Gesplittet: Die Wahrscheinlichkeit, dass eine Route in der Vergangenheit gestört wurde, ist sehr hoch. Wenn man diese dann wg. eines gesplitteten Kreisels korrigieren will, muss man u.U. erst mal vorsortieren, um überhaupt zu erkennen, wie die Korrektur betreffends des Kreisels durchzuführen ist.
Datenqualität: Ungesplittet: Große Simplizität, kein Verlust an Informationsgehalt. Gesplittet: Viel größere Fehleranfälligkeit, in der Konsequenz deutlich schlechtere Datenqualität im Bereich von Kreiseln/Routen. Es wird zusätzliche Komplexität in die DB gebracht, ohne einen höheren Informationsgehalt zu produzieren.

Wenn man das in eine Vorteile/Nachteile-Tabelle zusammenfaßt, dann ergibt sich folgendes Bild:

                                           Gesplittet            Ungesplittet

Informationsgehalt + +
Nutzung + o
Unabhängigkeit - +
Erstellung - +
Wartbarkeit Kreisel - +
Wartbarkeit Route – ++
Wartbarkeit übergreifend – ++
Datenqualität – ++

Die Vorteile des ungesplitteten Kreisels sind klar zu erkennen. Lediglich bei der Nutzung hat die gesplittete Variante die Nase vorn, aber auch da nur, wenn man nicht bereit ist, “den Rechner die Arbeit machen zu lassen”. Insbesondere die bessere Datenqualität sollte uns überzeugen, denn die ist doch das, was uns alle so stolz macht :sunglasses: :sunglasses: :sunglasses: .

Deshalb würde ich gerne ungesplittete Kreisel im Wiki als “preferred” definieren (gesplittete Kreisel bleiben explizit erlaubt, das würde zur Erklärung dazugehören). Gesplittete Kreisel sind erforderlich, sobald im Kreisel unterschiedliche Tags erforderlich sind, z.B. wg. Brücken etc… Mit diesem simplen statement machen wir es allen einfacher, die sich mit den Argumenten oben nicht auseinandersetzen wollen, sondern nur eine Empfehlung bekommen wollen, wie sie einen Kreisel mappen sollen. Vor allem aber erhöhen wir unsere Datenqualität …

Feedback ist ausdrücklich erwünscht, aber bitte nicht mehr zu “richtig oder falsch”, sondern nur noch, ob wir ungesplittete Kreisel als preferred definieren wollen. Denn das ist die Frage, die ich aufwerfen wollte.

Bicycle Tourer

Beim Kreisel kann der Rechner aus der Route eindeutig ermitteln, welcher Teil des Kreisels benutzt wird. Bei einem Wegstück, das “zu lang” ist, ist nicht klar, ob die Route hier einen “Abstecher” machen soll oder ob der “herausstehende” Teil weggelassen werden soll. Damit liegt beim herausstehenden Teil ein Informationsverlust vor, während beim Kreisel gesplittet wie ungesplittet derselbe Informationsgehalt gegeben ist.

Ich meine das jetzt wirklich nicht irgendwie böse, aber ich habe doch mittlerweile mehrmals erklärt, in welcher Denkweise es vollkommen logisch ist, Kreisel ungesplittet zu lassen. Wieso kommst du immer wieder mit „aber das ist doch falsch“?

Also nochmal:

Man kann den Kreisel als separate Straße betrachten, auf die man auffährt und die man später wieder verlässt. Also ähnlich wie eine Ringstraße um eine Stadt. Wenn man es so sieht, dann ist es nur logisch, diese Ringstraße so aufzuteilen, dass nur die durchfahrenen Teile in der Routenrelation sind. Da gebe ich dir vollkommen recht.

Man kann den Kreisel aber auch als Bauform einer Kreuzung und den Kreisel-Way als „erweiterten Kreuzungs-Node“ betrachten, was datenlogisch dadurch deutlich wird, dass dieser Way im Gegensatz zu normalen Straßen ein junction-Tag trägt. Wenn man es so sieht, dann ist es logisch, in jede darüber führende Route den gesamten Kreisel aufzunehmen, ohne ihn zu splitten, womit ausgedrückt wird: „es geht hier über den Kreisel“.

Dein Argument, dann braucht man ja gar nicht mehr aufzuteilen, sticht nicht, weil bei einer „normalen“ Abzweigung ein Router keine Chance hat, zu erkennen, wo die Route weitergeht (außer er schaut nach, unter Umständen kilometerweit, welcher der beiden Zweige tot endet). Bei einer Kreiselausfahrt muss er nur nachschauen, welcher der beiden Zweige junction=roundabout getaggt ist, und nimmt dann den anderen – denn da wird der Kreisel eindeutig wieder verlassen.

Außerdem entstehen – im Unterschied zum Nicht-Aufsplitten normaler highways – keine toten Enden, wenn Kreisel vollständig in Routenrelationen liegen, sondern es gibt einen weiterführenden Zweig und eine Rekursion. Wie gesagt, das Tagging macht an der Verzweigung schon klar, welches von beiden was ist.

Groschen jetzt gefallen? Es funktioniert technisch wie logisch einwandfrei.

–ks

PS: Sehe gerade in der Vorschau, Bicycle Tourer hat das um 06:56 auch schon geschrieben. Ich schicks trotzdem ab, dann hast du es zweimal :slight_smile:

Meine Zustimmung hast Du.

Grüße

Dafür.

–ks