[OSRM]Seltsames Routing

Guten Abend,

ich bin leider nicht fit genug, um die Probleme zu finden:
http://osrm.at/1Cq
Die schnellste Route sollte von der A3 Richtung Regensburg direkt auf die A9 Richtung München sein (am Kreuz Nürnberg).
Kann sich das bitte jemand ansehen?

http://osrm.at/1Cr
Hier sollte man nicht erst auf die A6 fahren.

Seltsam ist, dass das Problem verschwindet, wenn man Start- und/oder Endpunkt ändert.

Peter Pablo

Das scheint nur ein sehr kurzfristiges Problem gewesen zu sein - sobald ich deine Strecken neu route (z.B. zweimal “Umdrehen” klicken), bekomme ich die Strecke über die A73 für den Hinweg und die A9/A3 für den Rückweg - A9/A3 funktioniert auch auf dem Hinweg, wenn man einen Punkt auf der A3 vorgibt. Die beiden Routen scheinen sich nur im Sekundenbereich zu unterscheiden, deswegen der Unterschied.

Das liegt vermutlich an halb-korrekten und/oder halb vollständigen max-speeds.

Der Weg durch die Stadt - A73 - ist definitiv langsamer.
Halb sechs frueh mag er noch gehen, ansonsten steht man “An den Rampen”.

Jo, das ist leider schwierig von außen zu entscheiden. Wäre cool, wenn man so etwas wie Durchschnittsgeschwindigkeiten hätte. Dann wäre das alles ein Klacks :wink:

Von der Routing-Variante “A” abgesehen verstehe ich die jeweiligen Umwege auf den Autobahnen nicht. Ich kann die Situation auch nicht für andere Start-/Zieladresse nachstellen.

Bezüglich erwarteter Durchschnittsgeschwindigkeit könnten wir eine Tagging-Diskussion starten :wink: Theoretisch ließe sich aus GPS-Tracks eine solche Geschwindigkeit rechnerisch (für Wegabschnitte) ermitteln, wenn beim Spur-Upload zumindest das Fortbewegungsmittel mitgeteilt wird. Ich vermute, dass man auch mit ein wenig Logik (z.B. Schwellwert für Maximalgeschwindigkeit [1]) PKW-GPS-Tracks identifizieren kann.

[1] Pseudo-Code: if max(gps_speed_values) > pkw_threshold then vehicle_type = ‘pkw’ wobei pkw_threshold beispielsweise zu 90 km/h gewählt werden könnte

oder wir könnten akzeptieren, dass erwartete Durchschnittsgeschwindigkeiten nichts in der OSM-Datenbank zu suchen haben…

In dem Fall eher am maxspeed=signals-Handling von OSRM, weswegen für die Strecke A9/A3 eine viel zu niedrige Geschwindigkeit rauskommt.

Wird maxspeed überhaupt berücksichtigt, d.h. greifen nicht eh immer die vordefinierten Durchschnittswerte unabhängig davon, was in maxspeed steht?

Ein explizites “signals” Handling habe ich jedenfalls nicht gefunden. Siehe car.lua, Zeilen 12-33 und 160-174. Weil “signals”, ebenso wie “none” keinen numerischen Wert enthält, liefert parseMaxspeed wohl zunächst 0 und damit später ebenso den Durchschnittswert 90km/h für motorway und 75 für motorway_link. So interpretiere ich das ganze.

Vielleicht kann Dennis das kommentieren?

Ich hatte 90 für maxspeed=signals in Erinnerung, aber anscheinend ist das dann doch der Defaultwert für motorway – der dann m.E. deutlich zu niedrig ist.

Das Problem kenne ich übrigens aus München – http://osrm.at/1DF – die Route sollte über die A99 um München herum gehen.

Eckhart

naja, ist immerhin 10 km länger, da muss man schon einen schnellen BMW haben. :wink:
Mein Nüvi will links herum (A99 - A96- A995)

Nicht unbedingt. Auf der Route durch die Stadt ist höchstens 60 km/h erlaubt, die Autobahn lohnt sich schon allein deswegen. MapQuest Open und Google routen beide über A 99.

So allgemein kann man das nicht sagen. Ich bin auf dieser Autobahn schon oft genug gefühlt ewig im Stau gestanden - und das nicht nur tagsüber. Durch die Stadt übrigens auch …

Natürlich gibt es Situationen, in denen durch die Stadt schneller geht, es geht mir hier um eine allgemeine Aussage. Wenn (wie gestern) weder in der Stadt noch auf der A 99 was los ist, geht Autobahn deutlich schneller, allein durch die (fehlenden) Geschwindigkeitsbeschränkungen und Ampeln.

Das klingt so, als sei maxspeed=signals sinnvoll parsebar. So lange nicht klar ist was auf besagten signals steht, ist die Angabe nicht zu gebrauchen. Also bleibt einem nicht viel anderes übrig als zu raten. Viel interessanter als maxspeeds sind übrigens Durchschnittsgeschwindigkeiten.

Die erwartete Geschwindigkeit auf A9/A3 kommt mir nicht zu niedrig vor. Ich denke eher umgekehrt, dass die Geschwindigkeit, die durch die Stadt angenommen wird viel zu hoch ist. Z.B. finde ich auf der 1DF Route auch trunks mit fehlender maxspeed Angabe oder eben den unklaren maxspeed=signals tag: http://www.itoworld.com/map/124#fullscreen&lat=48.15213791101046&lon=11.599933425289493&zoom=13

Ja, maxspeed wird berücksichtigt.

Ja, maxspeed=signals wird keiner bestimmten Geschwindigkeit zugeordnet.

Ja, Stadtgeschwindigkeiten werden meist zu hoch berechnet.

Primary’s mit maxspeed=50 dürften AVG eher 30 sein.
Und wenn kein maxspeed angegeben ist kann man die Berechnung eh vergessen (primary default 70 km/h oder so).

Traffic-signals Penalties sind eine Möglichkeit, aber das macht OSRM ja bereits.

Problem : Es werden einzelne Ampeln und keine Ampelanlagen gemappt. Bei Dual-Carriageway Kreuzungen mit Ampel
in jedem der 4 Schnittpunkte hat man so zwischen 1 und 3 Ampeln im Weg, je nachdem wie man abbiegt. :wink:

Jep, aber es läuft immer wieder drauf raus, dass man gerne Durchschnittsgeschwindigkeiten hätte und diese eben durch allerlei Tricks versucht nachzubauen.

Hallo Dennis,

danke für die Rückmeldung! So ganz verstehe ich das aber nicht mit dem “maxspeed wird berücksichtigt”. Wie ich weiter oben schon bemerkte, habe ich eher den Eindruck, dass maxspeed keine Rolle spielt und nur die Default-Werte pro highway-Typ gezogen werden.

Um das ganze näher zu analysieren, habe ich mir den aktuellen git-Zweig heruntergeladen und ein paar Debug-Infos in das “Car”-Profil eingebaut. Damit werden die relevanten Diagnoseinformationen gleich bei der Datenaufbereitung ausgegeben.

Das Ergebnis:

  • Am Beispiel der highway=motorway Wege sieht man, dass Wege mit maxspeed={50,60,80,90…} getaggt wurden. Einzelne maxspeed=0 deuten wohl darauf hin, dass hier ein maxspeed=none oder maxspeed=signal getaggt wurde, was aber in der Verarbeitung unberücksichtigt bleibt.

  • Da der Parameter take_minimum_of_speeds auf “false” gesetzt wurde, werden diese Werte allesamt umgedeutet zu “inf” (=unendlich).

  • Im letzten Schritt wird dann das Minimum von unendlich und der Default-Geschwindigkeit von 90 km/h ermittelt und der Motorway mit diesem Wert (90 km/h) bewertet.

Bei den anderen highway-Typen sieht das ähnlich aus.

[+] motorway: maxspeed=0 → inf → on way: 90
[+] motorway: maxspeed=100 → inf → on way: 90
[+] motorway: maxspeed=110 → inf → on way: 90
[+] motorway: maxspeed=120 → inf → on way: 90
[+] motorway: maxspeed=130 → inf → on way: 90
[+] motorway: maxspeed=50 → inf → on way: 90
[+] motorway: maxspeed=60 → inf → on way: 90
[+] motorway: maxspeed=80 → inf → on way: 90
[+] motorway: maxspeed=90 → inf → on way: 90

Habe ich da etwas übersehen (d.h. es gibt noch andere Stellen, die die Maximalgeschwindkeit beeinflussen), oder läuft map.project-osrm.de mit einer anderen Konfiguration als das car.lua aus dem git Repository?

Danke für die Aufklärung :slight_smile:

Gruß,

[1] print("[+] " … highway … “: maxspeed=” … orig_maxspeed … " → " … maxspeed … " → on way: " … way.speed)
noch bevor maxspeed geändert wird: local orig_maxspeed = maxspeed

maxspeed:signals ist auch aus meiner Sicht keine gute Idee.

Wo findest du da trunks mit fehlender maxspeed-Angabe?