Lenguaje de marcado Keyhole (KML)

Keyhole Markup Language (KML) es un lenguaje de marcado basado en XML diseñado para anotar y superponer visualizaciones en varios mapas en línea bidimensionales basados ​​en la Web o navegadores terrestres tridimensionales (como Google Earth). De hecho, KML se desarrolló inicialmente para su uso con Google Earth; Debido a que ese proyecto se llamó originalmente Keyhole, al igual que la empresa que realizó este trabajo, el lenguaje de marcado relacionado siguió su ejemplo. Cuando Google adquirió Keyhole en 2004, ese proyecto lo acompañó y finalmente se convirtió en Google Earth. El apodo de "ojo de cerradura" es una referencia a los satélites de reconocimiento militar KH originales lanzados por primera vez a mediados de la década de 1970 que tomaron las primeras fotografías de "ojos en el cielo" tan comúnmente vistas en Google Earth y otros geobrowers. 

Un archivo KML incluye especificaciones para varias funciones para su visualización en Google Earth, Maps y Mobile, y otros programas tridimensionales de Earth o geobrowser. El conjunto de funciones de KML incluye marcas de posición, modelos 3D, descripciones de texto, imágenes, polígonos, etc. Cada ubicación tiene una longitud y latitud asociadas y se pueden proporcionar datos específicos de la vista, como el rumbo, la altitud y la inclinación, para definir una denominada "vista de cámara" para datos geoespaciales. KML comparte parte de su gramática con el lenguaje de marcado de geografía, o GML, un lenguaje de marcado de XML abierto definido para expresar datos y características geográficas.

La especificación actual para KML es 2.2, que se ha enviado al Consorcio Geoespacial Abierto (OGC) para su ratificación como un estándar abierto que puede utilizar cualquier navegador geográfico. Debido a que OGC ya tiene la custodia de GML, esto encaja bien. Los documentos KML a menudo se distribuyen en forma de archivos KMZ, que no son más que un documento KML comprimido dentro de un archivo con una extensión .kmz. Un archivo KMZ generalmente contiene un solo documento KML, invariablemente llamado "doc.kml" junto con imágenes para superposiciones e íconos a los que puede hacer referencia internamente.