schnelles Routing unterwegs

Moin,
ich nutze OSMand recht intensiv auf einem Android-Smartphone und seit geraumer Zeit können auch längere Strecken (> 100km) offline seitens der Software geroutet werden.
Soweit alles gut, aber mit den Möglichkeiten steigen ja bekanntlich auch die Begehrlichkeiten.
Mit meinem bisherigen Smartphone, einem Samsung S4 active mit vier 1.9GHz-Prozessorkernen braucht eine Strecke über 5 Bundesländer bei etwa 430 km Streckenlänge über eine Minute Rechenzeit - und das ist mir zu lange.
Nun habe ich seit ein paar Tagen ein Samsung S5 neo mit acht 1.6Ghz-Kernen; die Rechenzeit halbiert sich mit diesem Gerät auf etwa 30 Sekunden - auch nicht so wie erhofft …
Der freundliche Verkäufer war mit meiner konkreten Nachfrage nach der Rechenleistung überfordert - und da kommen ja viele Randbedingungen zusammen, so dass irgendein Benchmarktest auch nicht viel aussagt - und bat mir daher an, ich könne bei Nichtgefallen das S5 auch umtauschen - z.B. gegen ein Xperia Z3+ mit 4x 1,5Ghz und 4x 2.0GHz-Kernen (gegen Zuzahlung).
Das Ganze mag nun vielleicht unter die Kategorie “Luxusproblem” fallen, aber für einige ist es vermutlich ebenfalls interessant, welche Art Hardware (Octacore, big.LITTLE-Prinzip) am besten für solch rechenintensiven Aufgaben geeignet ist.

Daher die Fragen:
a) Hat jemand einen Tipp, wie man sich dem Problem außer Ausprobieren nähert (denn mit Ausprobieren hätte ich am Ende eh das teuerste Gerät ‘am Hals’, das nicht zwangsläufig das beste sein wird und das ich dann auch gleich hätte nehmen können).
b) Weiß jemand, ob sich der OSMand-Thread überhaupt zeitgleich auf meherer Kerne aufteilen läßt oder hilft hier nur eine hohe Taktfrequenz und gute Peripheriehardware eines (freien) Kernes ?
c) Hat jemand Lust, z.B. die Stecke Lübeck - Bad Arolsen (oder eine andere - diese könnte ich dann ja nachrechnen) mal mit OSMand offline zu routen und die tatsächlicher Rechenzeit seiner Hardware mitzuteilen … ?

Grüße aus Lübeck
Rainer

Hi,

HTC One Mini: Ca. 1 Minute.

Du kannst auch Online-Services zur Routenberechnung in Osmand nutzen.

Navigator (Mapfactor) braucht auf meinem alten HTC One S für die Offline-Berechnung von Lübeck nach Bad Arolsen genau 8 Sekunden (Erstberechnung). Für mich mehr als ausreichend schnell. :wink:

… mit einem extrem hirarchichen Modell. Da musst Du auch mal in der falschen Richtung das Wohngebiet verlassen, um 10m kürzer die Hauptstrasse zu erreichen. Und lustig wirds, wenn Du das Strassen-Sperren Feauture verwendest: da sperrt eine Sperre auf einer Haupstrasse in einem Dorf auch mal das komplette Dorf.

Was sagt uns das? Dass die Diskussion um Routing-Performance erstens keinen Sinn macht, weil man erst auf den zweiten Blick erkennt, dass jemand vom Apfel im Paradies gegessen hat, und dass zweitens die algorithmischen Lösungen schlagkräftiger sind, als es Hardware jemals rausreissen kann.

@abrensch: Volle Zustimmung, die Algorithmen spielen hierbei die entscheidene Rolle. Und jeder Algorithmus hat situationsabhängig Vor- und Nachteile. Fürs Auto nutze ich Navigator, ist für mich völlig ok. Gelegentlicher Unsinn wird ignoriert, die Berechnung erfolgt ja dann automatisch neu. Das funktioniert gut.
Für MTB-Touren und Wanderungen ist BRouter ideal. Danke dafür! Funktioniert mit Locus und Oruxmaps sehr gut.

Ich meine mal in den letzten Wochen gelesen zu haben, dass Osmand immer nur einen CPU-Thread verwendet, auch wenn mehrere zur Verfügung stehen. Quelle finde ich jetzt gerade nicht.

Für Strecken über 200 Kilometer tendiere ich zu den ZAHLREICHEN anderen kostenlosen OSM basierte Offline-Routern,

wie Magic Earth, BeOnRoad, Scout (von Skobbler), EB-Dirigo, Mapfactor navigator free, Navit, ZANAvi etc. … welche vergessen?

Such dir einen aus!

OsmAnd verwendet mehrere Threads (z.B. für UI, Service, Rendering, Routing).
Allerdings laufen sowohl Rendering als auch Routing nur in jeweils einem eigenen Thread.
Das Rendering lässt sich relativ einfach auf mehrere Threads aufteilen, das wollen die Entwickler wahrscheinlich auch umsetzen.
Beim Routing ist die Sache etwas komplizierter, da in diesem Fall bei einer Aufteilung in mehrere Threads ständig ein Austausch von Informationen zwischen den Threads (und damit den CPUs) erfolgen muss.
Dieser Informationsaustausch ist ziemlich teuer (braucht relativ viel Zeit).

Für das Routing helfen also mehr CPUs nicht weiter.

Gruß,
Mondschein

Samsung Galaxy Tab3 Lite: 2:30. Deine Zeit ist also noch super!

Mit Zwischenpunkt bei Hannover 1:15

Beim Setzen von Zwischenpunkten ist die Nutzung mehrerer CPUs durch “Verteilen” der Teilrouten durchaus möglich.

Wobei Osmand und Zwischenpunkte so eine eigene Baustelle sind. Beim Garmin wird der Zwischenpunkt verworfen, wenn er passiert wurde oder wenn der nächste Zwischenpunkt günstiger erscheint. Das ist besonders dann vorteilhaft, wenn aus irgendwelchen Gründen von der Route abgewichen wurde. Bei Osmand wird auf dem Zwischenpunkt bestanden. Wenn er nicht in kürzestem Abstand passiert wurde, routet Osmand penetrant zum Zwischenpunkt zurück, bis man den Zwischenpunkt manuell löscht. Das ist während der Fahrt extrem nervig.

Mit den Berechnungszeiten, Abstürzen und den Zwischenpunkt-Problemen kann man Osmand derzeit nicht als praxistaugliche Lösung empfehlen.

Ich habe immer das Problem, daß Osmand immer auf der einmal berechneten Route beharrt. Selbst 100 Meter vor dem Ziel will es mich noch mal auf die Autobahn leiten, damit ich dann von der anderen Seite komme. Nein, die OSM-Daten sind dort nicht fehlerhaft. Und ja, ich habe irgendwo in den Menütiefen “Neuberechnung” ausgewählt.

Keine Ahnung ob das vielleicht an meiner schwachen CPU liegt.

Christian

Das wäre natürlich möglich.

Abgestürzt ist es mir noch nie.
Die Berechnungszeiten sind bei mir meistens kein Problem, da ich eher kürzere Strecken zurücklege, meist mit dem Fahrrad oder zu Fuß.
Damit die Zwischenpunkte verschwinden, muss man diesen wirklich ziemlich nahe kommen, das gefällt mir auch nicht.
Fürs Mappen finde ich OsmAnd sehr gut (Mapper Assistent, OSM Notes, Live-Updates, Anzeige von Luftbildern/fremdes Kartenmaterial als Hintergrund).

Ich meine mich zu erinnern, dass es da einige Änderungen gab.
Kann aber sein, dass diese erst nach dem letzten Release vorgenommen wurden, also derzeit nur in den Nigthly-Builds verfügbar sind.
Bei Abweichung von der Route werden immer die ersten 20 (oder waren es 30?) Kilometer neu berechnet, weicht man dann mehrfach von der teilweise neu berechneten Route ab, so wird irgendwann die komplette Route neu berechnet.

Gruß,
Mondschein

Das hierarchische Modell ist aber sehr flexibel. Default sind nämlich alle highway=unclassified und darunter so eingestellt, dass sie nur verwendet werden, wenn das Ziel über diese auf der “last mile” erreichbar ist. Spiel mal ein wenig im Fahrzeugprofil unter Straßenbeschränkungen. unclassified und darunter steckt hinter “Gemeindestraße” in der deutschen Fassung. Allerdings kann es dir dann wie mir auf Kreta passieren, dass du plötzlich durch Gassen fährst, in denen vor dem Kafenion die dort sitzenden älteren Herrschaften erst ihre Tische und Stühle beiseite schieben müssen, damit du durchkommst.

Unclassified gehört aus meiner Sicht separat über residential eingeordnet. Leider gelingt es bei Mapfactor nicht, die unclassified als eigene Klasse zu definieren. Ich muss da wohl noch mal nachbohren.

Edit zur Klarstellung:
der Ausschluss der unclassified vom routing erfolgt natürlich nur wenn man den Optimierungsmodus “Schnellste” im Fahrzeugprofil gewählt hat und nicht die “first or last mile” dadurch führt. Bei Fahrzeugmodus “Kürzeste” geht es queerbeet.

Hmmm, bisher alles eher ernüchternd !

OSMand verwende ich gerne wegen dem tollen Rendering, den zahlreichen Parametern zum konfigurieren und - das ist das Wichtigste für mich - dem OSMandMapCreator, mit dem ich mir jeden beliebigen Kartenausschnitt selbst rechnen kann, solange es denn mein Rechner schafft. Das hat einen enormen Vorteil: Mappen, Overpass-Download, OSMand-Kartendatei rechnen und mit dem Androiden und den taufrischen Daten raus ins Feld. Nur so funktioniert der workflow! Wenn ich erst vier Wochen später eine neue Kartendatei downloaden könnte, hätte ich das eigentliche Thema schon wieder aus den Augen verloren und der Krams wäre uninteressant für mich (yeap, lange warten gehört nicht zu meinen Stärken …).

Nun habe ich mir mal den Großteil der vorgeschlagenen alternativen Navi-Progs (Danke dafür …) angeschaut:

(1) BeOnRoad: lt. wiki “updates in the free version aren´t offered very often(last time maps got updated: 2. quarter of 2014” - äh… Tschau !
(2) Mapfactor navigator free: schnelles Routing - in der Tat; aber: Stand der Karten (mir) nicht transparent und selbst Kartendateien erzeugen → wohl nicht möglich - weiß das jemand genauer ???
(3) EB-Dirigo: Rendert auf meinem S5 neo (Android 5.1.1) gleich mal gar nicht (dreimal installiert, zweimal von der Seite von Elekrobit und einmal via Goo play); hab da heute mal angerufen, allerdings wollte der Abnehmende gar nicht mit mir reden - ich könnte ja ein Headhunter sein :open_mouth: (auch 'ne nette Idee!)
(4) Navit kenne ich noch von früher (drei Jahre ago); tausend Parameter, tageweise Zeit verspielt (war sogar recht kurzweilig) - brachte aber im Alltag-Routing wenig Erbauung … den Parameterberg meide ich heute (Stichwort: usability)
(5) ZANavi: kann ich gleich gar nicht testen, da der Germany-Download immer mit einem MD5-error endet (Schweiz funzt hingegen) - allerdings - sehr löblich: man soll sich Karten-files mit einem Linux-Tools selbst erzeugen können.
DAS wäre dann wieder interessant für mich! Hat das schon mal jemand gemacht ?? Wie bringe ich das Tool zum Laufen ??
(6) Magic Earth; Test steht noch aus …

(2) und (5) könnten eine Alternative zu OSMand für mich werden, wenn ich
zu (2 - schnelles Routing über weite Strecken) den Kartenstand ablesen könnte und
zu (5) das Kartenselbstbautool in die Hufe kriegen würde (bin eher Windows-orientiert - habe aber auch 'nen Linux-Rechner {Mint}).

Hat da jemand noch’n Tipp für mich ???

Grüße aus Lübeck
Rainer

Wenn es um aktuelle Karten geht: Osmand Nightly, Debugging Plugin aktivieren, in dessen Einstellungen “Live Updates” aktivieren, im Kartenmanagement unter “Lokal” die drei Punkte bei den Vektorkarten betätigen und “Live Update” wählen.

Mapfactor zeigt doch im “Kartenmanager”->“Karten herunterladen” die Kartenversion als Datumsstring an. In den erweiterten Einstellungen gibt es mit “Vorzeitiger Zugriff auf Karten” diese eine Woche eher. Eigene Karten kann man nicht rendern, das macht nur der Hersteller.

Ich mag mein Scout von skobbler.
Nur die Karten sind aktuell über ein halbes Jahr alt :frowning: