Tuesday, October 12, 2010

Marble: configurable routing profiles

Wow, long time since the last blog entry.
This time it won't be about KDevelop - as I found another very interesting KDE project.

I started contributing to OpenStreetMap like two years ago (only local area) and got a Garmin eTrex that can load OSM maps. I use it for bicycling.

The thing that needs improvement is bicycle routing. I mean in general it works, but when using it in practice it matters a lot (a) what bike you use and (b) what kind of driver you are. So it's nonsense to have a single bicycle routing profile. I want:
  • MTB offroad
  • MTB shortest route
  • racing using the shortest route (traffic doesn't matter)
  • racing using the "nicest" route (cycleways, not too much traffic)
  • family (cycleways only if possible)
You see my needs are very special, and this I will never get from google maps or a garmin.

What I found are a number of open source routing applications using osm data. The most promising one (for my special needs) is routino - as you can easily create profiles using xml files.

And, of course I want a proper application - nothing web based. (easier to run, faster, better usability)
Marble fits in perfectly.

So I started writing a routino plugin for marble - was quite easy. The only problem was that marble had only a limited number of routing options - as it supports multiple routing backends (online and offline).

The proper solution are fully configurable profiles - and I just merged this feature into trunk. (I feel very happy about that, thanks to Dennis and Torsten for their help and patience)

The user can easily create new profiles or adjust them. A default set similar to the previous ones set is loaded on first startup. Just see screenshots below...