BRouter: offline Fahrrad-Routing für Android

PS:
Seit dem letzten OsmAnd-Update ist übrigens die fast/slow-Auswahl direkt beim Profilwechsel über ein Häkchen verfügbar… So ist es möglich, 6 verschiedene Profile recht bequem zu belegen und auszuwählen (mach ich grade zum probieren, was die verschiedenes tun und welches mir am liebsten ist).
Maria.

Hallo,
ich habe gerade versucht die App BRouter über Google play auf meinem Handy (Sony Xperia L) zu installieren. Die Installation hat auch geklappt, aber ich kann die Weltkarte dann nicht zoomen, ich habe die App dann auch auf mein Tablet installiert und hier funktioniert es. Liegt es an meinem Handy,oder mache ich etwas falsch?

Über das Tablet habe ich es jetzt hinbekommen und meine erste Strecke navigiert, aber auf dem Handy ist es leider nicht möglich.

Wo finde ich das Read me?

Gruß Sabrina

Hi Sabrina,

ich hab’ erstmal keine Erklärung dafür, aber der Teufel steckt ja bekanntlich im Detail. Hat er denn die Verzeichnisstrukturen (…/brouter, …/brouter/segments2,…) unterhalb des Basisverezcihnisses anlegen können? Kannst Du mal nachschauen mit einem Datei-Manager?

Wenn ja: Du kannst die routing-data-files auch irgendwie anders in das segments2 verzeichnis kopieren, ohne den Download Manager zu benutzen.

Wenn nein: kannst Du es mal mit der anderen (also der internen) Speicherkarte versuchen?

Das readme ist nicht mehr ganz taufrisch, weil da vom Downloadmanager noch nichts steht:

http://www.brensche.de/brouter/readme.txt

Gruss, Arndt

PS: Ich habe gelesen, dass es bei Android 4.4 zustätzliche Beschränkungen gibt beim Zugriff aus einer App auf die externe Speicherkarte. Hat damit schon jemand Erfahrung? Das Xperia L hat meines Wissens aber Android 4.2 ?

Hallo Arndt,

Im Datei-Manager ist folgende Verzeichnisstrukur angelegt: brouter → segments2 → carsubset
Was muss ich jetzt tun um die Routing-data-files in das segments 2 zu kopieren. (Bin in diesen Dingen nicht so bewandert.)
Mein Xperia L hat Android 4.2.2.

Ich habe auf dem Tablet jetzt mal eine Strecke von Twistringen nach Syke, Clues berechnen lassen und er fährt an der Bundesstraße 51 lang. Gibt es eine Einstellungsmöglichkeit, dass über Land und nicht an der Bundesstraße langgefahren wird?
Ich nutze OsmAnd.
Wenn ich unter BRouter ein routing profile auswählen möchte (trekking) kommt folgender Hinweis: Select Action: no from/to Found (coordinate-source:/storage/emulated/o/Locus) : Select from und Server-Mode. Wenn ich dann auf Server-Mode gehe ist hinter bicycle_short und bicycle_fast ein Haken. Muss ich hier noch etwas verstellen? Oder kann/muss ich in OsmAnd noch Einstellungen vornehmen?
Sorry für die blöden Fragen aber ich bin in diesen Dingen und in Englisch leider nicht so bewandert, aber diese App interessiert mich wahnsinnig, da wir gerne und viel Fahrrad fahren.

Gruss Sabrina

Hallo Arndt,

was mir schon länger aufgefallen ist, ist dass beim Routen einige “Sack-Stücke” dabei sind. Bei den Alternativen ist das besonders ausgeprägt. Im Darm nennt man das Divertikel oder Ausstülpungen. Ist das ein Bug oder ein Feature.

Viele Grüsse
Achim

Du kannst ja mit dem Tablet vergleichen, welche Dateien das sind. Aber für diese Weltgegend brauchst Du eigentlich nur eine, nämlich E5_N50.rd5 im Verzeichnis brouter/segments2. Am einfachsten geht es, die SD-Karte des Androiden an einem PC über die USB-Verbindung als Laufwerk zu mounten und dann mit dem PC die Dateien zu kopieren. Entweder vom Tablet oder auch direkt von meinem Server unter http://h2096617.stratoserver.net/brouter/segments2/

Ich hab’ mir das angesehen, da ist die B51 durchgängig mit einem separatem Radweg getagged (highway=path, bicycle=designated), und das ist im “trekking” Profil einfach ein guter Weg, auch wenn manche Leute das anders sehen. Man könnte zwar die Datei trekking.brf entsprechend ändern, ist aber keine gute Idee, denn es hat sich ja bewährt, um eben nicht im Gestrüpp zu landen.

Die bessere Lösung für sowas sind daher die Sperrzonen. Ich hab’s probiert, wenn Du die Brücke über die Delme bei Binghausen mit einer Sperrzone blockierst, hat der Spuk ein Ende und Du bekommst einen ganz anderen Weg.

Mit der “neuen” Brouter-Online Version kannst Du das auch online testen, die kann nämlich Sperrzonen:

http://h2096617.stratoserver.net/brouter-web/#zoom=11&lat=52.8484&lon=8.6084

In OsmAnd geht das so, dass Du einen Wegpunkt mit Namen “nogo50 Delme Brücke” anlegst.

Mit der allerneusten OsmAnd Version (1.7.4) kann man die “schnell/kurz” Unterscheidung gut auswählen beim Planen einer Router, Du kannst dann also einen der Haken (bicycle_short oder bicycle_fast) abwählen und so nur den jeweils anderen Modus konfigurieren.

Natürlich musst Du in OsmAnd auch BRouter als NAvigationsdienst auswählen. Geht ab OsmAnd 1.7, wenn BRouter installiert ist, und findet sich irgendwie tief im Menu. Du erkennst, dass wirklich BRouter rechnet und nicht der OsmAnd interne Router daran,. dass aus BRouter keine Fahrzeit-Prognosen kommen und dass BRouter, wie oben dargelegt, auf Sperrzonen reagiert.

Gibt da keine blöden Fragen, das Zeugs ist leider etwas kompliziert und nicht gut dokumentiert, und so furchtbar viele Benutzer, die mit Sperrzonen navigieren gibts glaubich auch noch nicht.

Das glaub ich nicht so richtig, bzw. solche Artefakte erwarte ich nur dann, wenn man die Höhenparameter des Routingprofils (“downhillcost” etc.) drastisch verändert in einen instabilen Bereich. Hast Du dran gedreht? Wenn nicht, kannst Du so ein Beispiel posten? Am besten als Permalink aus der “alten” BRouter-Online-Version:

http://h2096617.stratoserver.net/brouter/online.html

Danke und Gruss,

Arndt

PS: nochmal der Link auch auf die “neue” BRouter-Online-Version, die ist viel schöner und kann Sperrzonen, aber eben (noch) keine Permalinks auf Routen und keinen Profil-Upload:

http://h2096617.stratoserver.net/brouter-web/

Hallo Arndt,

habe die Dateien jetzt vom Tablet über den PC auf das Handy kopiert. Jetzt läuft es auch auf dem Handy.

Ich habe BRouter auch als Navigationsdienst ausgewählt (Einstellungen → Navigation → Navigationsdienst → BRouter).
Er zeigt mir jedoch trotzdem eine Ankunftszeit und Fahrzeit an. Heißt das, es wird nicht mit BRouter gerechnet?

Noch eine Frage zu den Sperrzonen. Heißt Wegepunkte anlegen, als Zwischenziel unter den Favoriten mir dem Namen “nogo50 Delme Brücke” speichern oder wie ist das gemeint?

Ist es eigentlich relevant ob ich unter OsmAnd Fahrrad, Auto oder Fußgänger wähle oder zählt nur die Einstellung unter BRouter. (Die Kartendarstellung als Fußgänger ist nämlich optisch eine andere und gefällt mir persönlich besser)

Ich habe jetzt auch mal Locus heruntergeladen und finde dies von der Darstellung besser als OsmAnd, habe jedoch noch Probleme mit der Handhabung. Ich habe noch nicht rausgefunden, wie man Zwischenziele anlegt.

Zu welcher App kannst du raten? Welche funktioniert mit BRouter besser bzw. ist einfacher oder ist dies nur eine Ansichtssache?

Vielen Dank für deine Hilfe.

Gruß Sabrina

Sorry, unklar ausgedrueckt, ich meinte die Ansage direkt nach Neuberechnung, per Sprache und über das “Fähnchen”, da kommt beim internen Router “Route neu berechnet, Entfernung 4,5 km, Zeit 20 Minuten”, und bei BRouter fehlt die Zeit (weil BRouter keine Zeit ausrechnet)

Die Restzeit und Ankunftszeit, die während der Navigation angezeigt werden (wenn konfiguriert), berechnet OsmAnd sich aber dann selbst aus pauschalen Geschwindigkeiten (Auto 60km/h, Fahrrad 20km/h, Fuss 6km/h).

Einfach als “Favorit” anlegen unter diesem Namen. Zwischenziele sind in OsmAnd was anderes. Mindestens “nogo50” als Namen (kleingeschrieben), die Ergaenzung ist optional und nur wichtig, um später noch zu wissen, was das für ein Wegpunkt ist. Die 50 sind der Radius in Metern, da kann also auch eine andere Zahl stehen. Und nicht “vergessen” die Sperrpunkte, sondern auch irgendwann wieder löschen, aktive Sperrpunkte, an die man nicht mehr denkt spielen böse Streiche.

Für die Wegberechnung ist nur das Profil in BRouter relevant. Beachte aber, dass Du den Navigationsdienst in OsmAnd 3 mal einstellen musst (Auto/Fahhrd/Fuss), es gilt immer nur für einen Modus.

Für die Anzeige der Restzeit/Ankuftszeit macht es aber einen Unterschied, und für das Timing der Sprachansagen und für die Neuberechnungsschwelle bei Weg-Abweichungen auch.

Ich kann da keinen Rat geben, es hängt neben dem persönlichen Geschmack auch vom Anwendungsfall ab. Für OruxMaps und Locus spricht, dass sie schönere Vector-Karten anzeigen können (z.B. die openandromaps). Ein Höhenprofil zeigt OsmAnd garnicht an, für Bergtouren nicht ganz unwichtig. Auch tausend andere Funktionen wie z.B. ein Lineal um Entfernungen zu messen fehlen einfach in OsmAnd.

Trotzdem benutze ich persönlich meist OsmAnd, einfach weil ich damit gut zurechtkomme, sowohl mit der Handhabung auch als mit dem Farbschema der Karte bei schwierigem Licht (bei Sonnenschein oder Nachts). Die Handhabung ist in OsmAnd 1.7.x m.E. noch etwas besser geworden und um spontan ein Zeil einzugeben und loszufahren ist das glaubich unschlagbar, während das für längere Touren vielleicht nicht so wichtig ist.

Hallo Arndt,

derzeit bringe ich das nicht mehr dargestellt. An den Parametern habe ich nichts gedreht. War wohl in einer älteren Version?

Also Sorry und vielen Dank für Deinen Brouter

Achim

Hallo Arndt,

eine absurde Frage (?): Kann man von der BRouter API die Höhe eines einzelnen Geo)-Punktes holen OHNE zu routen?

Viele Grüsse
Achim

Ps: Klar die entsprechenden Segmente sind vorhanden

Hi Achim,

so absurd ist das garnicht, ich hatte auch schonmal drüber nachgedacht. Prinizipiell sind die brouter-datenfiles (rd5) dafür aber schlechter geeignet als die originalen SRTM-Files, weil in den rd5’s ja die höhe nur an Wegknoten steht und es da kein vollständiges Gitter gibt. Aber um einen vorhanden GPX-track mit höhendaten zu versehen reicht das ja. Sag bescheid, wenn es da einen bedarf gibt.

Gruss, Arndt

Hallo Arndt,

vielen Dank für Deine Antwort.
Der Hintergrund meiner Frage ist, wenn man eine eigene Anwendung schreibt und zB.: BRouter, Graphhopper… verwendet, bringt jeder seine Höhendaten mit. So werden auch bei RC die SRTM(3) Daten mit. Graphopper läd diese in einer zukünftigen Version runter.
Schön wäre halt, man hätte dies SRTM3 Höhendaten nur einmal zentral für ALLE Anwendungen welche die Höhendaten beötigen. Dafür sollte es dann ein einheitliches Api geben, das man auch als Nutzer verwenden kann.

Schon wäre es auch schon, wenn man über Dein API schon mal die Höhendaten zum nächstligenden Wegknoten holen könnte, das wäre schon mal ein Anfang in dieser Richtung.

Viele Grüsse
Achim

Ps: Was ist wenn BRouter für die Höheninformation auch heruntergeladen SRTM-Datenfiles verwendet di noch anderweitig verwendet werden?

Aus dem gleichen Grund, aus dem ich nicht einfach die PBF-Dateien zum Routen verwenden kann: sie sind nicht für den random-access zugriff gemacht, man muss sie sequentiell (also komplett) lesen, um die gesuchte Information zu finden. Ein indiziertes Format für Höhendaten kenne ich nicht. Deswegen muss ich sowohl die OSM/PBF als auch die SRTM Daten im Präprozessor verarbeiten und nicht zur Laufzeit.

Gruss, Arndt

HalloArndt,

das ist aus meiner Sicht und meinem Kenntnisstand nicht ganz richtig. Auf die SRTM-Datenfiles kann man doch mit dem “Random Access” auf den erforderlichen (Integer)-Wert zugreifen. Eventuell muß man 2 Werte holen und dazwischen interpolieren. Was ich mir vorstellen kann ist, dass das beim Routen eventuell zu langsam ist ohne zu cachen.

Oder liege ich da daneben?

Zum Beispiel hat das Routeconverter und ich glaube auch Graphhopper so eingebaut.

Viele Grüsse
Achim

stimmt wohl, es gibt die “.hgt” Dateien als “Rohformat”, aber das ist ja völlig unkomprimiert und da hat der Welt-Datensatz >60 GB, ist also nur solange random-access fähig, bis man es komprimiert.

Der BRouter Prä-Prozessor braucht für den Weltdatensatz zur Zeit ca 5 Stunden, davon das meiste zum De-Komprimieren der SRTM Files, deswegen bin ich schon bisschen auf der Suche nach einem Format, was sowohl kompakt als auch schnell ist (so wie PBF eben)

Bei Graphhopper drücken sie sich ziemlich unklar aus, was die Trennung zwischen Präprozessor (oder Parser oder wie auch immer man das nennt) und Runtime angeht, also glaube ich das erstmal nicht, dass sie zur Laufzeit Random-Access in die HGT Dateien machen. Kann auch nicht performant sein, denn für eine Interpolation muss man da 4 Zahlen lesen aus mindestens 2 Datenblöcken.

Hi Arndt,

vielen Dank für die Erklärung. Ich habe das für ein “begrenztes” Gebiet gesehen und nicht für die ganze Welt. Bei mir liegen nur 4 SRTM Dateien mit ca 3 MB. Leider laden da die einzelnen Utilities jeweils ihre eigenen SRTM Dateien runter.

Wenn man die Höheninformation bei BRouter vom nächsten Wegeknoten holen könnte ohne zu routen, würde mir schon mal was nützen… da ich Brouter sowieso nutze und nicht nochmals die Höhendaten holen möchte.

Warum ohne zu Routen? Funktion ist eine Luftlinien Entfernung mit Höheninfo. Natürlich kann man auch dazwischen routen und nur den Anfangs und Endpunkt nehmen.

Viele Grüsse
Achim

Hallo Arndt,

Kann ich mit dem in osmand integrierten brouter auch in osmand direkt zwischenziele auswählen? Also mit klick auf die karte und position verwenden als…? Wenn ich das versuche, ignoriert der router meine zwischenziele konsequent… das finde ich sehr schade.

Gruß,
Maria.

Ich auch… danke für den Hinweis, ich kümmer mich bei Gelegenheit drum (Bei YOURS und OpenRouteService geht’s aber auch nicht…)

PS: noch ein Grund mehr, mit Sperrzonen statt mit Zwischenpunkten zu arbeiten…

Ja, sperrzonen machen schon sinn, wenns darum geht, von a nach b zu kommen und dabei einen bestimmten weg zu vermeiden. Aber wenn ich beispielsweise eine tagestour plane, erst zu dem see da und dann da noch zu dem Hügel und abends dort ankommen, oder eine rundtour oder so… da helfen mir sperrzonen nicht weiter, da muss ich dann immer einzelne wegStücke neu navigieren… oder halt die route extern erstellen und gpx laden… naja, dann also erstmal weiter mit workarounds…
Danke! Maria.