Keyhole Markup Language

June 30th, 2007

KML (Keyhole Markup Language) is an XML-based language for managing the display of three-dimensional geospatial data in the programs Google Earth, Google Maps, Google Mobile and WorldWind. (The word Keyhole is an earlier name for the software that became Google Earth; the software was produced in turn by Keyhole, Inc, which was acquired by Google in 2004. The term “Keyhole” actually honors the KH reconnaissance satellites, the original eye-in-the-sky military reconnaissance system now some 30 years old.)

The KML file specifies a set of features (placemarks, images, polygons, 3D models, textual descriptions, etc.) for display in Google Earth, Maps and Mobile. Each place always has a longitude and a latitude. Other data can make the view more specific, such as tilt, heading, altitude, which together define a “camera view”. KML shares some of the same structural grammar as GML[1]. Some KML information cannot be viewed in Google Maps or Mobile [2].

KML files are very often distributed as KMZ files, which are zipped KML files with a .kmz extension. When a KMZ file is unzipped, a single “doc.kml” is found along with any overlay and icon images referenced in the KML.

Example KML document:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.0">
<Placemark>
<description>New York City</description>
<name>New York City</name>
<Point>
<coordinates>-74.006393,40.714172,0</coordinates>
</Point>
</Placemark>
</kml>

Leave a Reply