QtGPS Track and Waypoint Creator

Handheld Global Positioning Systems (GPS) are exciting gadgets and extremely useful for activities ranging from hiking and walking, to aviation and even finding your way back to where you parked your car. However, once you get over the excitement of monitoring your location and looking at your tracks on a map, there isn't much left for many techies beyond hacking into the flash memory to change dates and locations. If you've come to that stage then the Nokia N810 is an excellent device because it has a built in GPS that you can use in your own programs to gather location data and save it for use on your desktop PC (e.g. with Google Maps, Google Earth, or your own home-brew programs). As well as logging your movements, KML is a useful format for logging GPS positional accuracy over time: just keep the N810 in one position for a while during logging and then see how much your position varies in Google Maps.

The program presented on this page (QtGPS - see Figure 1) was written to fulfil such techie urges. It also provided an opportunity to spend a few long evenings gaining experience of Python and Qt development on the N810, based on the console program gpsexample.py which can be found by clicking here. Basically, this app can connect to the Nokia GPS device and write KML (Keyhole Markup Language) files, either as single-location waypoints or as extruded tracks. If you're interested in learning Python, or getting into Qt development, then the code may also be of some help in that respect. It's intended as a starting point so no nice and colourful killer graphics here, but is available for you to make that killer app from if you wish.

The QtGPS screen

Figure 1. The QtGPS screen at start up.

The Python code for QtGPS can be downloaded from the link below (you will need to remove the '.txt' extension). Please feel free to modify it as you see fit. However, to use it you will also need liblocation.py by Robert W. Brewer available at http://talk.maemo.org/showthread.php?t=19009. Please respect Roberts' copyright in using liblocation.py and QtGps.py, the latter of which includes some lines of code from gpsexample.py. To use QtGPS on a Nokia N810 you will need to have PyQt4 files installed through the application manager, including the QtCore and QtGUI libraries. You may also be able to port QtGPS to other Linux based devices. The QtGPS Python code was developed on the N810 using PyGTKEditor as the IDE. QtGPS is provided as is with no warranty even in terms of merchantability, so you must use it at your own risk (well, it is free software after all).