Wegkreuzungen mit spitzen Winkeln

Was mir spontan auffällt ist die Formel, die du zur Berechung der Winkel benutzt hast. Wie du ja selbst in dem Artikel schreibst, liefert sie das gleiche Ergebnis, unabhängig davon, ob die Wege nahezu in der gleichen oder der entgegengesetzten Richtung liegen. Das liegt aber einfach nur an den Betragsstrichen im Zählen. Wenn du das | u * v | durch ein u * v ersetzt, kannst du die beiden Fälle einfach am Vorzeichen unterscheiden. Welches Vorzeichen nun welcher Situation entspricht, hängt davon ab, wie du u und v (zeigen die in Richtung der Einbahnstraßen oder immer vom gemeinsamen Knoten weg bzw. darauf hin?) definiert hast, aber das lässt sich ja leicht an ein paar Beispielen ausrechnen.

Ansonsten eine sehr gute Idee! Ich stimme hier völlig mit viw überein. Der Winkel alleine ist für einen Router keine hinreichende Information, ob man an dieser Stelle nun wenden darf / kann oder nicht. Dafür sollte man explizit eine Abbiegerelation hinzufügen, wenn es eben nicht geht.

Der erste Eintrag von Bonn-Pennenfeld ist ein Knoten in Bad Neuenahr-Ahrweiler, also ca. 20km entfernt. Daher stellt sich für mit die Frage wie die Zuordung der Städte zu den Problem-Kandidaten gemacht worden sind.

An dieser Stelle (B 267) kann ich auf Bing erkennen, dass der Mittelstreifen aufhört und ein durchgezogener Mittelstrich das Wenden verbietet. Jedoch würde ich hier vom Navi erwarten, das es das Kommando “bei nächster Gelegenheit wenden” ausgibt, der Fahrer sein Gehirn benutzt und würde hier keine Abbigerestriktion eintragen.

Weiterhin: wie oft wird diese Liste aktualisiert?

Wir sehen uns Dienstag am Stammtisch!

-trekki

Das Problem ist, dass du als Mensch denkst und die Situation nicht als Kreuzung erkennst. Für den Router ist das aber eine ganz normale Kreuzung, bei der man zwischen allen angrenzde Straßen frei wechseln kann, wenn es keine Restriction gibt.

Mit Winklen zu arbeiten dürfte unmöglich sein, da es durchaus möglich sein kann, dass eine normale Kreuzung einen solchen Winkel hat und man legal abbiegen könnte.

Daher ist so eine Restriction nötig.

In JOSM kannst Du die Objekte direkt anhand der ID laden. Menüpunkt Datei / Objekt herunterladen

Dann hier

Objekttyp (Knoten / Weg / Relation) auswählen, und die Objekt ID aus der Liste von user_5359 einfügen.

Wie dies in Potlatch funktioniert, kann ich nicht sagen. Ich nutze nur JOSM.

-trekki

Ja und nein: Ein Anweisung zum Wenden erwarte ich an solcher Stelle nur, wenn ich mich verfahren habe bzw. nicht den Anweisungen des Navi gefolgt bin. Dafür ist die Navi Anweisung “nächste Möglichkeit” notwendig.

Das mit dem Mitdenken ist aber immer wichtig. Siehe das Beispiel von viw: wenden mit dem LKW. Oder wie oft ist in der Zeitung ein Artikel, dass jemand der Anweisung vom Navi gefolgt ist und nicht mehr weiter konnte (LKW in den Weinbergen, PKW im Rhein etc.)?

Wobei es für die LKW Frage eine Möglichkeit gibt: except=psv / bicycle / hgv / motorcar in einer passenden Aufzählung einfügen und dabei hgv weg lassen.

-trekki

Die obige Möglichkeit ist mir durchaus bekannt, aber sie ist umständlich :wink:

Du musst unterscheiden, zwischen kann nicht und darf nicht wenden. Kann nicht, ist für uns irrelevant. Das muss der Fahrzeugführer selber vor Ort erkennen.

Wenn der Router eine Kreuzung erkennt, wird er dich wenden lassen, wenn es ihm nicht verboten ist und das nicht mit “bitte Wenden” sondern “links abiegen auf…”.

Wenn er an dieser Stelle nicht wenden darf, wird er dir nach der “Kreuzung” sagen, dass du wenden sollst, wenn du es kannst. Aber das ist dann die Sache des Routers.

Wihtig ist für uns, dass eine Unterschiedung von Aufspaltungen und Kreuzungen automatisch nicht präzise genug geht. Daher muss man als Mapper eine solche Stelle als Kreuzung betrachten und entsprechend der erlaubten Abbiegungen die Restrictions setzen. Hilfreich dafür ist das jOSM-Plugin GraphView, das die Router-Denke veranschaulicht.

Ist kann nicht für uns wirklich irrelevant? Immerhin taggen wir ja auch maximale Höhen und Breiten. Diese sind am einfachsten wenn man Verkehrsschilder hat. Aber auch sonst gibt es Schlüssel für Straßenbreiten etc. Wenn also OSM auch für ein Hgv Routing eingesetzt werden soll, dann ist ein kann nicht genau so wichtig wie ein darf nicht. Das ist ja auch die Unterscheidung bei Feldwegen oder Furten. theoretisch darf man da durch fahren. Es können aber eben nicht alle.

Jain.
Wenn es ein KANN NICHT geben sollte, dann gibt es dafür einen Grund und der ist dann wieder “relevant”. Diese Bedingungen muss dann der Router (oder wer auch immer) analysieren in Bezug auf seine Zielgruppe.

Kleines Beispiel: max-width vs width
max-width bedeutet: Wenn du breiter bist, darfst du nicht, unabhängig davon, ob es dafür einen physischen Grund gibt
width bedeutet: Der Weg ist so und so breit, entscheide ob du da lang kannst oder nicht.

Diese Formelverbesserung wäre theoretisch machbar, aber dann müsste man verschärft auf die Richtungen der Einbahnstraßen achten. Da die Werte für die Längenberechnungen vorliegen, ist dies nur (ein wenig mehr) CPU-Zeit, die einen auf die sichere Seite bringt.

Ich will Dich nicht enttäuschen, aber ich habe wirklich - wie beschrieben - nur place=city verwendet. Und Bad Neuenahr-Ahrweiler ist nunmal mit place=town getaggt.

Kommt mit Sicherheit, mir war erstmal an der Veröffentlichung der Liste gelegen. In der Zwischenzeit habe ich auch den Fehler bei der Verlinkung von Relation behoben.

In unserer lokalen E-Mailliste wurde auch noch der Hinweis gegeben, dass auch einige highway=pedestrian die Einbahnstraßen kreuzen. Ich werde versuchen, diese Positive False-Treffer weiter zu reduzieren, aber derzeit wird die Datenbank gerade mit frischen Daten geladen.

Auch wenn ich mir vorgenommen habe, mich nicht in die Diskussion Abbiegeverbotsrelationen einzumischen, möchte ich gerade zum diesem Beispiel

Stellung nehmen. Ein Router sollte eine Fahrer ermöglichen, seine Konzentration auf seine unmittelbare Fahrumgebung (andere Verkehrsteilnahmer wie Fahrradfahrer, …) zu lenken und darf z.B. nicht einen in die falsche Richtung einer Einbahnstraße schicken. Genauso sollte er Wendemanöver nicht anfordern, wenn die Wendemanöver durch bauliche (Bordsteinkante) oder farbliche (durchgezogener Mittelstreifen) theoretisch oder auch praktisch unmöglich gemacht werden. Hier sollte man m.E. eine Abbiegeverbotsrelation einsetzen. Aber dies kann man wirklich nur mit Vor-Ortskenntnissen (oder sehr guten Luftbilder) setzen.

Wenn der Router die fehlende Wendemöglichkeit erkennt, wird er möglicherweise großflächig anders routen. Und dazu ist die Kiste ja da, sonst würde es ja reichen, wenn das Ding die Himmelsrichtung zum Ziel angibt.

Baßtölpel

Das muss man nicht zwangsläufig. Wenn X der gemeinsame Knoten ist und A, B die jeweils ersten Knoten auf den beiden Einbahnstraßen, dann kann man einfach u = A - X und v = B - X setzen. In diesem Fall ist u * v > 0 wenn der Winkel spitz ist, und u * v < 0 wenn sich beide Straßen gegenüber liegen, und das unabhängig von der Richtung der Einbahnstraßen.

Aber wenn ich mich nicht irre, muss man ohnehin die Richtung der Einbahnstraßen berücksichtigen - oder wie erkennt das Programm sonst, ob es sich wirklich um zwei entgegengesetzt laufende Fahrbahnen handelt und nicht um eine sehr spitzwinklige Kreuzung mit Einbahnstraßen, die in die gleiche Richtung weisen? Oder wird dazwischen gar nicht unterschieden?

Doch genau da liegt das Problem ja. Meine jetzige Variante gefällt mir immer besser :slight_smile:

Übrigens gibt es jetzt auch die Möglichkeit entweder JOSM oder Potlach direkt anzuspringen.

Ich nutze in JOSM das Routing-Plugin und trage für alle solche Stellen Abbiegebeschränkungen ein.

Mathematisch ist das unmöglich zu lösen, wie ja geschrieben gibt es auch Abbiege-Wunsch-Stellen, die sich “von oben” nicht unterscheiden von Abbiege-Verbot-Stellen.

Hi,

als ich den thread zum ersten mal, fand ich das fuer eine gute Idee. Mittlerweile denke ich jedoch, dies ist “Mapping fuer die Routing-Software” (in Anlehnung an “Mapping fuer den Renderer”) und lass es ergo bleiben.
Mal abgesehen von praktischen Ueberlegungen (Moped fast immer, 38t seltenst, Kleinlaster vielleicht, vielleict aber auch nicht) ist das, was hier mit der Formel gemacht wird, genau das, was von der routing-software selbst gemacht werden koennte.

Dass i. A. Abbiegebeschraenkungen noch bessere Beachtung beduerfen, sehe ich auch so.

Ciao,
Frank

PS
Stand mal bei uns in Moegeldorf an ampelgesteuerten Autobahnausfahrt, vor mir ein Sattelschlepper. Gruen, Brummi faehrt los, schert kurz aus und faehrt den Parallelweg wieder zurueck auf die Autobahn. Ich denk mir: Wow, nie geglaubt, dass der rumkommt, geschweige denn in einem Zug!

Die Frage, ob es sich bei den beiden Einbahnstraßen um eine einlaufende und eine auslaufende handelt oder beide zum gemeinsamen Knoten hin bzw. davon weg führen, ist aber unabhängig von der Frage, ob der Winkel zwischen den Wegen spitz oder stumpf ist. Ersteres kann man nur herausfinden, wenn man sich die Richtung der Wege ansieht und prüft, ob sie als oneway=yes oder oneway=-1 getaggt sind. Zweiteres kann man ganz unabhängig davon mit der oben genannten Methode mit dem Vorzeichen herausfinden.

Im Prinzip sollte deine Methode natürlich auch funktionieren, sie kommt mir nur etwas aufwändiger vor - deshalb mein Vorschlag, einfach das schon vorhandene Vorzeichen als Unterscheidung zwischen spitzen und stumpfen Winkeln zu nutzen. Wenn deine Methode genau so gut funktioniert, ist das ja auch nicht falsch :wink:

Apropos, mich wundert etwas, wie sie z.B. bei diesem Knoten (gefunden in der Wolfsburg-Liste) auf 37.2° kommt - das sieht nun wirklich nicht aus wie ein spitzer Winkel…

Sicherlich kann der Router die Formel ausrechnen und ab einem Grenzwinkel sagen, Abbiegen ist nicht. Doch was nutzt das, wenn er keine Fehler erkennen kann. Also echte Kreuzungen, die in einem spitzen winkel auf einander treffen.

Tagen für die Router ist genauso wenig böse wie tagen für die Renderer. Schlimm ist tagen für einen Router bzw. Renderer. :wink:

Hi,

in diesem Fall ist es aber schon böse, da die StVO (IANAL) ein Wenden generell zulässt und wir hier “künstlich” ein Abbiege/Wendeverbot einführen, welches in der Realität nicht existiert.
Ob an einer bestimmten Stellen man tatsächlich wenden möchte, ist sehr variabel, mancher würde es tun, “die vorsichtige Omi” vielleicht nicht.
Vielleicht wäre es sinnvoller, spezielle tags für “Routing-Hilfen” einzuführen, damit es nich mit den “echten Wendeverboten” zur Kollision kommt.

Ciao,
Frank

Ein Wendeverbot muss nicht unbedingt mit einem Schild gekennzeichnet sein, das das Wenden verbietet. Eine durchgezogene Linie impliziert genau so ein Wendeverbot. Wenn man also an Stellen mit einer durchgezogenen Linie ein Wendeverbot taggt, ist das nicht “künstlich”, sondern entspricht ja gerade der tatsächlichen Situation. Sowas geht eben nicht aus dem Winkel hervor, in dem sich zwei Wege treffen.

Darum geht es nicht. Es geht genau um den Punkt an dem die drei wege zusammen gefuehrt werden. Dort ist das wenden wieder erlaubt, es soll aber als hint fuer die router kuenstlich verboten werden.

Mir ging es um solche eine Situation: http://www.websters-online-dictionary.org/images/wiki/wikipedia/commons/thumb/0/07/Verkehrsinsel.jpg/180px-Verkehrsinsel.jpg

Da darf man an der Zusammenführung der Wege nicht wenden.