BRouter: offline Fahrrad-Routing für Android

Dieses “bundle” war nur eine Notlösung, um Integration zu ermöglichen ohne Zugriff auf die Quellen.

Jetzt sind die Quellen öffentlich (und GPL-ed ):

https://github.com/abrensch/brouter

und Da findest Du auch die gesuchte Java-Datei (unter brouter-server/src/main/java/btools/server )

Gruss, Arndt

Hallo Arndt,

vielen Dank. Mein Ziel ist es ein Jar zu generieren. Ich bin keine großer Maven Kenner aber Mapsforge etc. kann ich übersetzen.

Leider schaffe ich das mit Brouter noch nicht. Hast du mir da einen Tipp?

Viele Grüsse
Achim

Nachtrag: Ich habe die depency im pom File von JUNIT auf 4.11 geändert dann gehts…? wie bringt man das mit 4.12 zum gehen?

mvn -DskipTests clean install

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8.828s
[INFO] Finished at: Sun Jan 19 17:17:58 CET 2014
[INFO] Final Memory: 11M/31M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project brouter-util: Could not resolve depend
encies for project org.btools:brouter-util:jar:0.98: Could not find artifact jun
it:junit:jar:4.12 in central (http://repo.maven.apache.org/maven2) → [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit
ch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please rea
d the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyReso
lutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command

Sehr schön, freut mich. Danke.

Gruß,
Norbert

Da haben wir was gemeinsam, ich bin da auch noch in der Lernkurve

Eigentlich schon krass, dass Maven, dessen Stärke ja gerade die Handhabung von Dependencies ist, bei den eigenen Dependencies so zickig ist.

Also ich benutze maven-3.05 mit android plugin 3.6.0 und Android SDK platform 10 und Junit 4.11 und es geht auch nur genau in der Kombination (weil ich mir zur Zeit keine neuere Android SDK Plattform installieren will). Ich hatte den Pull-Request zum pom.xml übernommen weil ich dachte ich bin einfach out-of-date mit meinen Tools.

Aber nur um das Jar-file zu bauen (nicht das APK) ist das alles schon mit Kanonen auf Spatzen, man kann’s auch einfach compilieren:

javac -d . brouter-util/src/main/java/btools/util/.java
javac -d . brouter-expressions/src/main/java/btools/expressions/
.java
javac -d . brouter-mapaccess/src/main/java/btools/mapaccess/.java
javac -d . brouter-core/src/main/java/btools/router/
.java
javac -d . brouter-server/src/main/java/btools/server/.java brouter-server/src/main/java/btools/server/request/.java
javac -d . brouter-map-creator/src/main/java/btools/mapcreator/*.java
jar cf brouter.jar btools

Oder in einen Eclipse Workspace importieren…

Hi Arndt,

vielen Dank für die Antwort. Ich übersetze das zur zeit so:

set M2_HOME=D:\apache-maven-3.1.1
set JAVA_HOME=C:\Programme\Java\jdk1.7.0_40
set ANDOID_HOME=D:_AndroidSDK\adt-bundle-windows-x86-20131030\sdk

set Path=d:\apache-maven-3.1.1\bin;%Path%
set Path=D:\gradle-1.9\bin;%Path%

rem mvn -DskipTests=true clean install assembly:single
rem mvn -DskipTests clean install
mvn clean install
rem mvn clean package
rem gradle clean build

mit gradle übersetze ich das Mapsforge-Rescue Framework. Wie schon geschrieben JUNIT habe ich im pom File auf 4.11 gesetzt…

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] brouter … SUCCESS [6.562s]
[INFO] brouter-util … SUCCESS [11.484s]
[INFO] brouter-expressions … SUCCESS [3.657s]
[INFO] brouter-mapaccess … SUCCESS [4.390s]
[INFO] brouter-core … SUCCESS [4.485s]
[INFO] brouter-map-creator … SUCCESS [10.593s]
[INFO] brouter-server … SUCCESS [6.454s]
[INFO] brouter-routing-app … SUCCESS [22.140s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:18.921s
[INFO] Finished at: Mon Jan 20 10:40:30 CET 2014
[INFO] Final Memory: 25M/62M
[INFO] ------------------------------------------------------------------------

Der Brouter und auch Graphhopper funktionieren jetzt in meiner DesktopAnwendung mit dem MapsforgeRescue sehr gut…

Vielen Dank
Achim

Ps.: Ich habe das in IntelliJ importiert, aber das bilden des JAR klappt (noch) nicht… OK. Jetzt auch

…noch ne Frage zum Jar bilden…woher und wie kommt der Manifest File ins JAR? ====>ERROR: kein Hauptmanifestattribut, in brouter.jar

OK so scheint es zu gehen: jar cfm brouter.jar MANIFEST.txt btools

Weiß jemand welche brouter rd5 Dateien von http://h2096617.stratoserver.net/brouter/segments2/ man für die Alps Karte von http://www.openandromaps.org/downloads/europa braucht? Hier die Kartenabdeckung als Bild http://www.openandromaps.org/wp-content/images/maps/europe/Alps.jpg

Die Kollegen im Locus-Forum wissen sowas:

http://forum.locusmap.eu/index.php?topic=3489.msg26601#msg26601

Hi yow,

falls du MOBAC hast ist das ganz einfach. Setze den Haken bei WGSGrid GITTER und “Every 5 degrees” und der linke Kreuzungspunkt ergibt die RD5 Datei.

In Deinem Fall solltest du mit denen klar kommen:

E5_N45.rd5
E5_N40.rd5
E10_N45.rd5
E10_N40.rd5

Hallo,
ich habe auf meinem Samsung Galaxy SII OsmAnd+ 1.6.5 beta und BRouter 0.9.1 installiert. Ich möchte jetzt BRouter auf 0.9.8 updaten.
Muß ich dazu die Version 0.9.1 zuerst deinstalieren und dann die Version 0.9.8 neu installieren oder kann ich die entpackten Dateien von 0.9.8 einfach vom PC auf das Handy über die 0.9.1-Dateien drüber kopieren ?
Im voraus Danke für Eure Hilfe.

Gruß
Peter

Sollte beides gehen. NAch De-Installation muss man das base-directory neu eingeben, das ist der einzige Unterschied. Auf der SD-Karte wird durch De-Installation nichts gelöscht.

Übrigens: mit einer aktuellen (“nightly build”) Version von OsmAnd kannst Du BRouter direkt als Navigations-Dienst wählen - so wird ein Schuh draus - mit 1.6.5 geht das noch nicht. Dazu aber zur Sicherheit gleich nochmal mein Kommentar von oben (vom 12.1.):

“Ist aber auch schon gleich ein fieser Fehler drin bei der Konfiguration der Navigations-Dienste: offenbar bezieht sich eine Änderung des Navigationsdienstes zu einem Modus (car/bike/foot) jetzt nicht mehr auf den Modus, den man in diesem Dialog auswählt, sondern auf den Default-Modus, den man woanders eingestellt hat. Verwirrend, aber wenn man’s weiss kommt man zurecht.”

Danke! Dann sollten e5n45 e10n45 und e15n45 passen. Siehe http://postimg.org/image/44jr7p749/

Mobac habe ich nicht. Aber danke für den Hinweis.

Weil sich die Angaben oben und hier teilweise widersprechen habe ich sicherheitshalber folgende Dateien runtergeladen:
E10_N40.rd5
E10_N45.rd5
E15_N45.rd5
E5_N40.rd5
E5_N45.rd5

Und in den Ordner /mnt/sdcard/brouter/segments2 kopiert. Dazu alles von http://brensche.de/brouter/profiles2/ in den Ordner /mnt/sdcard/brouter/profiles2

Dann in Orux zwei Wegepunkte mit Namen from und to erstellt, dann Route suchen gewählt und dort die Optionen zu Fuß, kürzeste und BRoute (offline) gewählt. Das ganze mit dem blauen Haken bestätigt. Dann kommt die Meldung “Fehler: Mindestens zwei Punkte notwendig”.

Hi Yow,

E15_N45.rd5 ist Östlich Wien Graz…habe ich vergessen…SORRY

Das “from” “to” müßte eigentlich gehen wenn du das richtig installiert hast

…aber das war früher: Jetzt kannst du in OruxMaps Unter dem Icon Autobahn==>Route suchen Options (Klappboxen)==>{Auto/zuFuß/Fahrrad}==>{kürzeste/schnellste} ==> BROUTER (Offline) anwählen

dann mit +Waypoints eingeben(Mehrere möglich…Kreuz auf der MAP) dann den Haken anwählen und es wird geroutet…

Falls du auf dem Desktop Brouter unter Java testen willst schick mir ne Mail…

Ich glaube mein Fehler war das ich die Wegepunkte in Orux oben im Menü erstellt habe. Wenn ich direkt Route suchen wähle und dann mit dem Pluszeichen die Wegepunkte erstelle kommt allerdings die Meldung brouter config service not found oder so ähnlich.

Eventuell mußt du Brouter Standolone starten und am Ende irgenwie Service am Ende auswählen,…nur einmal…

Nachdem ich brouter manuell gestartet, ein Profil gewählt, anschließend den Server Mode gewählt und dann wiederum ein Profil, aber ein anderes (irgendwas mit foot) aktiviert habe funktioniert es.

Wie kann ich brouter als Standard in Orux setzen?

…geht leider nicht! Habe ich im OruxForum schon mehrmal angefragt ob das eingebaut wird zu konfigurieren…

Ikonor’s Leaflet Client für BRouter ist ja seit einiger Zeit auf Github:

https://github.com/nrenner/brouter-web

Der war hier in diesem Thread bei Kommentar#117 schonmal Thema und ist, obwohl immer noch “alpha”, seitdem deutlich erwachsener geworden. Speziell die Fähigkeit, interaktiv Sperrkreise zu setzen und damit die berechnete Route zu “schubsen” find ich klasse. Das Höhendiagramm mit Positions-Feedback auf den Track ist auch nicht von schlechten Eltern.

Ich habe den jetzt auch mal auf meinen Server geschoben mit einem Serverseitigen Router-Prozess:

http://h2096617.stratoserver.net/brouter-web/

Ich weiss noch nicht, ob dieser Serverprozess standhält, er benutzt auch wieder eine Priorieserung gemäss “neue Anfragen killen die alten”, diesmal aber mit einem Threadpool von 5 und (vorerst) mit einem Timeout von 60 Sekunden. Mal schauen, wenn das Ding überrannt wird muss ich mir was besseres überlegen. Wem das zu instabil ist kann natürlich auch, wie von Ikonor eigentlich vorgesehen, den Router auf dem eigenen PC laufen lassen.

Viel Spass damit!

Hallo Arndt,

wie kann man bei der Standolone Version (Brouter.java) die “nogos” bzw. “Sperrkreise” übergeben?

Vielen Dank
Achim

Hi Achim,

in BRouter.java wird das nicht durchgeschleift. Wenn Du in Deinem Client Sperrpunkte setzen willst, musst Du die Funktionalität aus BRouter.java in Deinen Code übernehmen und da die Liste der Sperrpunkte direkt an “RoutingContext” übergeben.

Vorlage ist entweder so, wie es der Leaflet-Client macht:

https://github.com/abrensch/brouter/blob/master/brouter-server/src/main/java/btools/server/request/ServerHandler.java

oder der Android-Service:

https://github.com/abrensch/brouter/blob/master/brouter-routing-app/src/main/java/btools/routingapp/BRouterWorker.java

Gruss, Arndt

Hallo Arndt

vielen Dank für die Links.

Was macht eigentlich der AlternativeIndex ?

rc.setAlternativeIdx(Integer.parseInt(params.get( “alternativeidx” )));

Ich habe zwischenzeitlich die Möglichkeit eingebaut die Alternativen von Brouter anzuzeigen. Diese kann man genauso wie die dahinderliegend MAP Ein und Ausblenden.

Behälst du die Möglichkeit der “Alternativen Routengenerierung” zukünftig bei?

Vielen Dank für Brouter Standalone
Achim