Google Earth Notes
Over the past week I’ve been playing with the free version of Google Earth. This has involved creating some proof of concept KML files for a client, and writing a prototype Java servlet application that exposes ArcIMS Image Services as KML. I love my job!
Several organisations on my radar are looking at how Google Earth might be used as a spatial delivery platform both inside and outside their enterprise. Herewith some notes from my experience so far.
Google Earth is a very cool 3D viewer, but under that shiny exterior it is basically a data presentation tool. In many ways, it has more in common with Adobe Acrobat Reader than it does with desktop GIS. Like PDF, KML is also a presentation format. It is not a suitable format for spatial data storage or transfer.
Google Earth is a thick client application, so you have to play within it’s boundaries. The good news is that a published data product (a KML or KMZ file) can be created in a very short period of time if the data that you need are already available. The trade-off is that you have less control over the way your information is displayed, and how the user interacts with it.
The default layout of the Google Earth interface is optimised to promote Google’s services. For example, the Search panel contains Local Search, Directions, and Fly To options. Fly To only works on town names, not location names like “Mt Everest”. You can turn off the panels that you don’t want to see by using items under the Tools menu, but in practice the vast majority of people will use it in its default configuration.
The Layers list contains a lot of vector data layers that may be completely irrelevent to your application. You cannot remove layers from the Layer list. Some of the data is also quite coarse.
Another key point is that when a user loads a KML file it shows up in the Places panel. Everything in the Places panel is editable by the user. Anyone can edit the KML file and save it under a new name.
OK, time to get into some more technical issues.
For those who are familiar with desktop GIS there are some fundamental differences between GIS project files and KML files:
- A KML file is not a single “project” level document that defines everything that you can see in the map display. Think of it as a bundle of one or more “layers” that are displayed as a “layer group”. The user is free to view your KML file at the same time as they are viewing other KML files.
- The vector and raster layers provided by Google are always available. You can turn off the vector layers using the checkboxes in the Layers panel, but you have no control over them from within a KML file.
- Each individual spatial feature in a loaded KML file is listed in the Places panel. Groups of like features are ususally contained in a single folder (similar to a GIS layer). This can make the Places panel almost unusable if a KML file contains a large number of features. Example: The 3D model of the Sydney Harbour Bridge is made up of 18,000 faces. When you open that folder each face is listed, and you’re in for a lot of scrolling!
- There is no concept of minimum and maximum display scales. All data is displayed all the time. This is significant for network links (see below).
Network Links
KML’s
Data extent: If you are viewing the entire planet Google Earth will ask for a map image covering the entire planet (-180,-90,180,90). If your data does not cover the entire planet you can use KML to restrict the output of your map server to a smaller extent.
Scale limits: KML has no concept of view scale limits so Google Earth will make requests to all active network links regardless of the current user’s view. Setting the minimum display scale on your map services is recommended.
Example: I set up a map service that provided all the roads in the state of New South Wales, and didn’t include a minimum scale limit. This map service was also reprojecting on-the-fly. Google Earth asked for a state-wide map and ArcIMS dutifully consumed 100% of available CPU on the server for several minutes while it produced a map image.
Response times: Google Earth likes its network links to respond quickly. If it doesn’t get a response in less that about 5 seconds it complains with a modal dialog box. Not very user friendly.
Server load: A 3D viewer invites the user to pan and zoom. If you have network links set up they will most likely use a view based refresh. When the camera stops moving Google Earth makes requests the network link. This can put a lot of stress on the map server. If I use my mouse to pan-stop-pan-stop-pan-stop I’ve just sent three requests to the map service, but I’ll probably only see the last one. You can prevent this by adding a one or two second delay after the camera stops.
Fixed layers: When you set up a network link to bring in a map image from an external map service the map image will display a fixed list of layers. There is no ability to switch layers on and off from the Google Earth end. The only value it passes through is the bounding box of the current view.
Querying overlays: There is no way to do a feature information query on an overlay obtained via a network link. Display only.
Styling overlays: The styling of the data provided by your map service needs to be significantly different to the styling used in a 2D web mapping application that uses a light coloured background. The imagery in Google Earth is generally quite dark so light coloured vectors, and light text with a dark ghosting, seem to work best.

Paul McGavin — 2 September 2005, 04:27
Do you know whether some of the issues, such as attribute information and viewing scales are addressed within the Fusion/ Enterprise versions of GE?
Mike Reynolds — 9 September 2005, 14:48
Glad to know you found this post useful.
I have no knowledge of whether any of the issues I've raise are fixed in the pay to use versions of Google Earth.
Andrew
Andrew Hallam — 9 September 2005, 20:27
Thanks for this usefull information but I have a question.
If I add some features in my free Google Earth Client by using a KML file, how can I do a feature information query? The search tool don't appear to be usable with personal feature added using KML, is it right?
Thanks a lot
Etienne
Etienne Desgagn — 16 September 2005, 10:38
I don't know of any way to do a WMS-style feature information query. The only way I can see to provide information about individual features is to create placemarks for each of them.
From my experience with the search tool, it seems to be pre-configured to use a gazetteer of place names only.
Andrew
Andrew Hallam — 16 September 2005, 18:24
Do you know of good tutorials on how to make overlays from DIMAP photos or JPEG2000? It needs to be converted to KML, prior to dispaly in GE, doesn't it?
Jerome
Jerome — 27 October 2005, 05:26
My understanding is that you would have to save the DIMAP or JPEG 2000 image to a format supported by Google Earth (classic JPEG, PNG, BMP, TGA, TIFF or GIF) then use the normal overlay tools in Google Earth. (From the main menu: Add > Image Overlay.)
Note: Google recommend limiting images to a maximum of 2000x2000 pixels.
Google Earth Help, see Using Image Overlays
KML Tutorial
Andrew
Andrew Hallam — 29 October 2005, 19:00
http://www.5d-software.com
Kim
Kim — 12 November 2005, 18:29
One question I have that is probably pretty stupid is - can you add as many layers as you want to Google Earth via KML?
Luke — 4 March 2006, 03:02
Andrew
Andrew Hallam — 4 March 2006, 05:10
Chris — 28 June 2006, 12:50
When the user subsequently clicks on that hyperlink your own application can solve the other issues.
I think furthermore that Google Earth is a browser so the KML format enables you to browse using a globe in stead of a page. Subsequently it is up to the programmer to make the 'browsable globe' interactive or not.
Much of the same counts for your issues on control on the user interface.
The browser is not in control, the user is, so I think that Google is following the normal web concepts.
Of course it would be interesting if additional interfaces using a KML (like) format would appear, so that the user gets a choise much like Netscape or Iexplore for the 'page browsers'.
Alfred de Jager — 31 August 2006, 03:21