Keyhole Markup Language (KML) é uma linguagem de marcação baseada em XML concebida para anotar e sobrepor visualizações em vários mapas online bidimensionais, baseados na Web ou navegadores tridimensionais da Terra (como o Google Earth). Na verdade, a KML foi inicialmente desenvolvida para uso com o Google Earth; porque esse projeto foi originalmente chamado de Keyhole, assim como a empresa que realizou esse trabalho, a linguagem de marcação relacionada seguiu o exemplo. Quando o Google adquiriu o Keyhole em 2004, esse projeto veio com ele e acabou se tornando o Google Earth. O moniker "keyhole" é uma referência aos satélites originais de reconhecimento militar KH lançados pela primeira vez em meados dos anos 70, que tiraram as primeiras fotografias "olho no céu" tão comumente vistas no Google Earth e em outros geobrowsers.
Um arquivo KML inclui especificações de vários recursos para exibição no Google Earth, Mapas e Celular, e outros programas tridimensionais Terra ou geobrowser. O conjunto de características do KML inclui placemarks, modelos 3D, descrições de texto, imagens, polígonos, e assim por diante. Cada local tem uma longitude e latitude associadas e podem ser fornecidos dados específicos de visualização, tais como direção, altitude e inclinação para definir uma chamada "vista de câmera" para dados geoespaciais. KML compartilha parte de sua gramática com a linguagem de marcação geográfica, ou GML, uma linguagem de marcação XML aberta definida para expressar dados e características geográficas.
A especificação atual para KML é 2.2, que foi submetida ao Open Geospatial Consortium (OGC) para ratificação como um padrão aberto que qualquer geobrowser pode usar. Como o OGC já tem custódia sobre o GML, isto faz um bom ajuste. Os documentos KML são frequentemente distribuídos na forma de arquivos KMZ, que nada mais são do que um documento KML zipado dentro de um arquivo com uma extensão .kmz. Um arquivo KMZ geralmente contém um único documento KML, invariavelmente chamado "doc.kml", juntamente com imagens para sobreposições e ícones que ele pode referenciar internamente.