BRouter: offline Fahrrad-Routing für Android

Das Thema ist ein Dauerbrenner, einen aktuellen Überblick gibts hier:

https://github.com/poutnikl/Brouter-profiles/issues/20

Hallo Arndt,
das dürfte Dich interessieren:
https://forum.openstreetmap.org/viewtopic.php?pid=760981#p760981

Grüße

Hallo,

ich nutze schon längere Zeit BRouter unter Oruxmaps und sehr intensive das Webinterface für meine Radplanungen. Dafür herzlichen Dank an @Arndt.

Seit kurzem verwende ich auch OSMAnd in Verbindung mit BRouter und Android 9 auf einem Huawei PSmart 2019. Dabei ist es mir mehrfach passiert, dass mitten in einer Route die Meldung kommt “BRouter not available”. Aufruf von Brouter geht, verlassen im Servermode. Beenden von OSMAnd bringt keine Änderung. Reproduzierbar kann ich das nicht beheben. Ich Glaube d.h. wenn mann mehrmals zwischen den Profiles hin und her schaltet geht es wieder.
Wie schon geschrieben alles funtioniert, aber irgendwann ohne manuellen Eingriff kommt bei einer erforderlichen neuen Routenberechnung (Abweichung von der vorgegebenen Route) die Meldung “…BRouter not available”.

Kennt jemand dieses Verhalten und hat einen Tipp wie man das beheben kann?

Ich vermute einen Zusammenhang mit aggressivem Energiesparen:
https://dontkillmyapp.com

Mir ist das auch schon passiert, auf einem Samsung J3 Android 5. OSMAnd durschstarten hat aber geholfen (“richtig” beenden, so dass er anschliessend mit dem Splashscreen startet).

Es ist zumindest plausibel, dass es was mit dem Lifecycle zu tun hat ( “onPause/onResume” ) Das ist aber der Kern von Android und kein Fehler, und wenn heutzutage ein onPause → onResume Zyklus so selten ist, dass ein App-Entwickler damit durchkommt, das nicht wirklich zu testen, wo liegt dann der Fehler im System?

…ich glaube nicht, dass es mit dem Energiesparen zusammenhängt. Ich habe alles was ich da finden konnte freigegeben. Ich habe beim Radfahren immer einen externen Akku mit 15 000mah dran.

Weiteres seltsames Verhalten von OSMAnd. Auf meinem Huawei PSmartPlus 2019 habe ich mit 3 Programmen gleichzeitig auf einer längeren Strecke geloggt und zwar mit OSMAnd,Oruxmaps,Gpslogger. Der GpsLogger hat nahezu keine Ausfälle, Oruxmaps ist akzeptabel aber OSMAnd hat zwischendrin sehr große Lücken. Gpsaufnahme steht auf 1s.

Es kann also nicht der GPS Empfang und die Hadrware sein.

Ich habe Loggs da liegt OSMAnd um mehr als 300m daneben und das ist zum naviegieren im Wald schwierig. Ich habe deshalb immer noch mein LG_Wine_Smart dabei, welches ich vornehmlich als Logger benutze (oruxmaps) seit mein BT747 das Zeitliche gesegnet hat. Das ist aber ein kleiner Bildschirm, hat mich aber noch nie im Stich gelassen.

Genau das ist ja eines der Probleme.
Manche Hersteller entfernen manche Apps nach kurzer Zeit komplett aus dem Arbeitsspeicher, wenn diese sich im Hintergrund befinden. Selbst dann wenn der Benutzer alle Energiesparoptionen abschaltet. Dem Nutzer ist es hier nicht mehr möglich bestimmte Apps hiervon auszunehmen.
Die betroffenen Geräte haben nur eine interne Liste, welche vom Nutzer nicht verändert werden kann, auf der die Ausnahmen stehen.
Das hat z.B. teilweise die Folge, dass selbst bekannte Fitness-Apps nicht mehr richtig funktionieren, falls diese nicht auf der Liste stehen.

Interessant, ist das der GPSLogger hier:
https://github.com/mendhak/gpslogger/
Was mir hier als erstes auffällt, evtl. bevorzugt das Gerät Apps welche Google Play Services verwenden:


    implementation 'com.google.android.gms:play-services-base:16.0.1'
    implementation 'com.google.android.gms:play-services-location:16.0.0'
    implementation 'com.google.android.gms:play-services-auth:16.0.1'

https://github.com/mendhak/gpslogger/blob/master/gpslogger/build.gradle

Außerdem wird neben GPS_PROVIDER auch NETWORK_PROVIDER verwendet, falls verfügbar.
Wichtiger dürfte aber die Verwendung des AlarmManagers in setAlarmForNextPoint() sein:
https://github.com/mendhak/gpslogger/blob/master/gpslogger/src/main/java/com/mendhak/gpslogger/GpsLoggingService.java

edit:
Bei OsmAnd fällt auf, dass der AlarmManager bei Android API > 19 gezielt nicht verwendet wird, indem das GPS-Intervall zwangsweise auf 0 gesetzt wird, das wird evtl. vom Gerät bestraft:


	public int navigationServiceGpsInterval(int interval) {
		// Issue 5632 Workaround: Keep GPS always on instead of using AlarmManager, as API>=19 restricts repeated AlarmManager reception
		// Maybe do not apply to API=19 devices, many still behave acceptably (often restriction not worse than 1/min)
		if ((Build.VERSION.SDK_INT > 19) && (getSettings().SAVE_GLOBAL_TRACK_INTERVAL.get() < 5 * 60000)) {
			return 0;
		}
...

https://github.com/osmandapp/Osmand/blob/d863bf61b27f70e3c213e915a885a0b46c813ab8/OsmAnd/src/net/osmand/plus/OsmandApplication.java#L873

…oh, ein Kenner der Materie. Genau der Logger ist das. Ich habe keine I-Net Verbindung. Alles ist rein lokal ohne SIM Karte.

Aber das hat natürlich nichts mehr mit BRouter zu tun!

Es geht um
http://www.brouter.de/brouter-web
Hoffe, dass ich hier trotzdem richtig bin.
Auf PRivatgelände kann man damit nicht routen oder?

Nur eine Frage des Routing-Pofils.

Kannst es ja mal hiermit versuchen: http://brouter.de/brouter/profiles2/dummy.brf

Oder auch aus den richtigen Profilen den Auschluss von “private” rausbauen.

Hallo brouter-Profis,
seit kurzem benutze ich osmand mit brouter.
Bisher habe ich auch alles zum laufen bekommen und würde jetzt gerne die MTB-Profile von Zossebart benutzen.
In osmand bekomme ich aber eine Fehlermeldung:

“Route konnte nicht berechnet werden: /storage/…/profiles2/mtb-zossebart-hard.brf does not contain expression for context way (old version?)”

Habt ihr eine Idee?

Gruß Marco

Das muss was mit Datei-Berechtigungen zu zun haben, die App sieht die Datei zwar, aber als leere Datei.

Ist das der …external…/Android/data/btools.routingapp/files/… Pfad ? Womit hast Du sie dahin kopiert? Welche Android Version ?

Du kannst auch versuchen, die “Api10” Variante der App zu installieren von http://brouter.de/brouter/revisions.html

Hallo Arndt,
vielen Dank für die schnelle Antwort.
Fehler lag bei mir, da ich mir die Datei nicht im Editor angeschaut habe und versehentlich die Dateil als html-Verweis gespeichert hatte.
Mit einer anderen Datei
https://github.com/abrensch/brouter/issues/141 hatte es funktioniert.

Mein Fehler war, dass ich auf
https://github.com/zossebart/brouter-mtb
die Datei anzeigen lassen kann, aber nicht herausgefunden habe, wie ich sie direkt herunterladen kann. Jetzt habe ich den Inhalt kopiert und mit dem Editor eine neue Datei erzeugt und den Inhalt hereinkopiert. Jetzt funktioniert es.
Was habe ich übersehen, dass ich die Datei nicht direkt herunterladen kann?

Gruß Marco

Am besten wählst du beim Github-Webinterface wenn die Datei angezeigt wird oben rechts “Raw”. Dann wird die Datei je nach Browser runtergeladen oder im Browser dargestellt. Im letzten Fall kannst du die Datei dann über den Browser abspeichern (“Seite speichern” o.ä.).

Allgemein würde ich gerne um Feedback zu meinem MTB-Profil bitten. Ich habe noch einige ToDo’s auf meiner Liste, würde aber bevor ich micht wieder damit beschäftige erstmal mehr Meinungen anderer Mountainbiker einholen, was sonst noch verbessert oder angepasst werden könnte.

Feedback bitte an zossebart@googlemail.com, über diesen OSM-Account oder als Github-Issue.

Danke!

Ich habe spontan mal etwas mit dem Online-Router herumgespielt, zumal ich morgen diese Strecke fahren werde. Ich frage mich (auch bei anderen Routern), wieso bei einer ausdrücklich als Fahrradroute geplanten Route diese auch hier über die Autostraße (“Fuldatalstraße”) führt und nicht über den parallel verlaufenden Radweg (“R1”). Zumal dieser, soweit ich das verstehe, durchaus dafür angemessen gemappt ist.

Das soll keine Kritik sein, allerhöchstens ein Bugreport, in erster Linie aber eine Verständnisfrage :slight_smile:

Hast Du mal einen Link zu Deiner Strecke?

stelle wäre hier:
https://www.openstreetmap.org/relation/4042#map=17/51.32590/9.53820

versteh ich ned… hier funktioniert es wie erwartet

http://www.brouter.de/brouter-web/#map=16/51.3279/9.5464/osm-mapnik-german_style&lonlats=9.53727,51.325086;9.559093,51.329472

Ich hoffe, das funktioniert: http://brouter.de/brouter-web/#map=17/51.32652/9.53617/osm-mapnik-german_style,Waymarked_Trails-Cycling&lonlats=9.503244,51.315556;9.560262,51.345893

EDIT: Jetzt funktioniert es bei mir auch! Was war das denn?

EDIT 2: Ich hatte ursprünglich das Profil “Fahrrad, schnell” gewählt, für den Link oben dann aber den Default “Trekkingrad” gelassen.

Hmm, keine Ahnung :confused: