If you want to turn your netbook or conventional laptop into a nifty open source navigation system, you need two things: a USB receiver and a GPS-enabled navigation application. You can buy a GPS receiver cheaply at virtually any gadget store or on eBay. And there are actually several GPS-enabled navigation applications out there, including Navit, GPSdrive, and Roadnav. These are fine applications, but if you are looking for GPS software that offers the right amount of features wrapped in a sleek and user-friendly interface, try tangoGPS. This lightweight GPS-enabled navigation application can pull maps from different sources and has a few clever features up its sleeve.
Like other navigation applications, tangoGPS uses the gpsd daemon to obtain data from the GPS receiver. Most mainstream Linux distributions include gpsd in their repositories, so you should be able to install it on your system using your distro's package manager. Once the package is installed, plug your GPS receiver into your machine and run the daemon by executing the gpsd command as root. Depending on your system and GPS hardware, you might need to specify additional command options to make gpsd play nice with your receiver. On my Acer Aspire One running the Debian Sid-based Sidux distro with a GlobalSat BU-353 GPS receiver, the command
gpsd -n /dev/ttyUSB0 did the trick.
The next step is to install tangoGPS. The project's Web site provides DEB and RPM packages for many popular Linux distributions. tangoGPS is also available via the openSUSE Build Service, which lists packaged versions of the application for more than 30 platforms. Installing the .deb package from tangoGPS's Web site on Sidux resulted in dependencies errors, but the
apt-get install -f command took care of them.
tangoGPS sports a clean interface and is pretty straightforward in use. The buttons at the top of the tangoGPS window allow you to switch to the full-screen mode as well as zoom in and out on the map. Instead of the zoom buttons, you can use the slider on the right side of the window for more precise zoom control. The Autocenter button forces the map to automatically follow your GPS position, which can come in handy when you are driving.
The program also supports several keyboard shortcuts that allow you to control the application without using the mouse. For example, the PageUp and PageDown keys let you control zoom, and you can use the Space key to toggle the full-screen mode.
The status bar under the map provides important real-time information such as your current speed, heading, and altitude as well as the covered distance and satellite info (number of satellites in view and satellites used by the GPS receiver). tangoGPS also uses the map itself to display a few important bits of information, such as your current position and speed. When the application acquires your position, it appears on the map as a big blue GPS marker with a light-blue pointer that indicates the direction you're moving in.
Several tabs at the bottom of the window give quick access to tangoGPS's sections. The Map section is pretty self-explanatory. The Trip section provides detailed information about your current trip, and you can use the Stop and Reset buttons to stop recording and reset current values. In the Track section, you can enable the track logging feature, which creates log files you can later use to contribute to the OpenStreeMap project. The Friends section allows you to enable and configure a feature that displays all registered tangoGPS users on the map. As the name suggests, the Config section allows you to tweak tangoGPS's settings. By default, tangoGPS supports the OpenStreetMap, Maps-for-free, and OpenAerialMap map sources, and you can switch between them in the Config section (or cycle through them when viewing the map using the 1, 2, and 3 keyboard shortcuts). In theory, you can also specify additional map repositories, but finding a service that offers high-quality maps for free is virtually impossible. You can, however, add an alternative OpenStreetMap repository called Osmarender. To do this, Press the New button, give the new repository a name (for instance, "Osmarender"), and enter the following URL in the URL field: http://b.tah.openstreetmap.org/Tiles/tile/%d/%d/%d.png Specify the path to a directory where tangoGPS can store the downloaded map data and press the Save Repository Configuration button. The Config section also allows you to switch between metric and imperial measurement systems as well as enable automatic download of map tiles.
Back to the Map section, tangoGPS provides essential commands in the map's right-click context menu. The Map download command allows you to download map tiles up to the specified zoom level. By default, tangoGPS downloads map tiles as needed, which is not particularly practical when you are on the move without a fast Internet link. You can force tangoGPS to download the maps you'll need using the Map download command. Using the context menu, you can also add points of interest to your map. A POI can be anything from gas stations and restaurants to bookstores and museums. Adding a POI is easy: right-click on the map where you want to insert the POI, select the POI -> Add POI command, and provide the required information.
Although tangoGPS doesn't allow you to create turn-by-turn directions, you can use POIs as your destinations. To do this, click on a POI and choose Go To. This puts a blue flag at the POI, and the map itself displays the current distance to the target and bearing. It also adds a brown pointer to the GPS marker that indicates the direction you have to go. If the brown and light-blue pointers of the GPS marker point in the same direction, then you are going the right way.
Using the Show photos command, you can display geotagged photos on the map. Adding geotagged photos to tangoGPS is not as straightforward as it should be, and requires a bit of manual work. First, you have to create a database file that stores the necessary information about the geotagged photos. The tangoGPS Web site provides a geotag2db.pl Perl script that can do this for you. The script requires the jhead and sqlite3 packages, so you have to install them on your system before you can use it. To generate a database, use a command like
./geotag2db.pl /path/to/geotagged/photos. Move the resulting geophoto.db file into the .tangogps folder in your home directory. In tangoGPS, right-click on the map, choose Show photos, and you should see camera icons on the map. Click on an icon to view a thumbnail of the respective geotagged photo. As with POIs, you can set a photo as a destination point by pressing the Go To button.
tangoGPS might not be the most advanced navigation application out there, but it works out of the box, has useful features such as support for POIs and geotagged photos, and is fun to use.