Almost two years ago, I gushed about Google Earth. Two years later, this product from the engineers at Google continues to amaze and astound many of us, particularly those of us who are geography geeks. I thought at the time (and still think it is true) that Google Earth is a revolutionary product, every bit as significant as the web browser. Two years later, I am beginning to understand that its underpinnings, something called KML, has the potential to fundamentally change the world as we know it.
Scott McNealy the Chairman of the Board of Sun Computers said some ten years ago, "The network is the computer". This is now their corporate motto. Scott was ahead of his time, but in my opinion, the network did not become the computer until 2005 when Google Earth was released. Here at last was a killer application wherein the network really was the computer. Google Earth could not work at all without the ubiquity of the Internet. It also required Google’s very big and very fast pipes to the Internet. Nor could it exist on computers in somebody’s basement. The staggering amount of imagery rendered by Google Earth was measured in the terabytes. To serve all that imagery to so many clients simultaneously required very big and redundant computer centers. In short, it required the sort of infrastructure that only a few companies such as Google could provide. It also needed software that allowed easy access to geographical data. This was the Google Earth program that you installed on your computer. However, the Google Earth program was useless without the network infrastructure. The network was the computer indeed.
Google assembled and licensed a staggering amount of surface imagery of our planet. Much of the low-resolution imagery was provided free of charge by my employer, the U.S. Geological Survey. Google was also astute enough to realize that people had to have an easy way to describe points on the earth, link those points to URLs, describe geographical boundaries, features on the earth, and topics of interest. Creating this dataset was too big a job even for Google. However, if given the right tools people could describe these geographical points of interest themselves. The trick was to describe these geographical features in a way that Google Earth could render. Google, rather than reinventing the wheel, looked at what was out there. It settled on KML, or Keyhole Markup Language as the geographic markup language that Google Earth would render. (In time, Google bought Keyhole, which was in the digital imagery collection business, and which invented KML.)
If you are a geek like me, KML is just an instance of an XML schema. XML (Extensible Markup Language) is a platform neutral way of sharing data along with its meaning. HTML (the markup language used to describe web pages like this), or rather its modern manifestation called XHTML, is also an instance of an XML schema.
The important thing to understand about XML and KML is that you do not have to be a rocket scientist to write either of them. You can do it in a text editor if so inclined. You just have to know the schema, which amounts to the rules to be followed to mark up data for a particular kind of use. Thanks to the popularity of Google Earth, KML has become a de facto standard for describing many kinds of geographic data. There is now a very large community of KML enthusiasts out there. Many of them are busy marking up their own unique geographic content in KML. Load someone’s KML file into Google Earth and you too can show your friends the precise location of things that interest you, like Aunt Martha’s grave or your favorite hiking trail.
Google Earth then is really nothing more than a rendering engine for geographical information described in a KML syntax. In the same way that HTML describes how web pages should be presented by a web browser, KML describes how applications can describe geographic data. In addition, just as Mosaic (which quickly morphed into Netscape) became the first popular web browser, the Google Earth software just happened to be the first application for rendering geographic data described in KML. Among those now providing competition for the Google Earth program are World Wind and Geoportal.
When you innovate as fast as Google, it is hard to get ahead of them. While you may not have tried Google Earth, you are probably familiar with Google Maps. With Google Maps, you only need a web browser but you still have an amazing ability to intuitively examine the earth and find points of interest. Google Maps of course has competition too, principally from Yahoo Maps and MapQuest.
There is no question that Google Earth is ultra slick. Web browsers are ubiquitous but relatively unsophisticated. Until Web 2.0’s vision is realized, we will continue to need to download and install specialized software for many applications. This places a limitation on KML because to use it effectively you need to install a sophisticated program on your desktop computer.
If the network is the computer then Google Maps itself is really just a mapping application rendered by a web browser. Mashup sites like Frappr allow you to overlay your points of interest to you on top of Google Maps. What if a web mapping sites like Google Maps could display a user provided KML data source? Then there would be nothing to install and you could easily see the location of Aunt Martha’s grave using a browser.
As I discovered yesterday, you can now do this with Google Maps. In its search box, just point it to a web accessible KML file and it will render those points in Google Maps. (If you know the secret, you can pass the KML file as a URL parameter.) To me this is very exciting. I manage this big web site for the USGS. For years, we have been wanting to add a scalable mapping application to our site. It is not that it cannot be done, it is just that providing an interface like Google Earth is hard to do, particularly when your agency is resource constrained, as ours is. We are still hoping to roll our own scalable mapping interface one of these days.
Fortunately, we USGSers in the water business were at least astute enough a year or so back to figure out that we could create KML files that describe the locations of some of our stream gauging stations. You can find some of them here. This was not particularly hard for us to do because we know the exact latitude and longitude of these stations. Moreover, marking up KML is simple. Now you can use Google Earth to find the location of our gauging stations. In addition, the clever folks in our Waterwatch area enhanced the KML to show more than just location data, but actual useful information. They figured out a way to show how current stream flow conditions compare with historical periods of record. You can get a sense at a glance from color-coded dots in Google Earth just how much water is flowing. Black dots, for example, mean the stream gauge is at an all time high for its measured period of record.
All this is great if you have Google Earth, but many will not take the time to download the software. That is why being able to render KML in Google Maps is to me quite exciting. For example, try this link and you can see USGS stream gauges for the state of Virginia where I live. The color-coded dots give an intuitive "at a glance" sense of just how much water is flowing across the state. Moreover, you can zoom in, zoom out, pan and add road and satellite imagery too.
You may find this mildly interesting, but unless you are a hydrologist or a flood forecaster this information is probably only of passing interest. Suffice to say that USGS is not alone in providing data in KML. The amount of data provided in KML is truly voluminous.
Since it appears that KML can be married ubiquitously to a web browser, what is most amazing is what this says about the potential future of KML. Since KML is just an instance of XML, it is extensible. This means that KML can be married with and include all sorts of other kinds of data. Sources of data are everywhere. For example, the U.S. Census Bureau has huge amounts of demographic information about us and much of it could be marked up with KML. If these data sources would publish their data in KML, not only could they display their data on web sites like Google Maps, but also it could push the development of platform independent KML analytic tools. I can see web sites or open source tools that will collect KML from all sorts of locations and do data mining for you, finding interesting and hitherto unseen connections for your consideration. The relevant information could then be exported as KML, displayed, stored and most importantly shared.
Therefore, KML has the potential to foster data analysis for the masses, allowing us each to become unique assemblers of new knowledge by gleaning onto lots of other sources of data, but letting our computers find new and relevant patterns between the data.
Whether my vision will be realized remains to be seen. I would be very surprised if others are not already working to turn my vision into a reality. If this can be done then the simple Google Earth tool may one day be seen as something akin to Nina, the Pinta and the Santa Maria, bringing us to the shores of a new land of knowledge that for now is hard to fathom, but whose realization may now well be within our grasp.