Google Maps Live

About

This extension has fallen out of date and no longer works. It's a neat trick, but the Google Maps code is now obfuscated and rather difficult to poke from outside. On the other hand, the Google Maps API is awesome and easy to use, so if you're adventuresome you can probably write your own API-based page and hack this extension to work with it.

Google Maps Live is an extension for Firefox 1.0 that allows you to feed latitude/longitude data to Google Maps and have it tracked in realtime. The extension works by listening for the data on a socket.

Install and try it out!

Using

The default port is 24273, so you can telnet to this port, or use netcat (or use my hacked windows build here, source here) to send data to the port.

You must have a Google Maps page open in Firefox for the extension to use.

The extension accepts data in the form "decimal lat,decimal lon" or in the form "HDDMMSS.S,HDDDMMSS.S".

Telnet example:

telnet localhost 24273<enter>
40.57878,-75.35046<enter>
Where <enter> means "hit enter". This will center your Google Maps page roughly on my apartment. Note that the zoom level stays at whatever you have set it to.

Netcat example:

nc -i 0.5 localhost 24273 < track.txt
This will send the contents of track.txt to the extension with a half second delay between lines. (Note that the default netcat will only accept integer values for -i, my hacked build allows decimals) You can download a sample track file I made here. It's a rather uninteresting drive to the Lehigh Valley Airport which I recorded on my Garmin iQue 3600.

You can change a few settings in the options dialog, which you can get to from Tools->Extensions.

Technical Info

The extension is implemented entirely in Javascript and XUL. You can open the XPI and the JAR file inside it with any zip program you have available to see the source. It consists of a simple overlay to the browser window, as well as an XPCOM component implemented in Javascript that handles all the details.

You can access this component in javascript like so:

gs = Components.classes["@ted.mielczarek.org/gmapserver;1"].getService(Components.interfaces.nsIGmapServer);
The interface is detailed in nsIGmapServer.idl.

Links

Get Firefox