Keyhole Markup Language ( KML ) es una notación XML para expresar anotaciones geográficas y visualización dentro de mapas bidimensionales y navegadores Earth tridimensionales . KML fue desarrollado para su uso con Google Earth , que originalmente se llamó Keyhole Earth Viewer. Fue creado por Keyhole, Inc. , que fue adquirida por Google en 2004. KML se convirtió en un estándar internacional del Open Geospatial Consortium en 2008. [1] [2] Google Earth fue el primer programa capaz de ver y editar gráficamente archivos KML, pero otros proyectos como Marble han agregado soporte para KML. [3]
El archivo KML especifica un conjunto de características (marcas de lugar, imágenes, polígonos, modelos 3D, descripciones textuales, etc.) que se pueden mostrar en mapas en software geoespacial que implementa la codificación KML. Cada lugar tiene una longitud y una latitud . Otros datos pueden hacer que una vista sea más específica, como la inclinación, el rumbo o la altitud, que juntos definen una "vista de cámara" junto con una marca de tiempo o un intervalo de tiempo. KML comparte parte de la misma gramática estructural que Geography Markup Language (GML). Parte de la información KML no se puede ver en Google Maps o Mobile. [4]
Los archivos KML se distribuyen muy a menudo como archivos KMZ , que son archivos KML comprimidos con una extensión .kmz. El contenido de un archivo KMZ es un único documento KML raíz (en teoría, "doc.kml") y, opcionalmente, cualquier superposición, imagen, icono y modelo 3D COLLADA a los que se haga referencia en el KML, incluidos los archivos KML vinculados a la red. El documento KML raíz, por convención, es un archivo llamado "doc.kml" en el nivel del directorio raíz, que es el archivo que se carga al abrirlo. Por convención, el documento KML raíz está en el nivel raíz y los archivos a los que se hace referencia están en subdirectorios (por ejemplo, imágenes para superposición). [5]
Un ejemplo de documento KML es:
<?xml version="1.0" encoding="UTF-8"?> <kml xmlns= "http://www.opengis.net/kml/2.2" > <Documento> <Placemark> <nombre> Ciudad de Nueva York </nombre> <descripción> Ciudad de Nueva York </ descripción > <Punto> <coordenadas> -74.006393,40.714172,0 </coordenadas> </Punto> </Placemark> </Documento> </kml>
El tipo MIME asociado con KML es application/vnd.google-earth.kml+xml ; el tipo MIME asociado con KMZ es application/vnd.google-earth.kmz .
Para su sistema de referencia, KML utiliza coordenadas geográficas 3D: longitud, latitud y altitud, en ese orden, con valores negativos para el oeste, sur y por debajo del nivel medio del mar. Los componentes de longitud/latitud (grados decimales) son los definidos por el Sistema Geodésico Mundial de 1984 (WGS84) . La altitud, el componente vertical, se mide en metros a partir del datum vertical del geoide WGS84 EGM96 . Si se omite la altitud de una cadena de coordenadas, p. ej. (-77.03647, 38.89763), se asume el valor predeterminado de 0 (aproximadamente el nivel del mar) para el componente de altitud, es decir (-77.03647, 38.89763, 0).
La especificación KML 2.2 de OGC contiene una definición formal del sistema de referencia de coordenadas (codificado como GML) utilizado por KML. Esta definición hace referencia a componentes CRS EPSG bien conocidos . [6]
La especificación KML 2.2 fue presentada al Consorcio Geoespacial Abierto para asegurar su condición de estándar abierto para todos los navegadores geográficos . En noviembre de 2007 se creó un nuevo Grupo de Trabajo de Estándares KML 2.2 dentro del OGC para formalizar KML 2.2 como estándar OGC. Se solicitaron comentarios sobre el estándar propuesto hasta el 4 de enero de 2008 [7] y se convirtió en estándar oficial OGC el 14 de abril de 2008 [8].
El Grupo de trabajo de estándares KML de OGC terminó de trabajar en las solicitudes de cambio para KML 2.2 e incorporó los cambios aceptados al estándar KML 2.3. [9] El estándar oficial KML 2.3 de OGC se publicó el 4 de agosto de 2015. [10]