Web browsers and messaging tools may grab the bulk of mobile software headlines, but navigation and routing apps are arguably more important — after all, they tend to be among the biggest data consumers, and a bad one can leave you seriously lost. Unfortunately, the default mapping apps on most mobile devices — even Linux-based phones — are usually proprietary and rely on commercially-licensed maps. If you care about software freedom and open data, here's a guide to the best mapping and navigation apps for handhelds.
For Android Users: OsmAnd
The clear leader on the Android platform is OsmAnd. Despite the less-than-mellifluous name, OsmAnd runs smoothly on a wide variety of devices. The feature set is impressive, including support for multiple map sets (most notably the free OpenStreetMap data set), routing and turn-by-turn navigation, separate navigation modes for car, bicycle, and pedestrian travel, and (optionally) both auto-zoom and auto-rotate while in motion. OsmAnd supports overlaying several data types on top of the actual map, including multiple categories of points-of-interest (POIs), public transport stations, user-defined favorites, and traffic data from Yandex.
Flexibility with map data is an important concern. OsmAnd can use vector-based layers from OpenStreetMap, which take up less storage space than bitmap "tile maps" but it also supports several popular tile map layers, which is important for those spots where the user-contributed OpenStreetMap data is blank or out of date. If that support of closed map sets troubles your inner Stallman, have no fear: OsmAnd also contains a built-in OpenStreetMap editor, so you can give back to the community by tracking the missing roads and uploading them yourself.
Another critical feature is the ability to pre-load maps into the app, allowing you to save on (at least in the US) horrifically high mobile data charges, as well as cellular coverage holes. The OsmAndMapCreator tool converts OpenStreetMap data into the format required by OsmAnd, allowing you to pre-load not just maps, but POIs and address indexes, so you can search for either of the latter even while offline.
Turn-by-turn navigation is one of the only (minor) chinks in OsmAnd's armor. The app supports two different routing engines, the commercial CloudMade and the open source Yet another OpenStreetMap Route Service (YOURS). But, turn-by-turn directions require an active Internet connection. OsmAnd can calculate routes while offline, however — you just need to look at the map to find your way.
For Map Geeks: gvSIG Mini
OsmAnd offers more than what most mobile map users need, but if you are a true mapping geek, you might appreciate the feature set of gvSIG Mini. Much like OsmAnd, gvSIG Mini supports multiple map data sources, including OpenStreetMap, but it also allows you to layer several maps onto the display at once, so you can include satellite images as well as vector street maps. Even more interesting is the ability to use any Web Map Service (WMS)-compliant server as a map layer; this opens up the possibility of using customized map sets — say, NOAA weather, for example — or even connecting to your own private WMS service.
gvSIG Mini comes in two flavors, one for Android and one for other phones with Java Micro Edition (ME), which includes most Symbian smartphones. It supports online route calculation with YOURS, and the offline pre-loading of map data with a desktop application. That application, PhoneCache, is available for Linux, Mac OS X, and Windows. Thankfully, you can also cache map data that you download via the app while you are online, which is significantly easier than pre-loading through a separate application.
Like OsmAnd, gvSIG Mini supports POI and address searching, though it uses the proprietary NameFinder service instead of OpenStreetMap's Nominatim. gvSIG Mini generally sports more technical features of interest to the map tinkerer, such as digital compass support, and detailed exposure of the GPS readings. In exchange for that, you lose a few niceties like turn-by-turn directions and bike or pedestrian routing modes. On the other hand, gvSIG Mini can automatically post your location to Twitter and Facebook, if that's the sort of thing you feel the need to do....
For Maemo Users: Mappero
Both OsmAnd and gvSIG Mini are built (primarily) for Android devices. For those with a Maemo devices, such as Nokia's N900 phone or Internet Tablets, the best option is Mappero. The app used to be named "Maemo Mapper," and still appears listed that way in some Maemo application directories, but it is still under active development.
Mappero is primarily a one-developer effort, so it understandably does not support as wide of a feature set as either of the Android apps already discussed. But what it does do it does well: multiple map sources, including OpenStreetMap, POIs, multiple (user configurable) routing engines, and even turn-by-turn navigation with voice output in multiple languages.
Mappero allows pre-loading map tiles from within the app itself, although the interface is far from clear. You will need to grab the corner coordinates for the map area you wish to download in another application — such as from the OpenStreetMap slippy map — before you begin, and the UI gives no progress-bar reporting of how much of the download it has completed. In addition, be aware that Mappero uses tile maps, even when OpenStreetMap is the data source, and these consume far more storage than vector map data. Finally, Mappero does not, unfortunately, provide for offline address or POI searching, nor support advanced features like multiple map layers. At least, not yet.
Separate builds are provided for the different Maemo devices (tablets and the N900). What is not quite clear yet is whether Mappero will be ported over to the MeeGo handheld platform that is Maemo's official successor.
For webOS: Minimap
Those users with one of Palm's webOS line of Linux-based phones have a simple but quality option in Minimap. Minimap uses only OpenStreetMap tiles, but it allows for a choice between three different tile sets (the Osmarender and Mapnik general-purpose renderers and the bicyclist-oriented Cyclemap). It can also be switched into a "night mode" that renders the map in a darker color scheme.
Navit: When You Absolutely Have to Get There, and You Can't Choose Your Phone
Navit describes itself as a "car navigation" app, but it is far more popular on phones than it is on home-brewed dash PCs. In fact, it has been packaged for a wide variety of platforms, including desktop Linux distributions, but also Android, webOS, Windows Mobile, jailbroken iPhones, and even the Openmoko Freeruner. Navit packs in the basics, including POIs, routing, OpenStreetMap (plus several of the popular proprietary web maps), and pre-loading map data while offline. Navit's strengths include the use of vector maps instead of tile maps, the ability to render the map in 3-D "POV" view, and speech output of turn-by-turn directions.
On the down side, Navit is currently very, very difficult to configure — it requires editing an XML file by hand to even get the app running, and adding offline map storage is a multi-step process that varies depending on the map source (but in no case is it simple), and requires converting the map cache to Navit's format manually. In addition, several mobile platforms are unstable enough that it is wise to check the wiki to see if they currently run — Maemo, for example, has had broken Navit builds since before the N900 days, and a nasty bug causes it to crash when trying to render its own internal GUI. On other platforms, such as Android, you may need to know specifics about your hardware build in order to grab the correct binary.
Like most of the apps listed, Navit uses gpsd as its location data source, but it also attempts to directly read NMEA-compatible GPS devices is gpsd is not present, which could lock out other location-based services also running at the same time. Last but not least, while Navit has a comparatively quick internal routing engine, it is limited to calculating routes that start at the current location.
So why, then, does Navit make it into a Top Five list? Two reasons. First, because if you can configure it correctly, it works great, complete with a very smooth GUI and the added assistance that a 3-D map view provides. Second, because Navit is one of the apps bundled with the MeeGo project's in-vehicle Linux distribution, which gives it a future. Navit's shortcomings, after all, are primarily user-interface issues; with support and developer attention from the MeeGo project, it remains a contender to keep an eye on.
If That Doesn't Get You Around the Globe....
This list, sadly, does not cover every phone or handheld on the planet. Blackberry users, for example, have far fewer choices when it comes to open source navigation — although if you visit the gvSIG mobile site at m.gvsigmini.org, you will find unadvertised Blackberry builds of gvSIG Mini. Windows Mobile users may want to check out gpsVP or NaviPOWM. iPhone users afraid of jailbreaking their device also have a severely restricted set of options, although the CycleStreets app offers a ray of hope. Like the name suggests, it is built for cyclists and not car travel, and it is currently UK-only, but it shows that OpenStreetMap and the other free data sources are viable.
Given the rapid pace of development in web-based mapping and routing projects, dedicated apps are not necessarily the only way to go. If your device won't run any of the apps discussed here, there is still hope that OpenStreetMap and the projects that build on top of it will suffice in a pinch.
But if you are interested in mapping and navigation apps, they remain a fun category to watch. OpenSatNav, for example, is an up-and-coming Android solution dedicated to using 100% free software. There is also growing support to replace gpsd with a more flexible solution called Gypsy that, among other improvements, uses D-Bus.
A few pieces of the open navigation stack remain missing entirely, however. For one thing, there is currently no open source weather data source that meets the "open data" requirement underpinning OpenStreetMap and similar projects — even though in many countries, taxpayer-funded weather data is in the public domain. There is also no open source traffic-reporting solution, which is in part due to commercial ownership of road sensors, and in part due to the fact that no open source mobile apps "crowdsource" traffic info by uploading their speed and position to a central service.
That is how the proprietary traffic services gather real-time data; you'd think there were enough open source navigation apps on the streets to at least make a start. Or maybe there are enough, and someone just needs to start making use of them.