Tweaking MoNav’s Vector Renderer

Rastatt in Monav (data by osm and contributors, CC-by-SA)

Rastatt in Monav (data by osm and contributors, CC-by-SA)

I could not resist the temptation to tweak the vector rendering code of MoNav.

Though I used a dirty hack, place names are now rendered with some white background to make the map more readable (see the inner city of Rastatt above). Additionally, I added further object types (waterways, railways, tracktypes) to the rendering. tracktype=grade1 objects are rendered as service ways. tracktype=grade2 objects are rendered as unsurfaced ways. tracktype=grade3 objects are rendered as paths. tracktype=grade4 and tracktype=grade5 objects are still omitted. As we are talking about automated (e.g. not hand-crafted) rendering, overlapping objects can occur every now and then. Here’s an image showing placenames, a train station’s name, and tracks in MoNav running on a Nokia N900 powered by the Maemo 5 operating system:

Unterreichenbach in Monav (data by osm and contributors, CC-by-SA)

Unterreichenbach in Monav (data by osm and contributors, CC-by-SA)

I got no feedback yet whether my patches will be accepted. In either case, there are still some issues I need to investigate further. For example, secondary and tertiary roads disappear quickly at lower zoom levels:

Karlsruhe Lowzoom in Monav (data by osm and contributors, CC-by-SA)

Karlsruhe Lowzoom in Monav (data by osm and contributors, CC-by-SA)

In some areas, place names for villages do not appear in the rendering, though they do in other areas:

Missing placenames in Monav (data by osm and contributors, CC-by-SA)

Missing placenames in Monav (data by osm and contributors, CC-by-SA)

Despite those minor issues, I’m still impressed by the new vector renderer. It’s almost incredible how smooth it behaves on the desktop. Currently I see some hickups when zooming and panning on the N900, but it’s astonishing anyway. MoNav makes the dreams come true I had back in 2006, when I started to contribute to OSM.