KML

KML（ケイエムエル）は、アプリケーション・プログラムにおける三次元地理空間情報の表示の管理などを目的とした情報をXMLで記述するものである。2008年4月にKML2.2版は、そのままOpen Geospatial Consortium (OGC) という地理情報システムのオープンソース化を目指す団体の規格にOGC KMLとして取り入れられた。

名称の由来 
KMLという名称は、もともとKeyhole Markup Languageの頭字語だったが、OGCに採用された時点で略語ではない語という扱いになった。Keyholeは現在のGoogle Earthの旧名称であり、その開発元がGoogle社と合併するまでの会社名でもある。Keyholeという名称は偵察衛星コロナの型名(KH)にちなむ。

KML文書 
XMLで、Google EarthやGoogle Maps、Google Mobileで表示する要素（目印、イメージ、ポリゴン、3次元モデル、説明など）を記述する。3次元モデルはCOLLADA形式で記述することができる。各地点は、常に右手系の経緯度情報を持つ。それ以外に、“カメラ・ビュー”を構成するのに必要なティルト、カメラの向き、高度など、より詳細なデータを記述することもできる。KMLはGMLと同様の文法構造を持つ。ただしGoogle MapsやGoogle MobileではKMLで記述された情報の一部は表示することができない。Google Maps（およびそのAPI）では公開ウェブサイトに置いたKMLファイルの記述情報を表示できる。

ファイルとしては、プレーンなXMLの場合は .kml という拡張子を付ける他、ZIPで圧縮した .kmz という拡張子を付けるKMZファイルがある。KMZファイルは内容に、本体である "doc.kml" というファイル一つと、そのファイル中から参照するオーバレイ用のイメージ・ファイルやアイコン用のイメージファイルを含む。

KML文書の例：

 <?xml version="1.0" encoding="UTF-8"?>
 <kml xmlns="http://earth.google.com/kml/2.0">
 <Placemark>
   <description>New York City</description>
   <name>New York City</name>
   <Point>
     <coordinates>-74.006393,40.714172,0</coordinates>
   </Point>
 </Placemark>
 </kml>

KMLのMIMEタイプはapplication/vnd.google-earth.kml+xmlであり、KMZはapplication/vnd.google-earth.kmzである。

KMLにおける測地規準系 
KMLは、座標の前提となる測地基準系の定義をサポートしていない。したがって、Geomatics（地理情報学？）や測地学などの専門的な用途には用いることができない。

パーサー 
KMLおよびKMZをパース（解釈）し地図上に表示する機能がアプリケーションなどに備わっている。
 Google Earth（衛星写真・航空写真の背景上に表示）
 Google Maps（機能限定がある。ファイルを公開サイトに置く必要がある。）
 OpenLayers（機能限定がある。KML。）

KMLを使用するアプリケーション 
 ArcGIS Explorer
 Flickr
 Google Earth
 Google Maps
 Google Mobile
 Mapufacture
 Platial
 NASA World Wind
 Yahoo! Pipes

脚注

関連項目 
 CityGML
 Geography Markup Language
 GPX
 カテゴリ (POI)
 ウェイポイント
 COLLADA

外部リンク 
 KML入門ドキュメント
 KML Developer Support group
 KMLImporter importing placemarks into NASA World Wind
 Google Earth Connectivity Add-on for ArchiCAD 9
 Validate your KML (Online or Offline!), Google Maps API Blog.
 simplekml (Python用ライブラリ)

GIS
XMLベースの技術
Google
マークアップ言語
オープンフォーマット
Webマッピング