2005-07-08

Google Maps + APRS == Good

I've spent a little time learning the Google Maps web API since they released it last week. My first project is an Interactive APRS client using Google Maps. I'm fairly impressed with even the very few things you can do with their API. Justin McAllister has setup a APRS website using Google Maps based on some of the gAPRS code I've written.

I've seen several people using Google Maps with APRS. Sites like FindU and GoogleAPRS have been experimenting with using Google Maps. Both of those web sites are using synchronous updates. In fact, over 90% of the sites I've seen using Google Maps are using synchronous updates. Synchronous meaning that everything is run when the page loads and then the application stops running. The entire application has to be completely reloaded in order to change anything: add objects to the map, perform searches, and so on. For example, FindU is using a meta-refresh and loading the map into an iframe. I'm not sure what the point of using Google Maps is if that's the way it's used. There are other static mapping systems that are much easier to use and cover more of the world.

What's different with gAPRS is that I'm using what some people call AJAX and others call XMLHTTP. Whatever you call it the result is the same. You can write a real event-driven application using XML and JavaScript rather than merely a static web page. This has been the vision of JavaScript, DOM, XML, etc from their very beginnings. And to some extent this stuff has been possible for a long time. But I think the proliferation of cross-platform APIs has spurred the recent interest in working this way. Now you can write one application that works across most web browsers. And it works on at least the popular browsers such as Firefox, Safari, and Internet Explorer.

When working with XMLHTTP outside of the Google Maps API you can use Sarissa to provide almost exactly the same API in a consistent manner across many web browsers. I've read that Microsoft will be releasing their own AJAX API, dubbed Atlas, as well as a new version of Visual Studio to debug it. I hold no hope that any part of it will be cross-platform in nature. If it's not cross-platform then it's wasted effort for most web application developers.