Skip to content
/ Biker Public

Biker wants to be a routing software, intended to be useful for planning bike tours.

License

Notifications You must be signed in to change notification settings

lenalebt/Biker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Biker tries to be a nice software for planning bike tours. It is 
possible to use it without having a working internet connection, if 
you downloaded some map data beforehand.

Usage:
~~~~~~
First, you need to compile it:
    
    protoc --cpp_out=. src/Database/Parser/pbf/{osm,file}format.proto
    qmake
    make

You should now be able to start it, typing:

    ./Biker

If you have a working internet connection, it should start 
downloading some map data. To be able to do routing, you need to 
load some OSM data. You may use pure .osm files (you can get files 
for some regions from "http://download.geofabrik.de/osm/"). Press 
"Ctrl-O" to open an .osm-file (or choose File->Open). It might take 
some time to load a file, and it uses a huge amount of RAM. Later 
on, I want to improve this part.

If you want to cut some parts out of a file (e.g. to speed up 
loading and decrease RAM usage), you may use "osmosis" to do so.

Planning a route should be pretty intuitive (after having opened an 
.osm file), except zooming: use a right click to zoom in, and a 
click on your wheel (or both buttons) to zoom out. This will be 
improved later on.

It is possible to adjust some parts of the routing algorithm via the right panel.

Please excuse the crappy i18n. Guess it? Later on, ....


Dependencies:
~~~~~~~~~~~~~
Biker depends on:
    - libqwt5
    - libcurl
    - libzzip
    - libprotobuf

and, of course, qt4.

If you experience compile problems, try to install these libraries 
(developer version). If you experience problems with libqwt5, adding 
a link in /usr/lib and /usr/include might help:

    ln -s /usr/lib/libqwt-qt4.so /usr/lib/libqwt.so
    ln -s /usr/include/qwt-qt4 /usr/include/qwt5

It might be necessary to change the names. You can also adjust the 
name of the library in the .pro-file

Known Bugs and shortcomings:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

-Biker crashes when changing the map type after having planned a 
route. This is due to QMapControl was not made to change the base 
map layer after it has been created (or I am unable to use it 
correctly ;D).

-It needs some time to change between two map layers. This is due to 
zooming with QMapControl to a specific detail level makes it zoom 
through all levels above. I think it is not possible to change this 
behaviour without changing some implementation detail of 
QMapControl. It did not bother that much ;).

-Biker uses tons of RAM. This is not due to someone elses work ;D. 
Since I did not have the time to write a better database backend up 
to now, at every startup we need to parse an osm file (XML or PBF) 
and hold everything from there in RAM. If someone is willing to 
change that, have a look at Database/osmdatabase.hpp and 
Database/osmdatabasewriter.hpp .

-Biker is not that fast on routing as you might expect. This is due 
to, guess it, the routing algorithm used. I use AStar because it is 
easy to modify the cost function without the need to change anything 
else. Being able to change the cost function, especially to avoid 
hills was a design goal of the program.
There are some other, faster algorithms where you need to precompute 
parts of the graph, but you are not free to change the weights later 
on (if I got it right, which might not be the case). In Every case, 
it is more work to implement it. Examples are "Highway Hierarchies" 
and its successors.
If you want to implement your own routing algorithm, have a look at 
Routing/routing.hpp , Routing/metric.hpp and Routing/astar.hpp . You 
will also find an implementation of Dijkstras algorithm in 
Routing/dijkstra.hpp .

-Using qmake as build toolchain isn't that nice. I was thinking 
about changing to cmake later on, but did not use use that tool up 
to now and did not have the time to get used to it. Manually 
creating some header from .proto files is not okay, too.

Thanks to:
~~~~~~~~~~
Kai Winter, who wrote QMapControl.
Hermann Kraus, who wrote a tool for downloading and parsing SRTM data.
Christian Vetter, who wrote MoNav and made it possible for me to parse .osm.pbf files.

About

Biker wants to be a routing software, intended to be useful for planning bike tours.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published