Google Earth, you may recall, is a re-branding of Keyhole, Inc.'s Earthviewer product. It relies primarily on commercial satellite images from one to two years ago. Keyhole was founded in 2001, released its first product in 2003, and was purchased by Google in October 2004. The Earthviewer 3D was redubbed Google Earth in May and released at three price points: free (basic), $20 per year ("Plus") and $400 per year ("Pro").
Google Earth can use either OpenGL or DirectX as its 3D toolkit, and the System Requirements page has long touted the claim that a Mac OS X-native version of the application is being worked on. Furthermore, the Google Earth Fusion component of the enterprise corporate package already runs on Linux.
The combination of these facts lead some to speculate that a Linux port is not only technically viable but perhaps underway in some secret back room at the Googleplex.
Therein lies the problem, of course. A Linux/NetBSD/Plan9 port might be technically possible, but nothing can be done about it. Similarly, even though Google has published the specification for KML (Keyhole Markup Language), programmers have no access to the client or server source code to add additional functionality.
History of the world, part two
World Wind, by contrast, is open source and available now. By some accounts it is less polished than Google Earth -- the primary image data comes from Landsat 7, which has less resolution than the Keyhole commercial imagery. On the other hand, the project's background in scientific visualization means it can handle more complicated tasks, and there are far more data sources built in. The World Wind site lists:
- Blue Marble, the high-resolution composite photograph of the entire globe
- Landsat 7, the primary satellite image mosaic, including data outside the visible light spectrum
- STRM (Shuttle Radar Topography Mission) topological maps showing elevation data
- NASA SVS (Scientific Visualization Studio) animations of earth science phenomena
- MODIS (Moderate Resolution Imaging Spectroradiometer) feeds of time-relevant events like wildfires, storms, and volcanos
- USGS (United States Geographical Survey) high-resolution imagery of the U.S. only
- GLOBE (Global Learning and Observations to Benefit the Environment) aggregate data measured educational collaborators
The World Wind project began in 2002 at NASA Learning Technologies, a lab whose purpose is to develop educational software for delivering NASA data. According to project spokesman Randy Kim, the original core was intended to run on Linux and Windows using OpenGL. Trouble arose when implementing the visualization, however, so a proof-of-concept was drawn up in C# and DirectX and released as World Wind 1.0. The first widespread public release was in early August 2004, under the NASA Open Source Agreement.
Though the current release (1.3.2) is built on .Net, which should run on Mono, the DirectX requirement is an obstacle to porting the application to non-Windows platforms. But open source developers are still interested.
We can build you
The World Wind code is straightforward enough -- request tile coordinates from the server, then composite the results together on the client side, rendering each layer in the specified order and opacity (unlike Keyhole and Google Earth, which combine map data on the server side). It is no surprise, then, that one of the first add-ons developed by third-party programmers was OneEarth -- a plugin to allow clients to request data from any map server speaking the WMS (Web Map Service) standard.
Likewise, neither Google Earth nor vanilla World Wind interface with GPS devices, but third-party developers have written a World Wind GPS Tracker plugin. World Wind Central lists dozens of add-ons, scripts, and plugins, from map packs to information overlays to new functionality -- all of which still run only on Windows.
Talk of Linux and Mac OS X ports began appearing on the World Wind forums as early as September 2004, but by June 2005 Russian programmer Vitaliy Pronkin had had enough of waiting and took matters into his own hands.
Pronkin started from scratch and wrote his own client, WW2D, aiming not just for a Linux build but full cross-platform support from one code base. He began work in Java but eventually switched to C++ and the WxWidgets toolkit. WW2D uses OpenGL to create image layers on screen, though -- as the name suggests -- only in two dimensions.
The current release is 0.99.5 and supports the same core data services as NASA's World Wind. Pronkin says arbitrary WMS servers and additional add-ons are on his to-do list, along with improvements to the navigational tools and user interface. 3D support is on the list as well. Pronkin left it out of his initial efforts both for lack of time and because 2D maps provide most of the useful power anyway.
You can download WW2D binaries and source from its BerliOS project page. Pronkin is focusing on stabilizing the current release at this time, with an eye toward lowering CPU usage and memory footprint. When I asked where he would most like some additional manpower, he answered "testing, documentation, add-ons, and so on. I just want to see that somebody is interested in cross-platform application (while there're already Windows-only NASA [World Wind] with 3D and GE with much better imagery)."
I compiled the CVS version of WW2D, and although it took some hand-waving and assistance from Pronkin and other users on the WW2D forum, I can verify that it is indeed a nice application. For all the praise heaped on Google Earth, the Mac OS X, Linux, and other OS clients are still vaporware, so at this point there is no comparison.
The future may change that; Google could release new client software at lunchtime today. If it happens, the question will become whether interested third parties will be free to build their own client and server applications to work with it. Then, if Google releases new clients and if it releases the source, the battle between Google Earth and World Wind will be about features and expandability -- where World Wind already has a twelve-month head start.
So, perhaps Google will open-source Google Earth at some point in the future. Perhaps. But why wait? World Wind is here now.