BRouter: offline Fahrrad-Routing für Android

Da ich die Stelle kenne. Die Lösung bedeutet einmal über eine vierspurige Straße und dann noch einmal zurück. Einfach den Bürgersteig an der Bleichstr. entlang zur Peterstraße geschoben, wäre schlauer.

Schau dir mal https://dl.dropbox.com/u/512261/brouter/wirklicher%20Weg.gpx im Satellitenbild an.

Da Du an anderer Stelle geschrieben hast, dass Du auch die Daten für eine stimmgeleitete Führung für diverse Apps bereitstellen willst…

Bei abgeschaltetem Bildschirm, wären die Abbiegepunkte zum Schieben falsch angesagt.

Käme so etwas in gewisser Häufung vor, gibt eine Stimmführung mit abgeschaltetem Display keinen Sinn mehr.

Letztendlich habe ich hier einen lustigen Einzelfall aufgegabelt oder nicht?

Hallo,

melde mich seit langem mal wieder mit einem Update: BRouter-0.6

Das ist ein wesentlicher Update gegenüber der vorherigen Version 0.5,
auch wenn die sichtbaren Änderungen nicht wirklich ein Showeffekt sind.

Aber durch die Erweiterung der Datenbasis auf jetzt 26 Way-Tags und
durch die Einbeziehung von Node-Tags sind die access- und die oneway
Regeln einfach deutlich präziser geworden.

Hier die Changes aus der Revision history, die jetzt ebenfalls Teil
der Web-Seite ist ( http://brensche.de/brouter )

  • Extended data files (more way tags, added node tags)
  • Extended profiles (global-, way-, node-context)
  • more precise access + oneway rules
  • more elevation parameters in profiles
  • explicit configuration of base directory
  • elevation=void within bridges or tunnels
  • fixed gpx version header
  • link counter in app animation

Die auffälligsten Änderungen an der Routen sind, dass es jetzt
(meistens…) richtig rum durch Kreisel geht und dass reine Fusswege
etwas stärker vermieden werden.

Das Datenformat hat sich geändert, d.h. bei einem Update müssen
auch die Routing-Data-Files und die Profile neu geladen werden.
Die aktuellen Daten sind jetzt mit Snapshot-Datum 4.3.2013. Damit der
Update einfacher ist, habe ich die Unterverzeichnisse umbeannt (profiles → profiles2,
segments → segments2 ) damit die alten und die neuen Daten ko-existieren
können.

Dadurch dass jetzt mehr Tags zur Verfügung sollte es jetzt auch möglich
sein, ein sinnvolles Profil für Wanderer zu erstellen, u.a. das “sac_scale” tag
ist mit in den Daten - ich hab’ mich aber noch nicht daran probiert, bin kein
Wanderer…

Auch das Car-Routing ist jetzt deutlich brauchbarer geworden, aber weil
die Turn-Restrictions immer noch fehlen tue ich es auch nicht bewerben,
sondern man findet es nur versteckt als Profil “car-test”.

viel Spass beim Radfahren und Wandern im Frühling (der hoffentlich bald wieder kommt…)

Gruss, Arndt

Hallo Arndt.

Habe Probleme bei der Installation deines Programmes. Bin allerdings auch nicht der PC Fachmann.

Habe OSMAND+ installiert. Das OSMAND Programm ist auf dem Systemspeicher des Defy+. Die Kartendaten usw sind im Ordner OSMAND auf der SD Karte. Den Pfad habe ich auch eingegeben.

Bekomme als Fehlermeldung immer: No coordinate source from a maptool found

Gruß Jürgen

Hallo Jürgen,

an der Stelle sucht er die Favoriten-Datenbank von OsmAnd unter: {basdir}/osmand/favourites.gpx

wobei {basdir} das von Dir angegebene Basis-Verzeichnis ist, z.B. /mnt/sdcard Und das aktuell
gültige Basisverzeichnis müsste auch in der Fehlermeldung genannt sein.

Wenn er da nichts findet kann das zwei Gründe haben:

Entweder es gibt die Datei {basdir}/osmand/favourites.gpx nicht (vielleicht legt OsmAnd sie erst an, wenn man zum ersten Mal einen Favoriten speichert?) Oder das Basisverzeichnis ist falsch.

Im zweifel mit einem Datei-Browser nachsehen (z.B. Astro-Dateimanager, oder die SD-Karte in den PC stecken und von da nachsehen)

Wenn Du über die Hürde drüber bist, kommen noch weitere Prüfungen, es müssen noch verschiedene Dateien auf die SD-Karte kopiert werden:

{basdir}/brouter/profiles2/trekking.brf (und/oder andere Profile)
{basdir}/brouter/profiles2/lookups.dat (und/oder andere Profile)
{basdir}/brouter/segments2/E5_N50.rd5 (und/odere andere Routing-Datafiles)

und wenn er irgendwas nicht findet wird er wieder meckern…

viel Erfolg (und einfach fragen wenn unklar)

Gruss, Arndt

Hallo Arndt, super Arbeit! Ich bin total begeistert von Deinem Programm. Meinst Du, daß es in Zukunft auch Support für OruxMaps geben wird? Der ‘from-to’ Ansatz über lesezeichen müßte bei OruxMaps doch auch gehen. Da kann man easy Wegpunkte exportieren die der BRouter nur erkennen müßte. Es wäre super, dann das irgendwann kommt.
Ich gehe jetzt mal meine Fahrradreifen aufpumpen :D.

Ich habe heute die Version 0.7 deployed mit

  • Support für OruxMaps
  • Support für Zwischenpunkte (via-points)
  • Support für Sperrpunkte (nogo-points)

In der Google-Group, die von der Projektseite http://brensche.de/brouter aus erreichbar ist, habe ich das näher beschrieben (englisch).

Bin nicht so ganz zufrieden mit der OruxMaps-Anbindung, weil man da keine Wegpunkte ändern kann, und das macht es etwas unhandlich, aber es geht.

Gruss, Arndt

Vorsichtshalber in ReadMe.txt ist das noch nicht erläutert.

Toll! Danke! Ich wollte vorm Schlafen noch kurz hier vorbei schauen, und dann sowas :). Funktioniert super mit OruxMaps! Merci beaucooouuuup :D!

Ich habe Locus und Osmand gleichzeitig auf dem Handy. Starte ich BRouter, dann will dein Programm mit Locus arbeiten. Da ich im Locus keine Punkte definiert habe sondern in Osmand, arbeitet das Programm nicht.

Ich musste Locus deinstallieren, damit Brouter mit Osmand zusammenarbeiten kann.

Ich befürchte, wenn jemand Oruxmap und Osmand auf dem Handy hat, dass derjenige nicht mit Oruxmap arbeiten kann. Alphabetische Reihenfolge.

Nicht alphabetisch, sondern sortiert nach dem last-modified-timestamp der jeweiligen Wegpunkte-Datei, das sind:

{basedir}/osmand/favourites.gpx
{basedir}/oruxmaps/tracklogs/oruxmapstracks.db
{basedir}/Locus/data/database/waypoints.db

D.h. eigentlich sollte die Quelle genommen werden, die zuletzt geändert wurde
(allerdings unabhängig davon, ob wirklich die relevanten Wegpunkte geändert
wurden)

In meinen Tests hat das auch immer funktioniert.

Hast Du vielleicht wirklich Deine Wegpunkte in OsmMand früher schon gesetzt?
Oder irgendwann das Handy-Datum verstellt, so dass die Locus Datei
einen Zeitstempel in der Zukunft hatte?

Oder habe ich hier noch einen Bug. Werde aber nochmal drüber nachdenken,
wie ich das robuster machen kann.

Gruss, Arndt

Ich habe jetzt mal Locus wieder installiert.

Bevor ich Locus gestartet habe, blieb nach dem Start von Brouter der Bildschirm schwarz. Nach Start von Locus und dem Akzeptieren der Bedingungen moserte Brouter wieder, dass es im Locusordner nichts findet. Das nur zu Info

Nachdem ich in Osmand, meine ewig alten from und to Punkte ersetz habe, funktioniert es.

Hi Volker,

ich antworte mal im “richtigen” Faden.

BRouter fragt nach dem Basisverzeichnis der SD-Card, also das Verzeichnis im Android-Dateisystem, relativ zu dem die Arbeitsverzeichnisse sowohl von brouter als auch osmand (, locus, oruxmaps) liegen.

Typisch ist das /mnt/sdcard oder /mnt/sdcard/external_sd oder so. Der Vorschlag, dem BRouter macht, sollte auch nicht ganz daneben sein.

Bei OsmAnd gibt es eine Menu-Option, um das Arbeitsverzeichnis einzustellen. BRouter braucht einfach das selbe.

Gruss, Arndt

Hi vielen Dank erstmal Arndt,
mal schauen ob ich das so hinbekomme.
Wie funktioniert das dann in Locus und Oruxmaps? Genauso mit den Punkten setzen “from” und “to”?
LG Volker

Hi Volker,

Ja, genauso mit “from” und “to” - klappt wunderbar :).

Habe die readme.txt jetzt (für die Version 0.8) überarbeitet und das mit aufgenommen.

Wobei die spannendere Geschichte ja eigentlich die “nogo” Punkte sind, und die hatten in der Version 0.7 noch ein Problem (dokumentiere niemals eine schlechte Lösung, sondern verbessere sie…)

In 0.7 wurden nogo-Punkte genau wie die Wegpunkte auf “nicht Triviale Knoten” gemapped, also zur nächsten Abweigung, Kreuzung etc. Damit waren die nur beschränkt benutzbar, und ich brauchte z.B. 6 Sperrpunkte, um die Rheinbrücke bei Worms zu sperren… Jetzt (0.8) werden die geometrisch gemapped, wie man das auch erwartet, d.h. eine nogo-Area mit z.B. 20m Radius sperrt jeden Weg, der diese Scheibe berührt. Und der Radius ist konfigurierbar, sodass man z.B. mit einem “Wegpunkt” mit Namen “nogo40000 Schwarzwald” auch eine ganze Region sperren kann und nicht nur eine Brücke.

Und apropos geometrisches Mapping von Wegpunkten. Auch für die “from”, “to” und “via” Punkte verwendet BRouter ja das simple Mapping auf den nächsten (Luftline!) nichttrivialen Knoten. Das ist bisher gut genug, und es hat sich auch noch keiner beschwert, aber:

  • im Online Protokoll sehe ich immer wieder gescheiterte Routings, weil der Zielpunkt auf einer “Insel” liegt oder auf einem Privatparkplatz etc und die laufen dann ewig und der Benutzer weiss nicht, warum

  • ich experimentiere mit dynamischer Neuberechnung, und da reicht das einfach nicht, weil hier ja das Maptool die Neuberechnung triggert und die aktuelle GPS-Position als Startpunkt vorgibt. Und dann ist das simple Mapping zum nächsten Knoten auch mal auf der anderen Seite der Bahnlinie und dann hat man ein Problem. Ich habe also auch für das Wegpunkt-Mapping jetzt ein “Line-Matching” implementiert was auch nur Wege findet, über die das Profil routen kann. Das habe ich aber bisher nur für die Online-Version enabled, für die Android-Version noch nicht, weil es noch ein bisschen langsam ist.

Die Version 0.8 ist auch notwendig geworden, weil bei der alten ja ab morgen (5.5.) schon ein Warnhinweis kommt wegen der Beta-Expiry, und die 0.8 läuft jetzt ein Jahr länger.

Super Arndt. Ganz hervorragende Arbeit.Ich bin jetzt schon etliche Radtouren gefahren mit Deinem Brouter. Die Wegvorschläge sind das beste was mir bisher im Bereich Radeln über den Weg gelaufen ist. Es macht richtig Spaß und mit den Berechnungen des “Save” Profiles kann ich ohne Bedenken mit meinem Sohn (sieben Jahre) losradeln. Heute 30km zusammen gefahren. Da passt einfach alles. Wenn es Dir jetzt noch gelingt Touren über 100 km berechnen zu können, dann wäre das der Oberhammer.
Ist aber kein “must have”. Es gibt bei uns zuhause ganz excellente Radwege,z.B. den Mainradweg, der bei uns in Redwitz a.d.Rodach vorbeiführt bis hinunter nach Nbg und auch Richtung Schweinfurt-Würzburg. Da würde ich mir noch ein Profil von Dir wünschen das versucht so “Eben” wie möglich zu routen. Nun weiß ich eben auch das ich das “save” Profil selbst ändern kann, jedoch nicht ganz durch steige,sprich-hiermit Dich darum bitten möchte so ein Profil bereitzustellen. Evtl. wäre ein deutsches “how to modify” allererste Sahne. Übrigens, es funktioniert bei mir sowohl mit Oruxmaps,Osmand+ und Locus pro. Am liebsten ist mir dabei immer noch Osmand WG. des direkten Routings,sprich Sprachansagen und Abzweig Hinweisen und der direkten Poi Offline Anbindung und Suche.
Mittlerweile besteht mein Sohn immer drauf das Smartphone (HTC DesireX) an sein Rad zu schnallen.
Nochmals danke an Dich für Deine tolle Arbeit, das innovativste Produkt fürs Biken wie ich finde.
LG Volker

Hey Arndt,

welche Rationale gibt es denn, die App überhaupt zu beschränken? Dass Du die App verlängert hast, ist schon mal super. Ich habe ein paar Leuten Dein Programm empfohlen und die hielten es für ungeeignet für den Sommer wg. der Expiry. Sie wollten sich einfach nicht in ein System eindenken, dass nicht mehr lange verfügbar ist.

Wäre es nicht möglich die Expiry ganz raus zu nehmen?

Viele Grüße und frohes Radeln :D,

Vipanny

Hi Volker,

Mit Zwischenpunkten kannst Du längere Touren rechnen, denn die Rechenzeit skaliert zwar quadratisch, aber das zählt bei Zwischenpunkten ja nur pro Abschnitt. Ich habe aber auch schon 250km Luftlinie am Stück gerechnet auf dem Handy, dauert halt nur sehr lange, aber geht.

Der Vorteil, wenn man eine solche Strecke “frei” rechnet statt mit Zwischenpunkten ist, dass das Suchgebiet grösser ist und man auf diese Weise natürlich Strecken finden kann, die man durch Zwischenpunkte ausgeshlossen hat.

Änder einfach die Zeile:

assign uphillcost 0

in

assign uphillcost 60

Dann hast Du die “Höhenstrafe” verdoppelt. Führt natürlich dazu, dass er dann auch mal im Maintal bleibt, obwohl jeder Ziel-Orientierte Radler die Abkürzung über den Hügel nehmen würde. Aber das ist wohl das, was Du willst.

Das safety-profil hat noch einen anderen Fehler: Ich benutze bisher das “cycleway” tag fast nicht (ausser für die umgekehrten Einbanhstrassen). Weil ich es auch nicht vermisse, denn hinter solchen an der Strasse getaggten Radwegen steckt oft die übliche Bordsteinkanten und Baumwurzel-Folter, und das bei Benutzungspflicht, sodass man diese Strecken nicht unbedingt suchen sollte. Vernünftige Radwege sind, zumindest in Deutschland, in OSM meist als eigener Weg eingetragen (highway=cycleway).

Für ein Safety-Profil für Kinder müsste man aber auch die “normalen” Radwege präferieren-

Danke für deine Mühe und Infos

Die Syntax ist mir beim Durchlesen der Dokumentation und des Posts nicht klar geworden.

nogo40000 Schwarzwald

Bedeutet das, der Schwarzwald wird komplett mit einem zusätzlichen Rand von 40km gesperrt. Oder ein Punkt der den Tag Schwarzwald hat wird in einem Radius von 40 km gesperrt.

Was kann muss ich einsetzen, wenn ich die Stadt Frankfurt am Main umfahren will.

Persönlich vermute ich auf Dauer das Problem, wenn man bestimmte Dinge umfahren will, die exakte Bezeichnung braucht. Woher bekommt man die.

Beim Schreiben merke ich, dass man vermutlich das OSM-Datenmodell verdammt gut kennen muss, um die richtige Eingabe zu machen.

Fazit: Grenzen und Möglichkeiten gehen aus der Dokumentation nicht hervor.

Hi,

nein Missverständnis. Der Text “Schwarzwald” wird hier einfach ignoriert.

Nogo-Punkte sind ja beliebig viele erlaubt, also habe ich erlaubt, dass man den Nodenamen um was sprechendes ergaenzen kann, um sie wiederzuerkennen. Man bekommt ja einen Dialog (“Check nogo-selection”) mit allen Wegpunkten, die mit “nogo” anfangen, und dann muss man ja wissen, was sie bedeuten.

Um Frankfurt zu umfahren, würde ich einen Wegpunkt “nogo5000 Mainhatten” auf den Hauptbahnhof setzen.

Das sperrt dann allerdings auch den Mainradweg.