Google earth gpsd (GEgpsd)

This little python program (together with a kml file) allows real-time GPS tracking in Google Earth from any standard NMEA device. It's been initially written for GNU/Linux, but with tiny modification (namely the serial device name) it should work on other platforms that support python and have python-serial available.

It's a proof of concept rather than a fully working software, but since it is released under a Free license (GPL) you're free to tinker with it. If you improve it, please send me the patch so I can publish it here (and credit you :). Thanks!

Files

The main python script. Start (python gegpsd-0.1.py) in the background, on "screen", from inittab, however you like it...

=> files/gegpsd-0.1.py gegpsd-0.1.py

Load this kml file into Google Earth.

=> files/gps.kml gps.kml

Settings and usage

default serial port is /dev/ttyUSB0 -- change it in the gegpsd.py file.

gegpsd.py creates /tmp/nmea.kml

gps.kml tells Google Earth to load /tmp/nmea.kml and refresh it every second.

What works

Currently, it supports dynamic heading, angle and distance changes based on your speed. Below 10 km/h the screen is North-up with 30 degrees viewing angle. Above 10 km/h, the heading, angle and viewing distance are dynamically adjusted depending on your speed.

That's all! Tested under openSUSE 10.2, requires python-serial package (or equivalent for your GNU/Linux distribution).

Update (13/06/08)

A person that calls themselves TJ released an updated version of gegpsd. It allows you to specify configuration options at the command prompt and handles misreported fields in $GPRMC. You can have a look at it at TJworld wiki or download it below:

The main python script:

=> files/gegpsd-0.2.py gegpsd-0.2.py

TJworld wiki (dead link):

=> http://tjworld.net/wiki/Linux/Ubuntu/GoogleEarthPlusRealTimeGPS

Update (12/06/12)

Stephen Youndt sent an update to gegpsd to use the actual gpsd. It requires python-gpsd.

The main python script:

=> files/gegpsd-0.3.py gegpsd-0.3.py

Update (08/07/20)

This code was merged in 2010 by Eric S. Raymond into his gpsd:

https://gitlab.com/gpsd/gpsd/-/blob/master/gegps.in

This makes the above code somewhat obsolete and redundant. It is however preserved for posterity.