Real Time GPS with Google Maps

Making a GPS unit that integrates with Google maps.

GPS technology is useful for many applications. For example, I built a hand-held GPS unit just to mess around with the EM-406. It was cool because I got some useful information like speed, heading, and altitude. I also got latitude and longitude - useful information if you know what to do with it and have some detailed maps handy. But for me, latitude and longitude readings were just numbers I couldn't readily interpret. I really wanted to find a way to display this information on a map, but I just wasn't sure how.

This project from SparkFun customer Jayesh Sukumaran is an excellent example of how to integrate GPS data into an easy to read/interpret format. Jayesh took an Arduino, the SM5100B cellular module, the EM406A GPS module, and a bunch of really clever work in Arduino, Python, and MySQL to create a GPS module that provides real-time updates to Google maps.


The cellular module used to transmit GPS data.

When the GPS unit receives data, it transmits this information via the cellular module (GPRS) to the mobile operator's GGSN (Gateway GPRS Support Node) and then to a remote server over a TCP connection. This information is then stored in a mySQL database. When a user navigates to the tracking page (made using Zope), it serves up an HTML page with an embedded JavaScript code. The JavaScript grabs the information from MySQL, combines that info with Google Maps API, and displays it on the map. The Real Time Mobile GPS Tracker updates every second (and the map is updated at the same frequency) so it provides instant results.

If you want to build your own, Jayesh did a fantastic job documenting the build and also provides all the code that was used. Great project!