Keyhole Markup Language (KML) is an
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
notation for expressing geographic annotation and visualization within two-dimensional maps and three-dimensional
Earth
Earth is the third planet from the Sun and the only astronomical object known to Planetary habitability, harbor life. This is enabled by Earth being an ocean world, the only one in the Solar System sustaining liquid surface water. Almost all ...
browsers. KML was developed for use with
Google Earth
Google Earth is a web mapping, web and computer program created by Google that renders a 3D computer graphics, 3D representation of Earth based primarily on satellite imagery. The program maps the Earth by superimposition, superimposing satelli ...
, which was originally named Keyhole Earth Viewer. It was created by
Keyhole, Inc
Google Earth is a web mapping, web and computer program created by Google that renders a 3D computer graphics, 3D representation of Earth based primarily on satellite imagery. The program maps the Earth by superimposition, superimposing satelli ...
, which was acquired by
Google
Google LLC (, ) is an American multinational corporation and technology company focusing on online advertising, search engine technology, cloud computing, computer software, quantum computing, e-commerce, consumer electronics, and artificial ...
in 2004. KML became an international standard of the
Open Geospatial Consortium
The Open Geospatial Consortium (OGC) is an international voluntary consensus standards organization that develops and maintains international standards for geospatial content and location-based services, sensor web, Internet of Things, Geographi ...
in 2008. Google Earth was the first program able to view and graphically edit KML files, but KML support is now available in many
GIS software applications, such as
Marble
Marble is a metamorphic rock consisting of carbonate minerals (most commonly calcite (CaCO3) or Dolomite (mineral), dolomite (CaMg(CO3)2) that have recrystallized under the influence of heat and pressure. It has a crystalline texture, and is ty ...
,
QGIS
QGIS is a geographic information system (GIS) software that is free and open-source. QGIS supports Windows, macOS, and Linux. It supports viewing, editing, printing, and analysis of geospatial data in a range of data formats. Its name comes from ...
, and
ArcGIS.
Structure
The KML file specifies a set of features (place marks, images, polygons, 3D models, textual descriptions, etc.) that can be displayed on maps in
geospatial software implementing the KML encoding. Every place has a
longitude
Longitude (, ) is a geographic coordinate that specifies the east- west position of a point on the surface of the Earth, or another celestial body. It is an angular measurement, usually expressed in degrees and denoted by the Greek lett ...
and a
latitude
In geography, latitude is a geographic coordinate system, geographic coordinate that specifies the north-south position of a point on the surface of the Earth or another celestial body. Latitude is given as an angle that ranges from −90° at t ...
. Other data can make a view more specific, such as tilt, heading, or altitude, which together define a "camera view" along with a timestamp or timespan. KML shares some of the same structural grammar as
Geography Markup Language
The Geography Markup Language (GML) is the XML grammar defined by the Open Geospatial Consortium (OGC) to express geographical features. GML serves as a modeling language for geographic systems as well as an open interchange format for geographic ...
(GML). Some KML information cannot be viewed in Google Maps or Mobile.
KML files are very often distributed as KMZ files, which are
zipped KML files with a .kmz extension. The contents of a KMZ file are a single root KML document and optionally any overlays, images, icons, and
COLLADA 3D models referenced in the KML including network-linked KML files. The root KML document by convention is a file named "doc.kml" at the root directory level, which is the file loaded upon opening. By convention the root KML document is at root level and referenced files are in subdirectories (e.g. images for overlay).
An example KML document is:
New York City
New York City
-74.006393,40.714172,0
The
MIME type associated with KML is ''application/vnd.google-earth.kml+xml''; the MIME type associated with KMZ is ''application/vnd.google-earth.kmz''.
Geodetic reference systems in KML
For its reference system, KML uses 3D geographic coordinates: longitude, latitude, and altitude, in that order, with negative values for west, south, and below mean sea level. The longitude/latitude components (decimal degrees) are as defined by the
World Geodetic System of 1984 (WGS84). Altitude, the vertical component, is measured in meters from the
WGS84 EGM96 Geoid vertical datum. If altitude is omitted from a coordinate string, e.g. (-77.03647, 38.89763) then the default value of 0 (approximately sea level) is assumed for the altitude component, i.e. (-77.03647, 38.89763, 0).
A formal definition of the coordinate reference system (encoded as GML) used by KML is contained in the OGC KML 2.2 Specification. This definition references well-known
EPSG CRS components.
OGC standard process
The KML 2.2 specification was submitted to the Open Geospatial Consortium to assure its status as an open standard for all
geobrowsers. In November 2007 a new KML 2.2 Standards Working Group was established within OGC to formalize KML 2.2 as an OGC standard. Comments were sought on the proposed standard until January 4, 2008, and it became an official OGC standard on April 14, 2008.
The OGC KML Standards Working Group finished working on change requests to KML 2.2 and incorporated accepted changes into the KML 2.3 standard.
The official OGC KML 2.3 standard was published on August 4, 2015.
See also
*
Packet radio protocols
*
Brian McClendon
*
CityGML
*
GeoJSON
*
Geospatial content management system
*
GPS eXchange Format
*
Keyhole satellite series
*
NASA WorldWind
*
Point of interest
*
SketchUp file formats
*
The Blue Marble
''The Blue Marble'' is a photograph of Earth taken on December 7, 1972, by either Ronald Evans (astronaut), Ron Evans or Harrison Schmitt aboard the Apollo 17 spacecraft on its way to the Moon. Viewed from around from Earth's surface, a crop ...
*
Waypoint
A waypoint is a point or place on a route or line of travel, a stopping point, an intermediate point, or point at which course is changed, the first use of the term tracing to 1880. In modern terms, it most often refers to coordinates which spe ...
*
Wikimapia
References
External links
OGC KML 2.2 StandardOGC Official KML 2.2 SchemaGoogle's KML Documentation
{{Authority control
Articles with example code
GIS file formats
Google
Open formats
Open Geospatial Consortium
XML-based standards
XML markup languages
Data compression