Keyhole Markup Language
Keyhole Markup Language (KML) je aplikací metajazyka XML. Primárně je určeno pro publikaci, distribuci geografických dat (geodat). Ke dni 16. 4. 2008 se stal KML ve verzi 2.2 standardem Open Geospatial Consortium (OGC).
Historie
KML byl vyvinut firmou Keyhole, Inc. jako API pro její virtuální glóbus Earth Viewer. V roce 2004 firmu koupila společnost Google, Inc. a produkt přejmenovala na Google Earth.
Vztažné souřadnicové systémy
Geoprvky standardu KML (bod, linie, plocha, aj.) využívají pro lokalizaci souřadnicový systém WGS84 ve tvaru celých stupňů. Výšky vztažných bodů prvků nejsou povinné (H = 0 m) a pokud jsou uvedeny tak je jejich vztažný systém EGM96.
Aplikace
Primární využití KML ze strany Google je pro její mapové aplikace Google Earth (virtuální glóbus), Google Maps (webový mapový server) a Google Mobile (přístup ke geodatům-mapám v mobilních zařízení). Díky tomu, že se verze KML 2.2 stala standardem OGC, získává KML popularitu a tvůrci nejen GIS software se ho snaží začlenit do svých produktů. Na internetu již existují zajímavé aplikace využití KML pro prezentaci geografických informací (geodat). Nejvýznamnějším příkladem je vizualizace intenzity zemětřesení pomocí KML (geograficky a časově lokalizované).
Soubory KML a KMZ
Primárním formátem je soubor KML (aplikace XML), jenž má MIME typ application/vnd.google-earth.kml+xml. Existuje i rozšiřující verze textového souboru KML, jímž je formát KMZ s MIME application/vnd.google-earth.kmz. KMZ je ve skutečnosti přejmenovaná přípona archívu ZIP. Obsahuje kořenový KML soubor doc.kml a vedle něho mohou být ještě dodatečné soubory (JPEG, aj.) pro textury. Nejznámější využití KMZ je pro prezentaci vizualizace 3D objektů vytvořených např. v software Google SketchUp, v prostředí Google Earth.
Příklad KML 2.2 (geoprvek - bod)
<?xml version='1.0' encoding='UTF-8'?>
<kml xmlns='http://www.opengis.net/kml/2.2'>
<Placemark>
<name>Plzeň</name>
<description>Plzeň je hlavní město piva na světě.</description>
<Point>
<coordinates>13.3775,49.7475,0</coordinates>
</Point>
</Placemark>
</kml>