BRouter: Freely configurable routing profile
A major reason for the limited usefulness of most bike routing software is
that routing preferences are a personal issue. Not even will MTB and racing
cyclist never agree on common routing preferences, also the same people will
have different preferences for day and night, dry and wet weather, etc.
The only solution for that problem is the use of a freely configurable cost
function that can easily be adapted to personal needs. This is far more
flexible compared to a set of static functions with a fixed set of
To make that point somewhat clearer: there are other routers that are highly
configurable, look at routino
for an example. However, these are one-dimensional parameter sets that do not
allow to handle arbitrary correlation. BRouter's configuration is different. It
is more a scripting language that allows you to program the cost function instead
of just configuring it. E.g. a non-graded track is generally not a good track.
But if it has a surface=asphalt tag, it probably is. On the other hand,
a grade5-track with surface=asphalt is primarily a grade5-track and you
should not ignore that. Such logic is not implementable in one-dimensional
See some sample profiles provided for the online router.
See the trekking-profile trekking.brf as the
reference-profile with some explanations on the meaning of this script.
See the profile_developers_guide.txt for a technical reference.