BRouter: offline Fahrrad-Routing für Android

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.

Hallo,

da kann ich Maria zustimmen. Um eine Route oder Tagestour zuplanen wäre es toll, wenn man Zwischenziele auswählen könnte.

LG Sabrina

Hallo,

ich bin ein neuer BRouter user und habe leider schon bei der Installation Probleme. Bei der Berechnung eines Tracks erhalte ich immer die Fehlermeldung “from-position not mapped”. Ich habe BRouter schon mehrfach über den Play Store neu auf die ext SD-Karte installiert. Die rd5 Dateien E5_N45, E5_N50, E10_N45 und E10_E50 für DE liegen im Verzeichnis /storage/extSdCard/brouter/segments2. Locus liegt auch im Verzeichnis /storage/extSdCard. Ich habe im Netz schon fast alles über den Fehler gelesen, leider konnte ich ihn bis jetzt nicht beseitigen. Ich nutze BRouter 1.0 zusammen mit Locus Pro 2.20.2. Brauche unbedingt eure Hilfe!

LG Digi

Ich vermute mit den Dateien ist alles in Ordnung, aber der Startpunkt kann darin nicht mapped werden. Er muss innerhalb 250m zu einem routbaren Weg passen. Vielleicht mal den Startpunkt in der Onlineversion testen

Mit der Online Version klappen die Routenberechnungen, ich habe mehrere versucht. Scheint doch an meiner Instaltion auf dem Samsung S II Plus zu liegen. Was kann ich noch versuchen? Möchte unbedungt auf dem Rad und per Pedes mit Locus offline routen können. Schon jetzt, vielen Dank für die Unterstützung.

Gruß Digi

(doppel-post gelöscht)

Hallo Digi,

dummerweise erzeuge ich die gleiche Fehlermeldung in beiden Fällen, egal ob die passende RD5-Datei nicht da ist oder ob in einer solchen Datei kein passender Weg für den Startpunkt gefunden wird - ich werde da die Fehlermeldungen nochmal verbessern müssen.

Du bekommst diese Meldung (“from position not mapped”) aber nicht, wenn er garkeine RD5-Datei findet, könnte aber trotzdem sein, dass er in einem anderen Verzeichnis sucht (z.B. auf er internen SD-Karte) und es da auch irgendeine RD5 Datei gibt - also nochmal den Download-Manager aufrufen und den abgedeckten Bereich anschauen, und nochmal mit einem Dateimaneger nach anderen “brouter” Verzeichnissen suchen und die ggf. löschen.

Dann weiss ich nicht, wie Du BRouter aufrufst, es gibt da ja mittlerweile viele Wege: über die Dienste-Schnittstelle direkt aus Locus, über die BRouter-App mit “from” und “to” Wegpunkten in Locus angelegt, oder über die BRouter-App ohne “from” und “to” Wegpunkte.

Probiere mal letzteres, dann hast Du den direktesten Feedback, dass auch tatsächlich der Startpunkt verwendet wird, den Du meinst, also:

  • “from” und “to” Wegpunkte in Locus ggf. löschen, wenn Du solche anegelgt hast.
  • Deinen Start- und Endpunkt neu anlegen unter irgendwelchen Namen
  • die Brouter-App starten: er sagt (nach Profilauswahl) dann: “no from/to found, corrdinate source=…” und dann kannst Du über “Select from” und anschliessend über “Select to/via” Deinen Start- und Zielpunkt aus der Locus-Wegpunktedatenbank wählen
  • wenn Du dann über “Calc Route” die Strecke berechnest, dast er dann immer noch “from posution not mapped” ?

Gruss, Arndt

Hallo Arndt,

ich habe alle deine Vorschläge durchgeführt. Da der Download-Manager mir die bei mir auf der SD vorhandenen rd5 Dateien anzeigte, musste der Pfad ja richtig für broiuter gesetzt sein. Die von mir gewählten “froms” lagen alle auf routbaren Hauptstrassen und mit der Online Version von Brouter wurde auch gut geroutet. Dann kam mir der Gedanke doch mal in der Nähe von Stuttgart zu routen und siehe da, Brouter routete offline plötzlich einwandfrei. Meine E5N50 scheint defekt zu sein, mit E5N45, E10N50 und E10N45 kann ich sauber routen. Ich lade mir gerade die E5N45 (mein Heimatbereich) nochmal herunter. Ich möchte mich sehr für deine Hilfe und natürlich für das tolle Programm bedanken.

Gruß Digi

Hallo Arndt,

ich beschäftige mich seit ein paar Tagen mit BRouter (in Verbindung mit Locus Pro) und hätte Fragen zu den Routing-Optionen (Fastbike):

Ich fahre zwar kein Rennrad oder S-Pedelec o.ä., sondern ein schnelles Velomobil und frage mich, ob & wie ich folgende Streckenbestandteile “abschalten” bzw. runterstufen kann, damit diese möglichst selten geroutet werden:

  • keine Radwege
  • keine größeren Städte

Prinzipiell will ich möglichst fahren auf:

  • Kreisstraßen (K)
  • Straßen mit Seitenstreifen

Gibt es in der Richtung Möglichkeiten, die Routing-Optionen zu “optimieren”?

+++

Weiterhin ist mir aufgefallen, dass bei längeren Strecken (300 - 400 km ausprobiert) es doch eine ganze Weile dauert, bevor BRouter die Route in zwei Durchläufen ermittelt hat und das dabei relativ breit Punkte auf dem Display gesetzt werden. Mir ist einigermaßen klar, welcher Aufwand dahintersteckt, aber wäre nicht eine Option denkbar, die bspw. in einem Korridor von x km (einstellbar) der Luftlinie sucht? Also Punkt A und B durch Luftlinie verbinden und die Route muss innerhalb eines Korridors von 10 km von dieser Luftlinie verlaufen.

Danke,

Gruß: - Reinhard -

“abschalten bzw. runterstufen” heisst einfach, im Profil den Kostenfaktor zu erhöhen.

Nimm vielliecht besser das “moped” Profil als Vorlage, weil in “fastbike” Radwege zu verbieten ist eine böse Falle, weil Du dann an den Stellen, wo die ganz schlauen die Radwege-Benutzungspflicht als “bicycle=no” getagged haben, Dir das Netz zerschneidest. “moped” reagiert nicht auf bicycle=no, nur auf motoroad=yes. (Aber nicht vergessen, die Höhen-Parameter von fastbike zu übernehmen)

Dann einfach highway=tertiary auf 1, alle anderen bisschen höher. Mit den Seitenstreifen könnte man mal cycleway=lane anschauen, aber ich fürchte, das ist nur die halbe Miete, weil die breiten Seitstreifen an Bundesstrassen, die nicht formal Radstreifen sind, sind davon nicht erfasst. Können die erfahreren Mapper vielleicht mehr zu sagen.

Sowas in der Art gibt es, Du kannst den zweiten Durchlauf ganz abschalten und das Ergebnis des ersten nehmen:

assign pass2coefficient -1

auch das heisst ja, nicht links und rechts suchen, sondern ab durch die Mitte. Ob das eine gute Idee ist sei dahingestellt. Den durschnittlichen Kostenfaktor nahe bei 1 zu halten reduziert auch die Spreizung. Und das moped-profil in Verbindung mit den carsubset-Dateien zu verwenden bringt auch Geschwindigkeit.