Merkwürdiges Routing mit Navit und OSM, Fehleranalyse

Hallo zusammen,

Ich habe kürzlich versucht, mit Navit und OSM-Kartenmaterial von Münster nach Hannover zu fahren, aber das war nicht so toll.

Die korrekte Route wäre gewesen: A1 Richtung Bremen, am Kreuz Lotte-Osnabrück auf die A30, dann in Bad Oeynhausen auf die A2 Richtung Hannover.

Navit wollte mich über die A1 zum Kamener Kreuz und dort auf die A2 Richtung Hannover lotsen, was einen Umweg von ca 40 km bedeutet hätte. Ich bin dann trotzdem auf die A1 Richtung Bremen gefahren und habe gehofft, dass die Route irgendwann neu berechnet wird, aber nein: Bis kurz vor dem Kreuz Lotte-Osnabrück wollte Navit mich an jeder Ausfahrt von der Autobahn herunter- und in Gegenrichtung wieder hinauflotsen. Am Kreuz Lotte-Osnabrück sollte ich dann nicht auf die A30 wechseln, sondern weiter geradeaus bis Bremen und dann über die A27 und A7 bis Hannover fahren. Ich bin natürlich trotzdem auf die A30 gewechselt, und da begann das Spielchen an den Ausfahrten erneut. Bis kurz vor der Auffahrt auf die A2 in Bad Oeynhausen wollte mich Navit immer wieder zurücklotsen. Erst als es gar nicht mehr anders ging, wurde ich dann auf die A2 gelotst. Danach stimmte die Navigation dann aber, auch innerhalb Hannovers.

Dann habe ich die selbe Strecke mal mit Navit und Karten vom “Marco Polo Großer Reiseplaner 2006 / 2007” getestet, und siehe da, das Routing war von Anfang an korrekt und wie erwartet.

Ich vermute jetzt, dass in OSM irgendeine Stelle oder ein Streckenteil so getaggt ist, dass Navit sie als unpassierbar erkennt und um jeden Preis umfahren will, aber wie analysiert man sowas? Oder interpretiert Navit eine Information falsch, die es vielleicht in den Reiseplanerkarten überhaupt nicht gibt?

Möglicherweise hat ja jemand eine Idee, was Navit beim Navigieren so stört. Oder ist meine Frage eher etwas für den Navit-Support?

Hi,
hab’s mal gerade mit ZAnavi ausprobiert (Navit Fork für Androiden-Telefone):

Route geht von MS über Sendenhorst Richtung Beckum, dort auf die A2.

Um die fehlerhafte Stelle zu finden muss man sich mit dem Ziel halt “herantasten”.

Edit:

So weit getestet:

Ziel A2 bei Heeßen → via A30
Ziel A2 bei Bernsen → via A2

Sieht für mich nach einem Fehler in der Navit Routing-Engine aus, da der “Switch” zwischen beiden Routen
von einem Endpunkt abhängt der jeweils auf demselben OSM Way (5197173) liegt.

Diese Strecke habe ich getestet:

http://maps.google.de/maps?f=d&source=s_d&saddr=B475&daddr=A2&hl=de&geocode=FSGsGwMdLBd2AA%3BFY2_HAMdSfWLAA&mra=mrv&sll=52.214339,8.473206&sspn=0.91378,2.469177&ie=UTF8&ll=52.224435,8.418274&spn=0.913572,2.469177&z=9

B ungefähr am kritischen Punkt, wo er auf die komische 30 km längerere südliche Route umswitcht.

Grüße Chris

Hallo in der Welt von OSM und hier im Forum :slight_smile:

Prinzipiell würde ich eher Navit-Support sagen, da durchaus auch etwas bei deren OSM Daten-Konvertierung falsch laufen könnte. Ich weiß auch nicht mit welchen Kriterien deren Router funktioniert.

Was sagen denn unsere anderen Router zu deiner Strecke?
http://wiki.openstreetmap.org/wiki/Maps#Routing

Einfach das neuste Kartenmaterial nehmen und neu testen. Gibt genug Anfänger die im Kartenmaterial herumwursteln und “unbewusst” Fehler einbauen. Trift zwar meist Fußwege und Landwirtschaftswege, aber auch bei den Autobahnen wird herumgepfuscht… fällt nur oft schneller auf.

Die anderen Router berechnen die Strecke richtig, also scheint es am Zusammenspiel zwischen Navit und OSM zu liegen. Ich werde aber eine neue Karte herunterladen und es dann nochmal probieren.

Vielen Dank für die schnellen Antworten!

vielleicht ist es auch ein fehler der erst vor kurzem aufgetreten ist, und somit in den veralteten daten der anderen router noch nicht vorhanden war?

Mit den Standardeinstellungen hat Navit eine starke Präferenz für Autobahnen. Wenn ich das richtig sehe, muss man bei Bad Oeynhausen ein kleines Stück Bundesstraße fahren, um von der A 30 zur A 2 zu kommen. Das versucht Navit zu vermeiden und schlägt daher eine andere Route vor.

Das Problem mit dem Updaten der Route, wenn man die A 30 entlang fährt, könnte am Aufbau der Navit-Routing-Engine liegen. Die ist so konstruiert, dass sie möglichst ressourcenschonend arbeitet. Daher lädt sie beim Aktualisieren der Position nur einen kleinen Kartenauschnitt rund um die aktuelle Position ein und versucht, die Route innerhalb dieses Ausschnitts neu zu berechnen. Wenn dabei die alte Route wiedergefunden wird, wird auf diese zurück gelotst, statt eine komplett neue Route zu berechnen. Das spart Rechenzeit, kann aber auch zu solchen Problemen führen.

Oft ist es am besten, bei solchen Dingen mal die Entwickler anzusprechen (am besten über IRC, Channel #navit im Freenode-Netzwerk), die sind sehr hilfsbereit und haben mir auch schon bei solchen Problemen weitergeholfen. Allerdings habe ich auch den Navit-Quellcode runtergeladen und kompiliere es selbst, da kann man einfacher “mal eben schnell” was am Quellcode verändern und die Auswirkungen testen…

Ganz etwas ähnliches ist mir gestern auch mit ZANavi passiert. Nachdem ich ca. 100km richtig auf der Autobahn unterwegs war, wollte mich das Navi ab etwa hier (http://www.openstreetmap.org/?lat=47.4219703674316&lon=8.39784622192383&zoom=13) Richtung Zürich immer ab der Autobahn zur nächsten Auffahrt lotsen. Ich vermute, dass in der Gegend irgend etwas das Routing aus dem Tritt bringt.

wyo

So, ich habe jetzt mal eine Karte frisch heruntergeladen und ein bißchen herumgespielt.

Navigiere ich von Osnabrück nach Wunstorf, geht es korrekt über die A30 und durch Bad Oeynhausen auf die A2.

Navigiere ich von Osnabrück nach Gümmer (das ist eine Abfahrt weiter auf der A2 als Wunstorf), geht es auch erst auf die A30, dann aber an der Abfahrt Kirchlengern von der Autobahn runter, über die B239 an Herford vorbei und dann auf die A2. Ein Umweg von 14 km.

Das verstehe wer will, da beide Strecken nahezu identisch sind. Und auch eine Präferenz für Autobahnen kann ich da nicht sehen.

Aber das ist wohl wirklich ein Thema für den Navit Support.

Hm… Letzteres könnte daran liegen, dass Navit die Routenberechnung am Ziel beginnt. Wenn man also das Ziel etwas anders wählt, wird anfangs ein anderer Kartenbereich geladen, auf dem dann die Route gesucht wird. In bestimmten Fällen kann es dann vorkommen, dass ein bestimmter Node mal in dem Bereich drin ist und mal nicht, und deshalb nur manchmal beim Routing berücksichtigt wird.

Ich werde die Leute mal darauf hinweisen, dass man den Kartenausschnitt fürs Routing vergrößern sollte (in meiner selbst kompilierten Version habe ich genau das gemacht), oder zumindest eine solche Option in die navit.xml einbauen.

Ah, das erklärt das von mir beobachtete Verhalten.

Das wäre klasse.
Chris

Hi, kannst Du mir per PM die source und die Stelle im Programm nennen die man ändern muss, Danke.

Das erklärt mir aber immer noch nicht, warum in beiden Fällen (Navigation von Osnabrück nach Wunstorf bzw nach Gümmer) die Navigation mit Navit und Karten vom “Marco Polo Großer Reiseplaner” richtig durch Bad Oeynhausen geht.

Die Größe der Kartenausschnitte müsste doch unabhängig vom verwendeten Kartenmaterial sein, oder?

Hm… Da bin ich nicht sicher. Das Laden von Kartenbereichen geht über ein Plugin für jeden Kartentyp, d.h. es gibt ein Plugin für Navit-Karten und eines für Reiseplaner-Karten. Es kann gut sein, dass die verschiedenen Karten unterschiedliche “Kachelgrößen” haben und diese Plugins deshalb unterschiedlich große Bereiche laden.

Davon abgesehen kann es sein, dass die Übersetzung von Reiseplaner-Straßentypen in Navit-interne Typen eine andere ist als die Übersetzung von OSM nach Navit-intern, und dass Navit deshalb die Bundesstraße um Bad Oeynhause mit der Reiseplaner-Karte nicht so stark abwertet wie bei der OSM-Karte. Was ist denn das für eine Straße - ist die mehrspurig? Zeichnet Navit sie auf der Reiseplaner-Karte anders als auf der OSM-Karte?

2 spurige Bundesstraße.

Das könnte den Unterschied erklären - auf der OSM-Karte wird die vermutlich durch einen anderen (kleineren) Navit-Straßentyp repräsentiert als auf der Reiseplaner-Karte und deshalb eher vermieden.

Das sieht mir eher umgekehrt aus.

Auf der OSM-Karte ist es durchgehend eine zweispurige Bundesstraße, und auf der Marco-Polo-Karte ist es (aus Richtung Hannover) bis zur Ecke Mindener Str. / Zum Rehmer Eck eine zweispurige Bundesstraße und wird dann (zumindest von der Darstellung her) zum selben Straßentypen wie Zum Rehmer Eck (Minor Road).