BRouter is a configurable OSM offline router with elevation awareness, Java + Android. Designed to be multi-modal with a particular emphasis on bicycle and energy-based car routing.
For more infos see http://brouter.de/brouter.
BRouter on Android
You can install the BRouter app on your Android device from
F-Droid or Google Play
can also build BRouter yourself. You can find detailed
documentation of the BRouter Android app in
Android with Locus
You can use BRouter as the offline routing engine for Locus Map on your Android device. This is currently the most featureful and maintained solutions for using BRouter on your Android device.
A full documentation on how to set this up is available at https://www.locusmap.eu/locus-map-can-navigate-offline/.
Android with OSMAnd
Alternatively, you can also use BRouter as the offline routing engine for OSMAnd on your Android device.
A full documentation on how to set this up is available at
BRouter on Windows/Linux/Mac OS
Build and Install
To compile BRouter (including the BRouter Android app), use
mvn clean install -Dandroid.sdk.path=<your-sdk-path>
If you only want to compile BRouter and the server part (skipping the Android app), use
mvn clean install -pl '!brouter-routing-app'
You can use
-Dmaven.javadoc.skip=true to skip the JavaDoc processing and
-DskipTests to skip running the unitary tests.
Get the required segments (data) files
Routing data files are organised as 5*5 degree files, with the filename containing the south-west corner of the square, which means:
- You want to route near West48/North37 -> you need
- You want to route near East7/North47 -> you need
These data files, called "segments" across BRouter, are generated from OpenStreetMap data and stored in a custom binary format (rd5) for improved efficiency of BRouter routing.
Download them from brouter.de
Segments files from the whole planet are generated weekly at http://brouter.de/brouter/segments4/.
You can download one or more segments files, covering the area of the planet
your want to route, into the
Generate your own segments files
You can also generate the segments files you need directly from a planet dump of OpenStreetMap data (or a GeoFabrik extract).
More documentation of this is available in the
(Optional) Generate profile variants
This repository holds examples of BRouter profiles for many different
transportation modes. Most of these can be easily customized by setting
variables in the first
global context of the profiles files.
An helper script is available in
to help you quickly generate variants based on the default profiles, to create
a default set of profiles covering most of the basic use cases.
Have a look at the
for an in-depth guide on profiles edition and customization.
Run the BRouter HTTP server
Helpers scripts are provided in
misc/scripts/standalone to quickly spawn a
BRouter HTTP server for various platforms.
- Linux/Mac OS:
- Windows (using Bash):
- Windows (using CMD):
The API endpoints exposed by this HTTP server are documented in the
More documentation is available in the
- nrenner/BRouter-web, a web interface on top of the BRouter HTTP server. An online instance is available at http://brouter.de/brouter-web/.
- poutnikl/Brouter-profiles, a collection of BRouter profiles.
- Phyks/BRouterTesting, a collection of test cases for helping develop new BRouter profiles.
BRouter is released under an MIT License.