adrift on a cosmic ocean

Writings on various topics (mostly technical) from Oliver Hookins and Angela Collins. We have lived in Berlin since 2009, have two kids, and have far too little time to really justify having a blog.

Hacking on Maemo5 eCoach

Posted by Oliver on the 17th of June, 2011 in category Tech
Tagged with: ecoachmaemon900ovimaps

Since I took possession of my Nokia N900 (a marvellous piece of smartphone technology, despite being mercilessly killed off by my employer) I've been using eCoach to track my sports activities outdoors. Mainly running and more recently cycling, it's a pretty decent analogue of SportsTracker which is, vaguely speaking, the S60 version and forerunner in many ways (not that eCoach is a port - it's not).

The thing that always flummoxed me was that, on a Nokia device (fully equipped with Ovi Maps) why the choices of mapping backends should be limited to Google Maps, Virtual Earth and OpenStreetMap (and maybe one or two others I can't remember). It seemed ridiculous that you should have to connect to the Internet to get maptiles which should already exist on the device. Of course, eCoach is open source so I took a look at the code.

After digging around a bit, I was very displeased to find that there is no usable API to the installed Ovi Maps application (or at least, none I could find easily in the public Internets). I'm really hoping this will change in future for other devices (if it is not already there). There is a wealth of great location-based applications waiting to be created as long as a decent API into the local libraries is provided.

Since I still wanted the Ovi Maps support (I prefer the way they look to the other backends, for navigation at least) I looked into how eCoach handles mapping. It turns out it uses the osm-gps-map libraries which by default only supports the mapping backends I listed above. After a bit of brief experimentation I was able to add the Ovi Maps maptiler backend to eCoach. I added the views I could find through the web client - "normal", "hybrid" (satellite) and "normal.transit" (public transportation overlaid on top of the normal maps). Unfortunately I was slightly stumped by the hard-coded mapping backend iterator (limited to 10 menu items) and the fact that the menu choices enumeration also included Yahoo maps choices which were not actually used anywhere else!

OviMaps normal view

This is the normal view, with eCoach window decorations.

Public Transportation overlay

And above is the public transportation overlay view. I'd prefer the icons to be a bit larger (and in fact they are, in the local device maps, but obviously not the tiles for the web interface which is expected to be used on a computer) but I can live with it. Fortunately osm-gps-map caches downloaded tiles (and there is maploader package for eCoach as well) so not all is lost.

I haven't yet managed to make contact with the maintainers of the package so if you'd like to use the latest trunk with my patch incorporated, you can download it here. Let me know what you think.

© 2010-2018 Oliver Hookins and Angela Collins