This page last changed on May 08, 2006 by cholmes.

KML or Keyhole Markup Language is the format used by Google Earth to ingest vector data. It is almost based on GML with some restrictions and a couple of minor changes, it also includes stying information.

The mad plan is to provide a KML output option for the GeoServer WMS - yes, WMS, not WFS, as the output is 'styled' and as most of the attribute information is lost (for now) it make far more sense to run it through the WMS pipeline so that it can be combined with SLD even though the data is and remains vector. This represents a leap forward for managing one's KML data, by allowing it to connect to a database directly, connected by a network link instead of a doing a database transform each time. By using SLD, an open standard, the presentation layer is modularized from the data, except when actually producing the KML. This allows for re-use of the SLD with different data sets.

There is currently a KML implementation in GeoServer, this shows KML output which shows state polygons shaded by population:

The shaded output from the KML generator for GeoServer looked like this:

Cannot resolve external resource into attachment.

The next steps for KML are to make it more robust and scalable. The improvements include:

  • Streaming output (currently a file is written to disk before being returned)
  • Support for KMZ
  • Support for images embedded in KMZ
  • A decision 'score' on whether to return an embedded image or zipped KML (very large zipped KML will crash google earth, but we can just process on the server side and return the image with ease).

And to match the 'import' functionality on Google Earth Pro, allowing anyone to easily configure their existing data for Google Earth, there is work being done on an SLD Editor, see that page for more detail.

More Google Earth

I've also setup some KML2WMS reflectors so that WMS data can be viewed in Google Earth. The ones I have so far are:

ESA Population Density (global)
Jet Stream
NASA global mosaic

  Name Size Creator (Last Modifier) Creation Date Last Mod Date Comment  
File katrina.kmz 0.3 kB jmacgill Sep 19, 2005 Sep 19, 2005 Post Katrina images from $item.label.getDisplayableLabel($req, $webInterfaceContext) | $item.label.getDisplayableLabel($req, $webInterfaceContext)

Just for kicks, here is Google Maps inside (and driving) Google Earth!

You can drive Google Maps from your web browser by visiting:

geoserverKML1.PNG (image/png)
shadedStates.kml (application/earthviewer)
GEGM.PNG (image/png)
katrina.kmz (application/
Document generated by Confluence on May 14, 2014 23:00