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!
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
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.
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).
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
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
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.