Keyhole Markup Language (KML) is an
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable ...
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 harbor life. While large volumes of water can be found throughout the Solar System, only Earth sustains liquid surface water. About 71% of Earth's surfa ...
browsers. KML was developed for use with
Google Earth
Google Earth is a computer program that renders a 3D computer graphics, 3D representation of Earth based primarily on satellite imagery. The program maps the Earth by superimposition, superimposing satellite images, aerial photography, and geog ...
, which was originally named Keyhole Earth Viewer. It was created by
Keyhole, Inc
Google Earth is a computer program that renders a 3D representation of Earth based primarily on satellite imagery. The program maps the Earth by superimposing satellite images, aerial photography, and GIS data onto a 3D globe, allowing users ...
, which was acquired by
Google
Google LLC () is an American multinational technology company focusing on search engine technology, online advertising, cloud computing, computer software, quantum computing, e-commerce, artificial intelligence, and consumer electronics. ...
in 2004. KML became an international standard of the
Open Geospatial Consortium
The Open Geospatial Consortium (OGC), an international voluntary consensus standards organization for geospatial content and location-based services, sensor web and Internet of Things, GIS data processing and data sharing. It originated in 199 ...
in 2008. Google Earth was the first program able to view and graphically edit KML files, but other projects such as
Marble
Marble is a metamorphic rock composed of recrystallized carbonate minerals, most commonly calcite or Dolomite (mineral), dolomite. Marble is typically not Foliation (geology), foliated (layered), although there are exceptions. In geology, the ...
have added KML support.
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 letter l ...
and a
latitude
In geography, latitude is a 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 the south pole to 90° at the north pol ...
. 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
A zipper, zip, fly, or zip fastener, formerly known as a clasp locker, is a commonly used device for binding together two edges of fabric or other flexible material. Used in clothing (e.g. jackets and jeans), luggage and other bags, camping ...
KML files with a .kmz extension. The contents of a KMZ file are a single root KML document (notionally "doc.kml") and optionally any overlays, images, icons, and
COLLADA
COLLADA (for ''COLLA''borative ''D''esign ''A''ctivity) is an interchange file format for interactive 3D applications. It is managed by the nonprofit technology consortium, the Khronos Group, and has been adopted by ISO as a publicly available s ...
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
A media type (also known as a MIME type) is a two-part identifier for file formats and format contents transmitted on the Internet. The Internet Assigned Numbers Authority, Internet Assigned Numbers Authority (IANA) is the official authority for t ...
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 EPSG Geodetic Parameter Dataset (also EPSG registry) is a public registry of geodetic datums, spatial reference systems, Earth ellipsoids, coordinate transformations and related units of measurement. Originally created by European Petroleum Survey ...
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
*
CityGML
CityGML is an open standardised data model and exchange format to store digital 3D models of cities and landscapes. It defines ways to describe most of the common 3D features and objects found in cities (such as buildings, roads, rivers, bridges, ...
*
Geospatial content management system
A geospatial content management system (GeoCMS) is a content management system where objects (users, images, articles, blogs..) can have a latitude, longitude position to be displayed on an online interactive map. In addition the online maps link ...
*
GPS eXchange Format
*
Point of interest
A point of interest (POI) is a specific point location that someone may find useful or interesting. An example is a point on the Earth representing the location of the Eiffel Tower, or a point on Mars representing the location of its highest m ...
*
Waypoint A waypoint is an intermediate point or place on a route or line of travel, a stopping 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 specify one's posi ...
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