BRouter

Aus Radreise-Wiki
Wechseln zu: Navigation, Suche

Einleitung

BRouter ist eine speziell fürs Erstellen von Fahrrad Routen entwickelte offline Routing App fürs Smartphone, die mit Karten Apps (z. B. OsmAnd) zusammen benutzt werden muss und dann für diese das Routing übernimmt. Es existiert auch eine online Desktop Version.

Allgemein: http://brouter.de/brouter/

BRouter offline: http://brouter.de/brouter/offline.html

BRouter online: http://brouter.de/brouter-web/

Die Anleitungen zu BRouter liegen nur in englischer Sprache vor, für die meisten wahrscheinlich kein Problem, für manche wird aber vielleicht in einer deutschsprachigen Version einiges klarer. Deshalb habe ich die englische Version mal in einem ersten Wurf ins Deutsche übersetzt. Basis ist jeweils die englische Version in der BRouter Distribution der Version 1.4.8 vom April 2017. Anmerkungen von mir sind im Text durch eckige Klammern [...] gekennzeichnet.


Übersetzung der readme.txt

BRouter - Version 1.4 - Einrichtung der Android App

Auswahl und Installation einer Karten App

BRouter berechnet nur Tracks als GPX Dateien, es stellt keine Karten dar und macht auch keine Anweisungen zur Navigation. Deshalb benötigst Du eine Karten App, um BRouter sinnvoll verwenden zu können.

Zur Zeit kann BRouter mit drei verschiedenen Karten Apps zusammen arbeiten. Du benötigst also mindestens eins der folgenden Programme und musst Dich mit diesem vertraut machen:

 "OsmAnd"; Siehe http://www.osmand.net.
  Hole es Dir von Google-Play oder als APK Datei aus dem Release-Build Archiv:
  http://download.osmand.net/releases/
  [Eine kostenlose Version gibt es als APK auch via http://www.osmand.net/downloads]
 "Locus": Siehe http://www.locusmap.eu.
  Es gibt eine "Pro" Version die frei von Werbung ist und eine kostenlose Version mit Werbung.
  Du kannst Dir diese von Google-Play holen. Für die kostenlose Version gibt es jedoch auch einen APK-Download.
 "Oruxmaps": Siehe http://www.oruxmaps.com.
  Oruxmaps ist eine Donationware, also Freeware, für die um Spenden gebeten wird um das Projekt zu unterstützen.
  

Welche man verwenden sollte, ist eine Frage des Geschmacks. OsmAnd ist vielleicht mehr Plu&Play und hat eine annehmbare Navigationsansage. Locus und Oruxmaps sind leistungsfähiger und besser für Outdoor Aktivitäten. Locus und Oruxmaps haben Diagramme für die Höhenprofile, die OsmAnd nicht hat [inzwischen hat die auch OsmAnd].

Locus und Oruxmaps werden am besten mit Vector Karten eines zusätzlichen Anbieters benutzt; schau mal bei http://www.openandromaps.org, wenn Du Dich für Locus oder Oruxmaps entscheidest.


Installation der BRouter App

Du kannst die BRouter App entweder aus dem Googles Play Store installieren, oder direkt mit der APK Datei die im Distributionszip "brouter_1_4.zip" enthalten ist [auf der BRouter Website: http://brouter.de/brouter/offline.html].


Wahl des Basis Verzeichnisses auf der SD Karte

Beim ersten Start von BRouter (oder nach dem Löschen/Verschieben des BRouter Ordners auf der SD Karte) fragt es nach einem Basis Verzeichnis auf der SD Karte, macht Dir Vorschläge und gibt Dir außerdem die Möglichkeit ein Basis Verzeichnis einzugeben.

Die meisten Smartphones (sprich solche mit Android 4.x [und höher]) haben 2 logische "SD Karten", wobei die erste intern ist und nicht wirklich eine SD Karte, und die zweite eine optionale "externe" Micro SD Karte, die aus dem Gerät entnommen werden kann.

Navigation benötigt große Daten Dateien, die üblicherweise auf externen, großen SD Karten abgelegt werden sollten. Du solltest also die externe Karte auswählen, welche üblicherweise die mit dem meisten verfügbaren Platz ist.

Unter Android >= 4.4 ist jedoch der Schreibzugriff auf die externe Karte eingeschränkt, und üblicherweise wirst Du keinen Vorschlag erhalten, diese Karte zu verwenden. In diesem Fall solltest den Vorschlag für die interne Karte annehmen - später kannst Du dann ein "sekundäres" Daten Verzeichnis auf der externen SD Karte einrichten, in die Du die Daten Dateien verschieben kannst.

   siehe im kitkat_survival_readme.txt bezüglich spezieller Android 4.4 und Android 5x [und wahrscheinlich ebenfalls höherer Versionen] Probleme

Versuche sicher zu stellen, dass Deine Karten App das selbe Basis Verzeichnis [wie BRouter] verwendet um die offline Karten und anderes Zeugs zu speichern, weil BRouter auf die Wegpunkt Datenbank und das Tracks Verzeichnis der Karten App versucht zuzugreifen. Und das funktioniert nur, sofern beide entweder dasselbe Basis Verzeichnis verwenden, oder sofern die Karten App das interne Standard Basis Verzeichnis /mnt/sdcard verwendet.

In OsmAnd geschieht dies durch die Auswahl des "SD-Card Basis Verzeichnis".

In Oruxmaps kann nur das Verzeichnis für die Kartendaten konfiguriert werden, aber die Datenbank Datei mit der Konfiguration auf die BRouter versucht zuzugreifen, ist fest eingestellt auf das /mnt/sdcard/oruxmaps Verzeichnis. Als provisorische Lösung für diese spezielle Konfiguration kannst Du eine Umleitungsdatei in das Verzeichnis legen, in das BRouter normalerweise die GPX Dateien ablegen würde (z. B. /mnt/sdcard/oruxmaps/tracklogs). Die erste Zeile in dieser Umleitungsdatei mit dem Namen "brouter.redirect" muss den absoluten Pfad des Verzeichnisses enthalten, von dem Du möchtest, dass dort die GPX Dateien abgelegt werden sollen (z. B. /storage0/oruxmaps/tracklogs).

Sofern Deine Karten App nicht an einem Standard Ort installiert wurde, der von der vorgegebenen Logik [der BRouter App] gefunden würde, kannst Du in der Konfigurationsdatei brouter/segments3/storageconfig.txt ein "zusätzliches Karten App Verzeichnis" konfigurieren [In der aktuellen BRouter Version 1.4.8 heißt diese Verzeichnis bei mir "segments4" statt "segments3"]. Dies ist zum Beispiel notwendig, wenn Du OsmAnd unter Android 4.4 [Bei mir ebenfalls mit Android 6.0.1] auf der externen SD Karte betreibst. Denn hier wird ein spezielles Basis Verzeichnis verwendet, um den speziellen Zugriffsbeschränkungen von Android 4.4 zu genügen, und dieses Basis Verzeichnis wird von der vorgegebenen Logik [der BRouter App] nicht gefunden. Siehe im kitkat_survival_readme.txt für Details.



Fertigstellung Deiner Installation

Nach der Auswahl des vorgeschlagenen Basis Verzeichnisses erzeugt BRouter Verzeichnisse unterhalb dieses Basis Verzeichnisses, so dass sich Dir die Verzeichnisstruktur z.B. wie folgt darstellt: (abhängig vom Basis Verzeichnis und der Karten App die Du ausgewählt hast [und abhängig von der Art und Weise wie Du auf die SD Karten zugreifst. Auf meinem Samsung mit Android 6.0.1 per MAC Zugriff mit einem extra Programm, welches die Karten einfach als externes Laufwerke einbindet, gibt es z.B. kein /mnt/sdcard]:

 /mnt/sdcard/brouter
 /mnt/sdcard/brouter/segments4  <- ** lege die Routing Daten Dateien (*.rd5) hier ab [siehe jedoch kitkat_survival_readme.txt] **
 /mnt/sdcard/brouter/profiles2  <- Umsetzungstabelle und Routing Profile
 /mnt/sdcard/brouter/modes      <- Routing Modus/Profil Zuordnung
 /mnt/sdcard/osmand             <- OsmAnd's SD Karten Verzeichnis
 /mnt/sdcard/osmand/track       <- OsmAnd's Track Speicher
 /mnt/sdcard/Locus              <- Locus's SD Karten Verzeichnis
 /mnt/sdcard/Locus/mapitems     <- Locus's Track Speicher
 /mnt/sdcard/oruxmaps           <- Oruxmaps's SD Karten Verzeichnis
 /mnt/sdcard/oruxmaps/tracklogs <- Oruxmaps's Track Speicher

Die "profiles2" und "modes" Verzeichnisse erhalten durch den Installationsvorgang einige annehmbare, vorgegebene Konfigurationen, doch das "segments4" Verzeichnis ist praktisch leer (abgesehen von der storageconfig.txt Datei), so dass Du Dir die Routing Daten Dateien erst herunter laden musst, um die Installation zu vervollständigen.

Nach der Auswahl des Basis Verzeichnisses startet automatisch der Download Manager, um Dich beim Download zu unterstützen. Oder aber Du lädst Dir die Dateien manuell von folgendem Ort herunter:

 http://brouter.de/brouter/segments4

Routing Daten Dateien sind als 5*5 Grad Dateien organisiert, mit einem Dateinamen der die südwestliche Ecke des Vierecks angibt, also zum Beispiel:

 Du willst in der Nähe von Westen48/Norden37 routen --> nimm W50_N35.rd5
 Du willst in der Nähe von Osten7/Norden47 routen --> nimm E5_N45.rd5

Über den oben angegebenen Link findest Du Routing Dateien für alle Gegenden auf der Welt, für die auch OSM Daten zu erhalten sind. Die carsubset Daten Dateien [? Keine Ahnung, welche das sein sollen] werden nur benötigt wenn Du Auto Routen über lange Distanzen berechnen willst, ansonsten kommst du prima mit den normalen (vollständigen) rd5s aus.

Das Minimum an Dateien die BRouter benötigt um zu funktionieren sind z.B.:

 /mnt/sdcard/brouter/segments4/E5_N45.rd5
 /mnt/sdcard/brouter/profiles2/lookups.dat
 /mnt/sdcard/brouter/profiles2/trekking.brf

Aber natürlich kannst Du so viele Routing Dateien und Routing Profile ablegen wie Du magst.

Betrieb von BRouter auf dem Smartphone

Routing mit der Dienst Schnittstelle

BRouter wird am besten mittels seiner "Dienst Schnittstelle" benutzt. Es besteht keine Notwendigkeit zu diesem Zweck die BRouter-App zu starten, denn es ist nur ein Dienst, der im Hintergrund bereit steht und von der Karten App aufgerufen werden kann, ganz ähnlich wie ein online Routing Service.

Um dies so nutzen zu können, musst Du BRouter als Navigationsdienst in Deiner Karten App eintragen. Dies wird von OsmAnd, Locus-Maps und OruxMaps unterstützt. (In OsmAnd ab der Version 1.7 wird BRouter als Navigationsdienst angezeigt, sofern BRouter installiert ist. Diese Option ist nicht sichtbar, sofern BRouter nicht installiert ist).

Es gibt eine Zuordnung von BRouters Routing Profilen zu den "Routing-Modes" die bei der Karten App auswählbar sind (einer von 6: car/bike/foot * fast/slow). Diese Zuordnung ist in der Datei brouter/modes/serviceconfig.dat gespeichert und ist vom Installationsprozess wie folgt vorkonfiguriert:

  motorcar_fast  -> car-test
  motorcar_short -> moped
  bicycle_fast   -> fastbike
  bicycle_short  -> trekking
  foot_fast      -> shortest
  foot_short     -> shortest

Diese Zuordnung kann jedoch jederzeit geändert werden durch Starten der BRouter App und Betätigen der "Server Mode" Schaltfläche (oder durch manuelles Anpassen der serviceconfig.dat). Ebenso kannst Du die Profile selbst ändern oder neue erzeugen. Bitte schau in der "profile_developers_guide.txt" nach (enthalten im Distributionszip), wenn Du vorhast Routing Profile nach Deinem Belieben anzupassen.

Beachte dass BRouter einen Timeout von 60 Sekunden verwendet, wenn er per Dienst Schnittstelle aufgerufen wird. Dies beschränkt die Länge der Strecke, die Du berechnen kannst.


Routen berechnen mit der Datei Schnittstelle

Die andere Option besteht darin, die BRouter App direkt zu verwenden um eine Route zu berechnen. Dies ist die bevorzugte Methode, wenn Routen über große Strecken berechnet werden sollen, die mit der Dienst Schnittstelle nicht innerhalb des 60 Sekunden Timeouts zu Ende berechnet würden.

Um dies zu tun, starte die BRouter App, wähle [innerhalb BRouter] zwei oder mehr Wegpunkte aus der Wegpunkte Datenbank Deiner Karten App und dann starte die Berechnung der Route. Diese Wegpunkte werden in OsmAnd "Favoriten" genannt, in Locus "POI"s und in Oruxmaps "Wegpunkte", und sie erlauben das Speichern von Positionen auf der Karte unter einem Namen.

Es ist nicht mehr notwendig, spezielle "nach", "von", "via...via9" Punkte [in der Karten App] zu erzeugen, sie werden jedoch immer noch unterstützt, und sofern ein "von" und "nach" Wegpunkt in der Datenbank [der Karten App] gefunden wird, wirst Du [in BRouter] nicht aufgefordert, Wegpunkte aus der Datenbank zu auszuwählen.

Nachdem eine Route berechnet wurde, wird sie als "brouter0.gpx" im Track Verzeichnis der Karten App gespeichert (oder sofern dort kein Schreibrecht besteht, in BRouters Basis Verzeichnis). Nach einem weiteren Start der Berechnung mit identischen Eingaben, speichert BRouter eine zweite Route unter broute1.gpx als erste Alternative, und so weiter.

Wenn mehr als eine der unterstützten Karten Apps installiert ist, wählt BRouter jene Wegpunkte Datenbank mit dem jüngsten Datumsstempel.


Verwendung von Vermeidungsgebieten

Es gibt eine spezielle Namenskonvention um Vermeidungsgebiete zu bezeichnen.

 "nogo[radius] [name]" definiert einen Vermeidungsgebiet dessen Radiusangabe (in Metern) optional ist und einen Vorgabewert von 20 Metern hat und dessen Name ebenso optional ist.
 Also sind "nogo", "nogo1000", "nogo strassensperre", "nogo200 schlechtefaehre" alles gültige Namen für Vermeidungsgebiete.
 

Dies wirkt sich so aus, dass BRouter eine Route sucht, die den durch Position und Radius definierten kreisrunden Bereich nicht berührt.

Vermeidungsgebiete funktionieren in der Dienst Schnittstelle und in der BRouter App. In der BRouter App erhältst Du einen Dialog um Vermeidungsgebiete abzuwählen, sofern Vermeidungsgebiete in der Datenbank gefunden werden. Diese Abwahl kann mittels "Server Mode" Schaltfläche auch an einen Dienst Modus gebunden werden, um die Abwahl ebenso in der Dienst Schnittstelle zu bewirken. Anfangs sind in der Dienst Schnittstelle jedoch sämtliche Vermeidungsgebiete ausgewählt.

Vermeidungsgebiete können entweder verwendet werden, um tatsächlich Hindernisse zu berücksichtigen oder um persönliche Routing Vorlieben zu erzwingen.


Gemischter Betrieb: "Neuberechnung ohne Timeout"

Du kannst beide Betriebsmodi kombinieren (Dienst Schnittstelle + BRouter App), um Routen über sehr lange Strecken zu ermöglichen und gleichzeitig die Vorteile der Dienst Schnittstelle zu nutzen, speziell die dynamischen Neuberechnungen wenn du von der Wegführung abweichst, ohne an das 60 Sekunden Limit zu stoßen.

Um dies zu unterstützen, kann BRouter Neuberechnungen ohne Timeout durchführen. Das funktioniert durch anfängliches Kalkulieren einer Wegführung [in der BRouter App] zu Deinem Ziel und dessen anschließendes Binden an einen oder mehrere Routing Modi per "Server Mode" Schaltfläche. Auf diese Art und Weise speichert BRouter einen "Referenz Track" im "brouter/modes" Unterverzeichnis.

Wenn dann später eine Route zu exakt demselben Ziel via Dienst Schnittstelle berechnet wird, nutzt BRouter einen speziellen Berechnungsmodus der den Referenz Track für ein schnelleres Berechnen verwendet, das garantiert innerhalb von 60 Sekunden zu einem Ergebnis führt. "Exakt dasselbe" Ziel bedeutet innerhalb von 5 Metern, so dass am besten die selben Wegpunkte für die Neuberechnung verwendet werden, die auch für die anfängliche Berechnung verwendet wurden.

Auf diese Art und Weise kannst Du einer Langstrecken Route per Dienst Schnittstelle folgen und Dich an automatischen Neuberechnungen erfreuen wenn Du von der Wegführung abweichst.


Übersetzung der kitkat_survival_readme.txt

Überleben mit Android 4.4 (KitKat) oder 5.x (Lollipop) [und wahrscheinlich späteren Versionen] unter Verwendung des aktuellen BRouter

BRouter bietet einige grundlegende Unterstützung um Zugriff auf Deine externe SD Karte zu erlangen.

BRouter muss auf dem internen Laufwerk ("SD Karte") installiert werden, aber die Karten können auf die externe SD Karte verschoben werden.

Neu ist eine Konfigurationsdatei an folgender Stelle:

 brouter/segments4/storageconfig.txt
 

die zwei Konfigurations Elemente hat:

 "secondary_segment_dir" zeigt auf ein zusätzliches Verzeichnis welches die Routing Daten Dateien enthält. Dies kann sich irgendwo befinden.
 "additional_maptool_dir" zeigt auf ein Basis Verzeichnis, das nach Karten Apps durchsucht werden soll, zusätzlich zu den angenommenen Standard Basis Verzeichnissen.
 

Anfänglich ist der Wert für "secondary_segment_dir" "../segments3", um den Übergang vom Dateiformat 1.2 nach 1.3 zu unterstützen, so dass nach einem Upgrade Deine existierenden Datendateien im "zusätzlichen" Verzeichnis gefunden werden.

Um KitKat und später zu überleben, solltest Du diesen Wert jedoch zu einen absoluten Pfad auf der externen SD Karte ändern, zum Beispiel:

 secondary_segment_dir=/storage/external_SD/brouter_segments4
 
 [Der Pfad zur Basis der externen SD-Karte, hier oben im Beispiel und im folgenden mit "/storage/external_SD" bezeichnet, lässt sich z.B. via OsmAnd ermitteln, sofern dieses auf der externen SD Karte installiert wurde. Der Pfad wird in den diesbezüglichen Konfigurationseinstellungen von OsmAnd angezeigt, als Teil des Pfades zum OsmAnd Basis Verzeichnis] 
 

Wenn nach Datendateien gesucht wird, schauen sowohl der Download Manager als auch der Router zuerst im ursprünglichen Verzeichnis (brouter/segments4) und dann im zusätzlichen Verzeichnis nach. Andererseits schreibt der Download Manager neue Datendateien immer ins ursprüngliche Verzeichnis, also ist das zusätzliche Verzeichnis schreibgeschützt.

Daher kannst Du Datendateien die vom Downloadmanager herunter geladen wurden, mittel eines Dateimanagers in das zusätzliche Verzeichnis verschieben, um Speicherplatz auf der internen SD Karte frei zu geben. Oder du kannst Datendateien direkt in das zusätzliche Verzeichnis herunter laden, durch einen manuellen HTTP Download von http://brouter.de/brouter/segments4

Abhängig davon, wie Deine Karten App die Dateisystem Struktur verwendet, bist du ansonsten fertig.

Jedoch ist es z. B. für OsmAnd wahrscheinlich, dass BRouter immer noch keinen Zugriff auf OsmAnds Wegpunkte Datenbank hat. Der Grund ist:

Wenn du Dich nach der Installation von OsmAnd entscheidest, dessen Ressourcen auf die externe SD Karte zu verschieben [OsmAnd tut dies zumindest in der Version 2.5 auch bei der initialen Installation auf der externen SD Karte], verschiebt es diese in ein spezielles Verzeichnis auf das es Schreibzugriff hat, sogar mit Android 4.4, z. B.:

 /storage/external_SD/Android/data/net.osmand/files

Der Paket Name [net.osmand] unterscheidet sich leicht für OsmAnd+.

Dieses Verzeichnis wird nicht automatisch von BRouter gefunden, und deshalb musst Du es als "additional_maptool_dir" [siehe oben] konfigurieren.

Du bist jedoch immer noch nicht fertig, denn wenn BRouter eine Wegpunkte Datenbank an folgendem Ort findet:

 /storage/external_SD/Android/data/net.osmand/files/osmand/favourites.gpx

dann entscheidet es sich seine Tracks in folgendes Verzeichnis zu schreiben:

 /storage/external_SD/Android/data/net.osmand/files/osmand/tracks

Doch in dieses Verzeichnis kann BRouter nicht schreiben. Was Du also tun musst, ist eine Umleitungsdatei zu erstellen (erstelle ebenfalls das tracks Verzeichnis, sofern es nicht existiert!)

 /storage/external_SD/Android/data/net.osmand/files/osmand/tracks/brouter.redirect

und diese Datei sollte eine einzelne Zeile enthalten mit dem absoluten Pfad zum Verzeichnis in das die Tracks geschrieben werden sollen (z. B. /mnt/sdcard/brouter). Die Umleitungsdatei ist eine normale Datei mit dem Namen brouter.redirect und enthält eine einzige Zeile mit dem Verweis auf ein Verzeichnis welches für BRouter schreibbar und für OsmAnd lesbar ist.

DANN bist Du fertig.