Routing in Lüneburg

Hallo,

in Lüneburg habe ich ein (Car) Routingproblem mit OSRM/Graphhopper, OSRM findet keine und Graphhopper eine definitiv falsche Route zwischen 2 Adressen einer Straße.

Das scheint eine einigermaßen verwirrende Situation dort zu sein :wink: - Bollards, Oneways, ect pp. Allerdings finden Mitbewerber Routen, wenn auch teilweise falsch, wenn man unseren Daten anschaut.

OSM: https://www.openstreetmap.org/directions?engine=osrm_car&route=53.24845%2C10.40311%3B53.24837%2C10.40303
Bing: https://www.bing.com/maps?osid=f6119cfc-f0bd-495c-908e-d5c02c870e66&cp=53.24829~10.396263&lvl=16&v=2&sV=2&form=S00027
Here: https://wego.here.com/directions/drive/Untere-Ohlingerstra%C3%9Fe-19,-21335-Lunenburg,-Deutschland:loc-dmVyc2lvbj0xO3RpdGxlPVVudGVyZStPaGxpbmdlcnN0cmElQzMlOUZlKzE5O2xhbmc9ZGU7bGF0PTUzLjI0ODU2MTg1OTEzMDg2O2xvbj0xMC40MDMxNDk2MDQ3OTczNjM7c3RyZWV0PVVudGVyZStPaGxpbmdlcnN0cmElQzMlOUZlO2hvdXNlPTE5O2NpdHk9THVuZW5idXJnO3Bvc3RhbENvZGU9MjEzMzU7Y291bnRyeT1ERVU7ZGlzdHJpY3Q9THVuZW5idXJnO3N0YXRlPUxvd2VyLVNheG9ueTtjb3VudHk9THVuZW5idXJnO2NhdGVnb3J5SWQ9YnVpbGRpbmc7c291cmNlU3lzdGVtPWludGVybmFsO25sYXQ9NTMuMjQ4NTM4OTcwOTQ3MjY2O25sb249MTAuNDAzMjA5Njg2Mjc5Mjk3/Untere-Ohlingerstra%C3%9Fe-27,-21335-Lunenburg,-Deutschland:loc-dmVyc2lvbj0xO3RpdGxlPVVudGVyZStPaGxpbmdlcnN0cmElQzMlOUZlKzI3O2xhbmc9ZGU7bGF0PTUzLjI0ODMyOTE2MjU5NzY1Njtsb249MTAuNDAzMTI5NTc3NjM2NzE5O3N0cmVldD1VbnRlcmUrT2hsaW5nZXJzdHJhJUMzJTlGZTtob3VzZT0yNztjaXR5PUx1bmVuYnVyZztwb3N0YWxDb2RlPTIxMzM1O2NvdW50cnk9REVVO2Rpc3RyaWN0PUx1bmVuYnVyZztzdGF0ZT1Mb3dlci1TYXhvbnk7Y291bnR5PUx1bmVuYnVyZztjYXRlZ29yeUlkPWJ1aWxkaW5nO3NvdXJjZVN5c3RlbT1pbnRlcm5hbDtubGF0PTUzLjI0ODM1OTY4MDE3NTc4O25sb249MTAuNDAzMDUwNDIyNjY4NDU3?map=53.24883,10.40415,17,normal&avoid=carHOV

Mag mal jemand mit Ortskenntnis da nachschauen, ob die highways in dem Bereich korrekt getaggt sind? Kann ja nicht sein, dass man aus einer Straße rauskommt, aber nicht mehr rein :wink:

Gruß, Frank

Erstmal würde ich das access:conditional von der Neuen Sülze (nicht Straße) rausschmeißen. Das sperrt auch Fußgänger aus.

Ansonsten schaue ich mal, wie man dort hinkommen soll.

Hab geguckt. So wie derzeit getaggt, kann man tatsächlich nicht legal von Punkt A zu B kommen. Die einzige Zufahrt über die Straße “Bei der St. Lambertikirche” hat ein motor_vehicle=no und wird nur zwischen 19 und 3 Uhr durch motor_vehicle:conditional mit “yes” überschrieben. Soweit das auch vor Ort so steht, dürfte das richtig sein und der Router macht nichts falsch (der kann ja die aktuelle Uhrzeit nicht wissen…)

Graphhopper und OSRM eliminieren Kanten am Rande des Graphen, die nur in eine Richtung befahrbar sind (sogenannten Quellen und Senken). Die Untere Ohlingerstraße ist deshalb im Graphen nicht enthalten. Siehe dazu den OSMI.

Danke erstmal fürs reinschauen.

Hm. Wenn ich innerhalb des oneway fahren kann (https://www.openstreetmap.org/directions?engine=osrm_car&route=53.24810%2C10.40284%3B53.24849%2C10.40308#map=19/53.24828/10.40298), muß die Kante ja im Graph enthalten sein?

Mag ich in die Untere Öhlinger Straße rein, gehts wieder nicht (https://www.openstreetmap.org/directions?engine=osrm_car&route=53.24800%2C10.40279%3B53.24849%2C10.40308#map=17/53.24934/10.40404), obwohl ich da keinen Grund in den OSM-Daten finden kann, der das Abbiegen verbieten würde.

Ich hab auch nochmal bei Mapillary geschaut und laut Mapillary ist das derzeitige Tagging falsch. Die Sperrung der Straße “Bei der St. Lambertikirche” beginnt laut Mapillary erst hinter der Kreuzung mit der Salzbrückerstraße, das heißt in die Straße dort kommt man noch legal rein. Bei solchen Kreuzungen ein häufiger Taggingfehler, der mir nicht das erste Mal begegnet ist.

Würde man die Straße auftrennen und das motor_vehicle=no aus dem ersten Segment rausschmeißen, wäre wohl auch Routing wieder möglich. Lässt sich natürlich schwer ausprobieren, wegen dem replication-lag von OSRM und Graphhopper.

und somit

+1

Ohne die Situation näher betrachtet zu haben würde ich empfehlen, das ganze umzudrehen:
motor_vehicle=no
motor_vehicle:conditional = yes @ (19:00-03:00) no @ (03:00-19:00)
Negative access-Werte sollten nach möglichkeit untergeordnet werden, damit auch Router, die damit nciht umgehen können, eine Route erstellen können.
Nebenbei erstpart das einen Schlüssel und ist damit übersichtlicher :wink:
Grüße

So habe ich das mal gemacht, hoffentlich richtig. https://www.openstreetmap.org/changeset/55943997

Schein korrekt zu sein. Werde das hier mal als Punkt bein nächsten Mappertreffen eintragen.

Vielen Dank, Prince Kassad. Durch die “Entsperrung” des Teilstückes kann man die Untere Ohlingerstraße wieder erreichen.

https://www.openstreetmap.org/directions?engine=osrm_car&route=53.24845%2C10.40311%3B53.24837%2C10.40303#map=15/53.2454/10.4012

Edit:

Und das habe ich eben auch durchgeführt. https://www.openstreetmap.org/changeset/55960358

Einspruch.

Ich bin der Meinung, die “conditional” Logik sollte die Ausahme abbilden, und das gewöhnliche Tagging den Standardfall.

Und hier ist die nächtliche Erlaubnis ja doch eher die Ausnahme.

Hab’ kürzlich erst den alten Elbtunnel in Hamburg diesbezüglich “umgedreht”, weil wenn man ohne touristische Absicht durch Hamburg fährt und dann davor steht und liest, dass der jezt ausnahmsweise nicht befahrbar ist, weil es zufällig nicht werktags 13-16 Uhr ist, dann ist das blöd.

Gibt nämlich tatsächlich Router, die conditional-tags nicht können, und bei einem bin ich da selbst schuld dran…

Gegeneinspruch.

Es gibt einige Anwendungsfälle, bei denen man einfach wissen möchte, wie man zu einem bestimmten Punkt kommt, unabhängig davon, ob man diese Strecke zur Navigation benutzt. In obigem Fall war es einfach so, dass man, egal welche Uhrzeit, gar keine Route zu einer bestimmten Adresse bekommt, weil z.Z. die Router auf der OSM-Seite keine conditionals auswerten - das kann nicht im Sinne von OSM sein. Dass die Router diesbezüglich noch viel lernen müssen, ist eh klar.

Und selbst wenn die Router damit umgehen werden können, dann müßte man immer die Uhrzeit/Wochentag/… angeben, wann man da durch möchte. Möchte man einfach Dauer und Distanz haben, gibt man in der Regel keine Uhrzeiten vor. Die Router sollten in diesen Fällen eine Warnung (wie auch immer, in den Steps z.B. “Achtung, Einfahrt wochentags nur von 09-19 Uhr”), ausgeben, aber ein Routing grundsätzlich immer ermöglichen.

Meine Meinung.

Gruß, Frank

Welche OSM basierten Router werten denn access:conditional aus?

Graphhopper wertet sie aus, hat aber Einschränkungen. Er beachtet sie beim Import des Graphen, prüft aber nur, ob man momentan die Kante befahren darf. Ich habe nur flüchtig in den Quellcode geschaut, um herauszufinden, wie man es ausschalten kann, damit einer unserer Kunden momentan gesperrte Straßen routen kann.

Ansonsten einfach mal nach “conditional” im Quellcode-Repository des jeweiligen Routers suchen.