Keyhole Markup Language
June 30th, 2007KML (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>


























