86 lines
3.6 KiB
Markdown
86 lines
3.6 KiB
Markdown
---
|
|
parent: Developers
|
|
---
|
|
|
|
Build your own segments files
|
|
=============================
|
|
|
|
BRouter uses its own data format (`.rd5` files), split in tiles of 5 x 5
|
|
in latitude and longitude. You can download the official segment files (weekly
|
|
built) from [brouter.de](http://brouter.de/brouter/segments4/) but you can
|
|
also build them yourself from an OSM dump (e.g. planet or [GeoFabrik
|
|
extract](https://download.geofabrik.de/))
|
|
|
|
|
|
## Build the pbfparser
|
|
|
|
First, there are two file formats available to download OSM data: `bzip`-ed
|
|
XML files (very large) and `.pbf`
|
|
([Protobuf](https://github.com/protocolbuffers/protobuf) format) which is much
|
|
more efficient. If you want to use the latter one, you will have to build the
|
|
`pbfparser` (located in `misc/pbfparser` first):
|
|
|
|
* Download [the latest
|
|
version](https://github.com/openstreetmap/osmosis/releases)
|
|
of [Osmosis](https://wiki.openstreetmap.org/wiki/Osmosis) and unzip it
|
|
somewhere.
|
|
* Copy the `lib/default/protobuf-java-*.jar` and
|
|
`lib/default/osmosis-osm-binary-*.jar` files from the unzipped Osmosis
|
|
archive to `misc/pbfparser/protobuf.jar` and `misc/pbfparser/osmosis.jar`.
|
|
* Build BRouter and copy
|
|
`brouter-server/build/libs/brouter-*-all.jar` to
|
|
`misc/pbfparser/brouter.jar`.
|
|
* You can build the `pbfparser` using, in the `misc/pbfparser/`
|
|
folder,
|
|
|
|
```
|
|
javac -d . -cp "brouter.jar:protobuf.jar:osmosis.jar" *.java
|
|
```
|
|
|
|
* Finally, you can build a `jar` file from these files using
|
|
|
|
```
|
|
jar cf pbfparser.jar btools/**/*.class
|
|
```
|
|
|
|
_Note:_ If the `jar` file is not properly created, everything else will seem
|
|
to work normally but there will not be any data extracted from the OSM data
|
|
dump. You can check what is actually inside the built `jar` file using
|
|
`jar tf pbfparser.jar`.
|
|
|
|
|
|
## Run the map creation script
|
|
|
|
If you want to have elevation information in the generated segments files, you
|
|
should download the required [SRTM
|
|
files](https://cgiarcsi.community/data/srtm-90m-digital-elevation-database-v4-1/)
|
|
and set the `SRTM_PATH` variable when running the `process_pbf_planet.sh`
|
|
script.
|
|
|
|
Any flavor of the 90m SRTM database should be working, but the one used by the
|
|
official BRouter segments files are the ones provided by
|
|
[CGIAR](https://cgiarcsi.community/data/srtm-90m-digital-elevation-database-v4-1/).
|
|
If you are working with rather small geographical extracts, you can download
|
|
tiles manually using [this
|
|
interface](http://srtm.csi.cgiar.org/SELECTION/inputCoord.asp) (use the
|
|
"ArcInfo ASCII" format), instead of having to ask for an access for bulk
|
|
download of data. There is no need to unzip the downloaded files, the
|
|
`process_pbf_planet.sh` script expects a folder with all the ZIP files inside
|
|
and will manage it.
|
|
|
|
Note that if you don't have the SRTM data available, the segments files will
|
|
still be generated without any issue (but they will miss the elevation data).
|
|
If you are not sure which SRTM files you have to download, you can run the
|
|
script once and it will log all the SRTM files it is looking for.
|
|
|
|
You can now run the `misc/scripts/mapcreation/process_pbf_planet.sh` script to
|
|
build the segments. Have a look at the variables defined at the beginning of
|
|
the files and overwrite them according to your needs. By default, the script
|
|
will download the latest full planet dump from
|
|
[planet.osm.org](https://planet.osm.org/). You can also download a
|
|
geographical extract provided by [Geofabrik](https://download.geofabrik.de/)
|
|
and set the `PLANET_FILE` variable to point to it.
|
|
|
|
_Note:_ It is possible that you encounter an error complaining about not being
|
|
able to run `bash^M` on Linux/Mac OS. You can fix this one by running
|
|
`sed -i -e 's/\r$//' process_pbf_planet.sh`.
|