Compiling and running MoNav

MoNav displaying a route in Karlsruhe

MoNav displaying a route in Karlsruhe

Today was a cold and rainy sunday, so I grabbed the occasion to play with various software which can make use of our collaboratively collected Openstreetmap data. One major gap in the toolchain is the lack of an end user friendly, working navigation software for mobile devices. There are several approaches, but none of them seems to be capable to replace an average user’s Garmin or TomTom device. Most are hard to compile, install, configure and use. And even if you manage to get it up and running, it is likely that you miss some features which you knew on your proprietary devices.

After reading this announcement I felt the need to visit the homepage of MoNav, “a Desktop / Mobile application that offers state-of-the-art fast and exact routing with OpenStreetMap Data. It is based on a dimploma thesis by Christian Vetter Download. “. While the master thesis still mentiones WxWidgets as the toolkit, the current documentation (and code) is based on Qt. Consequently, it uses code of the Qt Mobility project.

The downloads page of the wiki provides precompiled binaries for some operating systems, precomputed “map” files and the source code which you’ll need to compile it for Linux. I was interested in the client, not the preprocessor software for the first tests. On my machine, it neither compiled natively nor in a cross-compilation environment for the N900. Updating the Qt packages didn’t cure the problem, so I decided to disable the code lines which referred to the code of the Qt Mobility project (namely the class QGeoPositionInfoSource and the QTM_USE_NAMESPACE macro). This means I currently cannot communicate with a GPS subsystem, but it’s of less use on my desktop machine anyway :) . After those modifications it compiled, and after downloading some maps I ran it on my desktop machine:

MoNav Main Menu

MoNav Main Menu

One of the first surprises was the address search feature. It provides city and street searches, including live search while you type:

MoNav City Search

MoNav City Search

MoNav Street Search

MoNav Street Search

A search by house number is not implemented. I guess this is due to the incompleteness and inconsistencies when it comes to housenumbers at OSM.

The next surprise was the route calculation. Start and destination points can alternatively be set just by clicking on the map. The route appears on-screen almost in realtime. I guess the backend is similar to the one used in OSRM (demo here), as both projects have been originated by the Karlsruher Institut für Technologie.

The downloaded dataset mainly contains data to do the routing. It is possible to download a dataset with included prerendered raster images to display the map (maknik) or a dataset which does not include any raster data and thus requires an internet connection to fetch the image tiles on demand (osmarender). The docs mention that it should be easy to apply another rendering mechanism, which is why I experimented with spatialite.

Overall the application is very basic, but operational. There are still tons of features missing before it can replace commercial navigation devices for HGV, car, bike and pedestrian routing. But it’s the most promising stub of a routing software I’ve seen until now.

BTW: All map data displayed on this page is licensed as CC-by-SA by openstreetmap and its contributors.