Google Maps and Google Talk Integration: GoWhere

Introduction

GoWhere is an experimental collaborative mapping tool which combines online mapping and chat technologies.

Two users with chat accounts can plot points, move the map, zoom the map, and change the map type.

This is in the early experimental stages and I'm sure there are many improvements to be made. See "Future" below for a wish-list of future enhancements.

Prerequisites

You'll want these prerequisites to run GoWhere: If you intend to build GoWhere for yourself, download the source below.

Please note that when you first run the Java Applet, you must be willing to accept the certificate that pops up in order for GoWhere to run. With good reason, Java places security restrictions on what Applets are not allowed to access on a client machine. For instance, file access and network access are normally not allowed. Typically, software companies get a third party "Certificate Authority" to "sign" the software... i.e., vouch for the integrity of the code in question. An alternative is to self-sign the Java Applet, which I have done here. It's certainly allowed and is done all the time, but understand that it does rather defeat the purpose of having a signer in the first-place. You can read more about signed Applets here.

All code used for GoWhere is under the GNU General Public License. Source code is available below.

Usage

GoWhere's chat window is very simple and it was not my intention to create a full-fledged chat program. (See JBother for a fully fledged Smack-API Java chat program).

Here's basic usage:

How It Works

The mapping function is implemented thanks to the Google Maps API and is written using JavaScript callbacks. The chat function uses the excellent Java XMMP API, Smack, from JiveSoftware. Events on the map are tied to callbacks in JavaScript. These callbacks call Java functions which build and send custom XMMP Extension messages to trigger remote map events. On the receiving side, the custom XMMP message is received, parsed, and JavaScript callbacks manipulated the Google Maps API accordingly.

Code

The source code may be downloaded as a bzip2 tar archive here.

Future

There is certainly room for future improvements and bug fixes. Here are some ideas, not necessarily in order:

Contact

Questions, comments: j c o o l e y (at) m e d i a (dot) m i t (dot) e d u
<-- back