BRouter: offline Fahrrad-Routing für Android

Meiner Meinung gar nicht.

Es gibt erst mal die folgende Seite des Problems. Du musst wissen, wie in OSM die Wege beschrieben werden. Leider sind die Beschreibung nicht konsistent. Du musst die Lieblingsmacken der Mapper kennen, damit Du überhaupt weißt, was Du dem Routingprofil erzählen musst. (Radwege abwerten bringt schöne ruhige Routen meiner Erfahrung nach)

So wie in OSM klassifiziert wird, ist es unmöglich oder eine Sauarbeit, dies auf ein DAU-freundliches Nutzerinterface runterzubrechen, wenn es um die Personalisierung von Routingfiles geht. Grund: Klassifizierungsmerkmale müssen kombiniert (jongliert) werden.

Und damit sind wir bei der schon festgestellten Nutzerunfreundlichkeit des Gesamtsystems. Weil man verschiedene Parteien verbinden oder unter einen Hut bringen muss, kommt wieder ein Bedienungsmöglichkeit raus, die viele Möglichkeiten bietet, die nur wenige nutzen können.

Letztendlich bleibt dir nichts übrig als hier den ganzen Thread wirklich durchzulesen und die englische Dokumentation.

Persönlich gebe ich dir den Tipp, setze auf Brouter. Osmand - dies stellt sich bei Hardcorenutzung heraus - ist schlampig und konfus. Victor scheint teilweise sein Programm nicht richtig zu kennen… Arndt von Brouter hat etwas sehr Schlaues gemacht. Er hat sich auf die Dinge beschränkt, die er wirklich versteht. Deswegen habe ich jetzt noch keinen Fehler gefunden. Bei Osmand wimmelt es vor unterschwelligen Bugs. Brouter ist aber erst mal schwerer zu verstehen, aber es macht dann keinen Ärger mehr in seiner Bedienung mit irgendwelchen Kinderkrankheiten.

Zu deinen Berliner Beispielen. Arndt und ich wohnen in der gleichen Gegend. Ich bin eigentlich ganz glücklich mit seinen Routingvorschlägen. Was aber wieder meine These stützt, Routing schein von Regionen abhängig zu sein.

Der Schalter befindet sich in deinem Brouterordner/profile2. Profile mit Texteditor öffnen, Eintrag machen, speichern. Der Schalter war metaphorisch gemeint.

Schau dir mal Locus und Oruxmap an. Ich habe die mal vor Kurzen angetestet. Wenn ich es richtig im Kopf hatte, war bei einem der beiden das Via-Punkt-Problem im Zusammenhang mit Brouter ganz erfreulich gelöst.

In dem Profil, das dem Routing-Modus zugeordnet ist, das Du in OsmAnd eingestellt hast. OsmAnd kennt neben den 3 Transport-Arten
(Fuss/Rad/Auto) jeweils noch “schnell” oder “kurz”.

DieZuordnung, die BRouter benutzt, siehst Du,wenn Du Dich doch mal traust, auf den “Server-Mode” Button zu drücken,
dann die beiden Vorschläge abwählst, und dann auf “OK” drückst.

Wieder über den “Server-Mode” Button, diesmal aber den Haken für einen Routing-Modus stehen lassen, und dann OK, dann hast Du die
Zuordnung für diesen Routing-Modus derart geändert, dass dafür jetzt das zuvor ausgewählte Profil zugeordnet ist.

Das triggert aber noch keine Neuberechneung in OsmAnd, das musst Du dann noch selber tun, indem Du enwteder woanders hinfährst
als OsmAnd es will, oder z.B. den Haken für schnell/kurz in OsmAnd hin- und zurück änderst.

Oder einfacher, Du bindest das neue Profil an “bicycle_fast”, während Du in OsmAnd den Haken für “Schnellste Route” nicht gesetzt hat, dann kannst Du mit genau diesem Haken auf das neue Profil schalten und dabei auch gleichzeitig die Neuberechnung triggern.

…also ich benutze Oruxmaps und da ist das VIA Poblem aus meiner Sicht gut gelöst. Ewa wie in der BRouter Web Version.

Viele Grüsse
Achim

Hallo,

Vielen Dank für die klare Antwort. Habe es mir schon schlimm vorgestellt, nur sooo schlimm nun auch wieder nicht.

Dann werde ich ein eigenes Profil auch sein lassen. Sooo genau kenne ich OSM nicht. Und ehrlich gesagt, möchte ich das Prinzip auch nicht zu genau kennen lernen s.o.

Das Ganze o.g. ersetzte ich dann lieber mittels Papierkarten die ich unterwegs dabei habe :wink:

Vielen Dank für den Hinweis. Das werde ich mir gleich ansehen.

Entschuldige bitte meine blöden Fragen. Bin bisher mit einigen GPS Geräten unterwegs gewesen. Da war es doch recht einfach, die Sache im Blick zu haben. Da gab es auch jeweils nur eine Anwendung, die zu benutzen war. Einmal abgesehen von der leidlichen Aufbereitung des Kartenmaterials für Geräte ohne dem großen G im Namen.
Jetzt habe ich aber ein grundsätzliches Problem.

Du schreibst:

Ich habe das bisher so verstanden. brouter ist dazu da, eine Route zu berechnen. Um das erledigen zu können, benötigt brouter bzw. der User OsmAnd, Locus o.d.gl. um Wegpunkte (auf einer Karte) zu erzeugen. Diese werden vom jeweiligen Programm an brouter übergeben und brouter berechnet auf Grundlage seiner Daten (in “segment3”) die entsprechende Route. Diese Route wird dann wiederum in OsmAnd oder Locus angezeigt.

Dieser Satz suggeriert mir, ich benötige OsmAnd gar nicht. Was mir auch ganz lieb wäre …
Daraus ergeben sich für mich aber wieder folgende Fragen.

Nur bekomme ich – wenn ich brouter starte – nur die Auswahl der Routingprofile. Eine Kartendarstellung inkl. Navigations- und anderer Funktionen (siehe OsmAnd od. Locus) fehlen der brouter Anwendung ja(?).
Oder habe ich da etwas grundsätzliches übersehen?
Auf brouter selbst kann ich doch kein Startpunkt und kein Zielpunkt (inkl. Zwischenzielen) erzeugen (s.o.)?

Viele Grüße
Robert

Hallo,

Vielen Dank für die Information. Das hilft schon weiter.

Viele Grüße
Robert

Also Brouter berechnet die Routen.

Die Apps Locus, Oruxmap und Osmand brauchst Du,

  1. um Brouter mit Startpunkt, Ziel und Zwischenpunkten zu füttern. (Das gestaltet sich je nach App unterschiedlich (un)praktisch. [1]
  2. um das Ergebnis von Brouter abzufahren.

Was Du bei Osmand nicht versuchen solltest, dass man ein eigenes Routingfile erstellt, weil die Sache durch bestimmte Nebenbedingungen noch weniger selbsterschließend ist a Brouter. Weiter gibt es dann irgendwelche Änderungen im Programm, die dann am anderen Ende komische Auswirkungen haben und dir dein Routingprofile abschießen. Dabei weiß der Chefentwickler garantiert wieder nicht, was da wie zusammenhängt und was er bei seinem momentan Fix woanders kaputt gemacht hat. Oder er versteht das Problem einfach nicht.

Brouter tut auf lange Zeit, was man ihm sagt. Deswegen halte ich das für einen Anfänger weniger frustrierend, dort sein Routing zu personalisieren. Außerdem stellt es dir dazu bessere Werkzeuge zur Verfügung. (Weil das bei Brouter so schön ist, habe ich es geschafft, dass es jetzt bei Osmand so einigermaßen brauchbar funktioniert.)

[1] Bei Brouter musst Du Start, Zielpunkt und Viapunkte als Favorit abspeichern. (Die Nogos lasse ich mal außen vor.)

  • Dann startest Du Brouter.
  • Wählst dein Profil.
  • Brouter liest die Favoriten von Osmand aus und bietet sie dir zur Auswahl an. (Sehr unübersichtlich, wenn sehr viele Favoriten gespeichert sind.)
  • Dann rechnet Brouter vor sich hin.
  • Dann wählst Du den Servermode und aktivierst wie oben beschrieben dein Profil. (Fahrrad schnell)

Jetzt geht es wieder nach Osmand.

Die einfache Methode.

Du zeigst den Track auf der Karte anund wählst Navigation und wählst “Track zum Navigieren benutzen” wählen.

Das ist die einfache Methode. Wenn Du den Track verlässt, wird der momentan aktive Routingmodus dich vielleicht zurückrouten. (Das hat schon mal besser funktioniert.)

Methode schwer bis umständlich.

-Im Setting Menü der Navigation für das Fahrrad Brouter als Routing Service auswählen.
-Du machst den Favoriten, der das Ziel darstellt, zum Ziel, und wählst beim Startfavoriten “Navigation von”.
-Dann kommt der Navigationdialog und Du wählst das Fahrrad und den Modus schnell.
-Dann bringt Brouter dir die Route auf die Karte und Du kannst sie abfahren. Wenn Du sie verlierst, bringt dich Brouter zurück.

Diese Heckmeck entsteht dadurch, weil Osmand seit zwei Jahren seines Bestehens nicht geschafft hat, wenn es mit externen Routingdiensten kommuniziert, die Viapunkte weiter zu geben.

Ja klar, alles geht, ist halt immer eine Abwägung von Aufwand und Nachfrage. Man müsste dazu erstmal das implementieren, was GraphHopper’s Peter “map matching” nennt, also die GPX-Tracks auf die aktuelle digitale Karte schieben.

Und dann wär’s halt einfach ein Verzeichnis, wo die GPX files liegen müssen und ein Pseudo-Tag für die Mitgliedschaft in diesen Tracks.

vielen Dank für die Antwort. Dass das geht ist mir klar! Die Frage ist nur, ob das in Deinem Konzept angedacht ist oder ist das eine absurde Anforderung?

Derzeit habe ich mir mal das “map matching” von Peter angeschaut und lokal zum Laufen gebracht. Aber wie ich das aufs Routing anwende ist mir (noch) unklar.

Derzeit mache ich das in meiner Anwendung so, dass ich signifikante Waypoints als eigenen Layer in Mapsforge einblende und diese als Routinghilfe nehme.

Das wäre auch ein Super Featur für BRouter Client. Runtergeladene Routingfiles wieder ladbar machen um zu rerouten. Außerdem die Möglichkeit Waypoints als Orientierungshilfe zu laden und als VIAS anzuklicken. Hatte ich im BRouter Forum schon mal angeregt (Norbert).

Vielen Dank für Deinen super BRouter
Achim

Hallo,

herzlichen Dank für die Anleitung und für die Geduld und Zeit, die Du hierfür opferst!
Das ist ja in vielen Foren nicht mehr selbstverständlich.

Diese Anleitung sollt hier irgendwo angepinnt werden. Es wäre schade, wenn diese Zeilen unter 450 Beiträgen untergehen!

Ich habe jetzt mein Note4 mit Android 4.4.4 wieder zurück. OsmAnd (von F-Druid) wieder installiert. Daten liegen auf Grund von Platzproblemen auf der SD Karte (/storage/extSdCard/Android/data/net.osmand.plus/files).
OsmAnd kann Favoriten und andere Dinge dort schreiben, kein Problem.
Als Einstellung für die Navigation/Routenberechnung ist brouter ausgewählt und eingestellt. Alles bestens. Schaffe ich es in OsmAnd “irgendwie” 2 Punkte zu erstellen, so errechnet brouter flux und präzise eine Route. Die wird dann auch in OsmAnd angezeigt. Also alles wie gehabt.
Zuvor habe ich auch OruxMap und Locus-free getestet. Beide mit der gleichen Daten (Map-)Qelle auf der SD-Karte. Mit diesen Beiden Programme ist die Arbeit natürlich wesentlich(!) einfacher und effektiver! Auch dort berechnet brouter flux und unkompliziert aus 2 angegebenen Punkten die Routen.

Zu brouter. Danke nochmals für die Anleitung.
Ein Punkt fehlt dabei.
Es ist offenbar nicht möglich, brouter auf die SD-Karte zu installieren bzw. die Datenverzeichnisse (segment3 u.d.gl.) dafür anzugeben??
brouter kann offenbar nur (beim ersten Start anzugeben) auf /storage/emulate/0 installiert und dafür eingerichtet werden. Datenverzeichnisse wie “segments3” usw. müssen/können ebenfalls nur in diesem Standardverzeichnis zu liegen kommen :frowning:

brouter muss nun also noch beigebracht werden: die Daten von OsmAnd liegen hier:
/storage/extSdCard/Android/data/net.osmand.plus/files
Also die storageconfig.txt aus dem Ordner segments3/ geöffnet und folgenden Eintrag hinzugefügt:
additional_maptool_dir=/storage/extSdCard/Android/data/net.osmand.plus/files

Nicht bei brouter. Innerhalb OsmAnd fuer brouter – als kleine Berichtigung.

Jetzt bin ich zum ersten mal so weit gekommen und konnte auch zum ersten Mal eine solche Auswahl treffen :slight_smile:
“Calc Route” und brouter rechnet (sehr beeindruckend!)

Dann kommt das Problem:

An Error occurend
java.ioFileNotFoundExeption:
/storage/extSdCard/Android/data/net.osmand.plus/files/osmand/tracks/brouter.gpx: open failed: EACCES (Permission denied)

Also einzig “Ok” drücken bleibt übrig und brouter verabschiedet sich von der Bildfläche :frowning:

Das Verzeichnis tracks exsistiert:

/storage/extSdCard/Android/data/net.osmand.plus/files/osmand/tracks

Über den PC kann ich dem Ordner Tracks keine anderen Rechte geben. Im Samsung mittels Totalkommander kann ich dem Ordner auch keine anderen Rechte verpassen. Die Rechte stehen auf 771. Es ist nicht möglich 773 oder 777 zu geben :frowning: Ja unter root evtl. Nur habe ich bisher vermieden, das Gerät zu rooten.

Tja, wie nun weiter?

Einen schönen Abend wünscht
Robert

Zu den Fehlermeldungen kann ich nicht sagen. Wenn Du Rechte setzen willst, versuch den Total Commander. Aber den für ein Androidtelephon.

Aber wenn die Datei brouter.gpx existiert mache folgendes in Osmand

  • Meine Orte → Alle Tracks → Lupe → Brouter.gpx → Auf den erscheinenden Track lange drücken → Auf Karte anzeigen

zu

http://brouter.de/brouter/kitkat_survival_readme.txt

Ich musste das bisher nicht machen. Liest sich nicht spassig. Dürfte auch die Lösung für die anderen Sache sein.

Android 4.4 (“Kitkat”) ist speziell, und beschrieben ist das hier: http://brouter.de/brouter/kitkat_survival_readme.txt

In Kurz: Du kannst bei (nicht ge-rooot-etem…) KitKat zwar das Basis-Verzeichnis nicht auf die externe SD-Karte legen, aber die Datenfiles (storageconfig.txt → secondary_segment_dir )

Das Problem mit der Schreibberechtigung, wenn Du per “additional_maptool_dir” ein nicht be-schreibbares OsmAnd Basisverzeichnis angibst, kannst Du durch eine “Weiterleitungsdatei” namens “brouter.redirect” lösen.

Alles nicht schön, aber wie gesagt, Android 4.4 ist speziell, viele “rooten” es, und bei Android 5.0 soll’s wie man so hört schon wieder anders sein.

Das Map Matching scheint gerade in zu sein, OSRM/Mapbox und GIScience arbeiten da auch dran, hab mal Links dazu gesammelt.

Mein theoretischer Ansatz wäre, in BRouter beim Erstellen der Routingdateien nur eine einfache Plugin-Schnittstelle für externe Datenquellen anzubieten, um Tags zu Wegen/Segmenten ergänzen zu können. Das wäre flexibel und minimaler Aufwand auf BRouter-Seite. Würde sich in diesem Fall auch anbieten, da es ja schon Matching-Tools gibt. Etwa so:



                                                                 [id, latLon[], tags]
Matcher --> [Ways<->Tracks] -->       Index        <-- Plugin <------------------------- BRouter MapCreator
                                [way->num_tracks]?            ------------------------->
                                                                 (pseudo-)tags
                                                                 [gpxroute=true]

Nur mal als grobe Idee. Wie das Matching-Ergebnis konkret aussieht, wie man dann Wege oder Segmente identifiziert und wie man so einen Index zum schnellen Lookup konkret aufbereiten könnte, weiß ich jetzt aber nicht.

Ja, da gab auch noch weitere Anfragen. Ich muss mal schauen, was davon sich einfach umsetzen lässt und wo ich die Grenze für die kommende Version setze, an der ich gerade arbeite. Rückmeldung kommt dann noch.

Dann trag du doch auch deinen Teil dazu bei! Schreibe diese Anleitung vielleicht mit ein paar Bildern ins Wiki. Die Nächsten werden es dir danken!

Da die Erklärung von mir kam. Wenn er es nicht macht, habe ich volles Verständnis. Bei dem Riesenaufwand, den man betreiben muss, weil schlecht dokumentiert, da bleibt keine Zeit mehr noch Dokumentationen zu schreiben. Insbesondere, weil man vermutlich wieder sehr zeitaufwendig raus finden muss, wie das geht.

…das läßt sich relative leicht realisieren. Wenn man den zu speichernden Track segmentiert also in TrackSegmente einteilt. Das ist dann auch topografix konform und müßte jedes Standard Tool verstehen.

Dann ist
-erster Trackpunkt der Startpunkt
-letzter Trackpunkt das Ziel

  • jeder 1 Trackpunkt eines Segmentes wäre ein VIA Punkt außer beim ersten Segment

Viele Grüße
Achim

Habe das gestern Abend gleich gelesen. Das war die Lösung:

Also in:

/storage/extSdCard/Android/data/net.osmand.plus/files/osmand/tracks 

eine Datei “brouter.redirect” erstellt. Der Inhalt dieser Datei:

/mnt/sdcard/brouter/berechnete_tracks

Die Verzeichnisstruktur muss natürlich existent sein.

Jetzt funktioniert brouter in Zusammenarbeit mit OsmAnd :slight_smile: :slight_smile:

brouter erstellt eine Datei mit Namen brouter0.gpx. Die kann man sich z.B. in OsmAnd anzeigen lassen.
Lässt man die Route neu berechnen, dann überschreibt brouter diese Datei brouter0.gpx. Also Vorsicht bei dieser Angelegenheit. Lieber brouter0.gpx zuvor umbenennen.

Vielen Dank noch einmal Euch Allen für die Hilfe!

Viele Grüße
Robert

PS:
ich würde ja auch viel lieber Oruxmap oder Locus verwenden. In OsmAnd ist die Verwendung der POIs einfach spitze. Jede Menge POIs scheinen in den Karten bereits enthalten zu sein. Ich möchte behaupten: In den Karten die Oruxmap und Locus verwendet und unter:
http://www.openandromaps.org/downloads/
herunter zu laden sind, sind diese POIs ebenso enthalten(?).
Nur kann Locus und Oruxmap nicht so wie OsmAnd damit umgehen. NEIN, diese Programme können scheinbar überhaupt nciht gut mit POIs umgehen :frowning:
Zumindest habe ich dort keinen Punkt gefunden, POIs so anzeigen und filtern zu lassen wie es in OsmAnd möglich ist. Schade.
Schade allerdings auch, daß die Karten von OsmAnd eine eigene Entwicklung sind und mit denen von:
http://www.openandromaps.org/downloads/
scheinbar nicht kompatible. So können Locus und Oruxmap die gleiche Kartenbasis auf dem Phone verwenden. Für OsmAnd muss nochmals ein großer Batzen an Datenmengen zusätzlich auf das Phone gepackt werden. Äußerst schade!

Hallo, wie oben im meinem letzten Beitrag beschrieben, ist mir das gestern gelungen. Vielen Dank.

Hallo,

vielen Dank für den Hinweis.
Weder hier:
http://forum.openstreetmap.org/
noch hier:
http://www.openstreetmap.org/

kann ich ein Hinweis darauf finden das im Dunstkreis von openstreetmap.org ein Wiki exsistiert.

fehlt eigentlich nur noch ==> https://wiki.openstreetmap.org/wiki/Main_Page bzw. https://wiki.openstreetmap.org/wiki/OsmAnd

google ist Dein Freund

google ist in keinster weise mein Freund :frowning:

AH HA, man/frau muss also zuerst eine Suchmaschine bemühen um auf einem existierenden Webauftritt ganz bestimme/wichtige Seiten zu finden. OK – ein gewachsener großer wichtiger Webauftritt kann getrost auf eine übersichtliche Navigation verzichten. Die ganze Welt kennt ja die geheimen Links auf der Seite …