{{위키데이터 속성 추적}}
{{Infobox file format
| name          = 키홀 마크업 언어
| icon          = 
| iconcaption   =
| icon_size     = 
| screenshot    =
| screenshot_size =
| caption       =
|_noextcode     = on
| extensions    = <code>.kml</code>, <code>.kmz</code>
|_nomimecode    = on
| mime          = {{plainlist|
* <code>application/vnd.google-earth.kml+xml</code>
* <code>application/vnd.google-earth.kmz</code>
}}
| type code     =
| uniform_type  =
| conforms_to   =
| magic         =
| developer     = [[키홀 (기업)|키홀]], [[구글]]
| released      = 
| latest_release_version =
| latest_release_date = 
| genre         = [[GIS 파일 포맷]]
| container_for =
| contained_by  =
| extended_from = [[XML]]
| extended_to   =
| standard      = 
| free          =
| url           =
}}
'''키홀 마크업 언어'''({{lang|en|Keyhole Markup Language}}, '''KML''')는 [[구글 어스]], [[구글 지도]] 및 기타 응용 프로그램에 쓰이는 [[XML]] 기반의 [[마크업 언어]] 스키마이다. 지형 정보(annotation)를 모델링하고 표현하는 역할을 한다. KML 인코딩을 지원하는 구글 외 회사의 [[월드 와이드 웹]] 기반의 2차원 지도나 3차원 [[지구]] 지도 브라우저에도 쓰인다. 키홀 마크업 언어(KML)은 [[구글 어스]]에 쓰일 목적으로 개발되었다.<ref>구글 어스의 당시 이름은 키홀 어스 뷰어({{lang|en|Keyhole Earth Viewer}})였다.</ref> 키홀 마크업 언어(KML)은 [[키홀]] 사가 개발하였다. 2004년 키홀 사는 구글에게 인수되었다. 이름 "키홀"(Keyhole)은 미국 최초의 광전자 공학 정찰 위성인 [[KH-11]] 정찰위성을 기리기 위해 붙인 이름이다.

== 사용 ==
KML 파일은 구글 어스, 구글 지도(구글 맵스), 모바일 등에 쓰인다.

== 구조 ==
KML 파일은 피처(feature)들의 집합을 기술하고 있다. (위치 마크, 이미지, 다각형, 3D 모델, 텍스트 디스크립션 등) 각각의 지형 위치는 [[경도]]와 [[위도]]를 가지고 있다. 기울기, 헤딩, 고도 등 뷰를 더 상세히 정의할 수 있는 데이터도 넣을 수 있는데, 이들 수치가 모여 하나의 "카메라 뷰"를 구성한다. KML은 [[GML]]과 같은 구조적 문법이 같다.<ref>{{웹 인용 |url=http://geoweb.blog.com/313918/ |제목=Create account at Blog.com<!-- 봇이 붙인 제목 --> |확인날짜=2008-08-28 |보존url=https://web.archive.org/web/20080723114629/http://geoweb.blog.com/313918/ |보존날짜=2008-07-23 |url-status=dead }}</ref> 일부 KML 정보는 구글 맵스나 모바일에서 볼 수 없다.<ref>[http://maps.google.com/support/bin/answer.py?answer=41136&topic=1475 Viewing data from Google Earth - Maps Help<!-- 봇이 붙인 제목 -->]</ref>

KML은 대개 "KMZ" 파일 형식으로 배포된다. KMZ는 KML의 [[데이터 압축]] 파일이다.

다음은 KML 도큐먼트의 예제이다.

<syntaxhighlight lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Placemark>
  <name>New York City</name>
  <description>New York City</description>
  <Point>
    <coordinates>-74.006393,40.714172,0</coordinates>
  </Point>
</Placemark>
</kml>
</syntaxhighlight>

KML에 대한 [[MIME 타입]]은 <code>application/vnd.google-earth.kml+xml</code>이며, KMZ에 대한 마임 타입은 <code>application/vnd.google-earth.kmz</code>이다.

== KML의 측지학적 레퍼런스 시스템 ==
레퍼런스 시스템으로서, KML은 3차원 지리 좌표계를 사용한다. 3차원 지리 좌표계는 순서대로 경도, 위도, 고도 성분으로 이루어진다. 경도, 위도 성분은 [[World Geodetic System|1984 World Geodetic System (WGS84)]]를 근거로 정해진다. 고도(수직 성분)는 [[EGM96|WGS84 EGM96 지오이드 버티칼 데이텀]]으로 정해진다. 예를 들어 (-122.917, 49.2623)와 같이 좌표 문자열에서 고도가 생략되었다면, 고도는 기본값으로 0을 갖는다. (해수면 높이와 거의 일치한다.) 다시 말해 앞서의 문자열은 (-122.917, 49.2623, 0)이란 좌표문자열이 된다. KML이 사용한 좌표 레퍼런스 시스템에 대한 포멀한 정의는 OGC KML 2.2 스펙에 들어 있다. 이 정의는 이미 널리 알려져 있는 EPSG CRS 콤포넌트를 참조하고 있다.

== KML을 사용하는 응용 프로그램 ==
* [[ArcGIS 익스플로러]]
* [[피처 매니퓰레이션 엔진]]
* [[플리커]]
* [[구글 어스]]
* [[구글 지도]] - Search Maps 인풋박스에 KML 파일의 URL을 올리면 KML이 바로 로딩된다.<ref>{{웹 인용
|url = http://aero.dnip.net/blog/2007/10/google-map-kml.html
|웹사이트 = aero's Blog
|제목 = Google Map의 KML지원이 강화되었다.
|확인날짜 = 2008-08-28
|archive-date = 2007-12-21
|archive-url = https://web.archive.org/web/20071221234306/http://aero.dnip.net/blog/2007/10/google-map-kml.html
|url-status = 
}}</ref>
* [[구글 모바일]] - [[구글의 서비스 목록]]
* [[라이브 서치 맵스]]
* [[마이크로소프트 버추얼 어스]]
* [[맵 마이 앤세스터즈]]
* [[Mapufacture]]
* [[마블 (KDE)]]
* [[오픈레이어즈]]
* [[플라샬]]
* [http://www.routebuddy.com 라우트버디 포 맥]
* [[위키매피아]]
* [[월드 윈드]]
* [[야후! 파이프]]
* SuperMap iServer (SuperMap IS) .NET and Java
* [https://web.archive.org/web/20130115082938/http://www.openlapi.com/ OpenLAPI], [[Location API for Java ME]]의 [[GNU 약소 일반 공중 사용 허가서]](LGPL) 구현.

== 같이 보기 ==
* [[GeoJSON]]
* [[GPX]]

== 각주 ==
{{각주}}

== 외부 링크 ==
* {{언어링크|en}} [http://www.opengeospatial.org/standards/kml/ OGC KML 2.2 Standard]
* {{언어링크|en}} [http://schemas.opengis.net/kml/2.2.0/ OGC Official KML 2.2 Schema]
* {{언어링크|en}} [https://developers.google.com/kml/documentation/?csw=1 Google's KML Documentation]

{{개방형 공간 정보 컨소시엄 표준}}
{{구글}}

{{전거 통제}}

[[분류:XML 기반 표준]]
[[분류:구글]]
[[분류:XML 마크업 언어]]
[[분류:지리 정보 시스템 파일 형식]]
[[분류:오픈 포맷]]