키홀 마크업 언어

키홀 마크업 언어(, KML)는 구글 어스, 구글 지도 및 기타 응용 프로그램에 쓰이는 XML 기반의 마크업 언어 스키마이다. 지형 정보(annotation)를 모델링하고 표현하는 역할을 한다. KML 인코딩을 지원하는 구글 외 회사의 월드 와이드 웹 기반의 2차원 지도나 3차원 지구 지도 브라우저에도 쓰인다. 키홀 마크업 언어(KML)은 구글 어스에 쓰일 목적으로 개발되었다. 키홀 마크업 언어(KML)은 키홀 사가 개발하였다. 2004년 키홀 사는 구글에게 인수되었다. 이름 "키홀"(Keyhole)은 미국 최초의 광전자 공학 정찰 위성인 KH-11 정찰위성을 기리기 위해 붙인 이름이다.

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

구조 
KML 파일은 피처(feature)들의 집합을 기술하고 있다. (위치 마크, 이미지, 다각형, 3D 모델, 텍스트 디스크립션 등) 각각의 지형 위치는 경도와 위도를 가지고 있다. 기울기, 헤딩, 고도 등 뷰를 더 상세히 정의할 수 있는 데이터도 넣을 수 있는데, 이들 수치가 모여 하나의 "카메라 뷰"를 구성한다. KML은 GML과 같은 구조적 문법이 같다. 일부 KML 정보는 구글 맵스나 모바일에서 볼 수 없다.

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

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

<?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>

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

KML의 측지학적 레퍼런스 시스템 
레퍼런스 시스템으로서, KML은 3차원 지리 좌표계를 사용한다. 3차원 지리 좌표계는 순서대로 경도, 위도, 고도 성분으로 이루어진다. 경도, 위도 성분은 1984 World Geodetic System (WGS84)를 근거로 정해진다. 고도(수직 성분)는 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이 바로 로딩된다.
 구글 모바일 - 구글의 서비스 목록
 라이브 서치 맵스
 마이크로소프트 버추얼 어스
 맵 마이 앤세스터즈
 Mapufacture
 마블 (KDE)
 오픈레이어즈
 플라샬
 라우트버디 포 맥
 위키매피아
 월드 윈드
 야후! 파이프
 SuperMap iServer (SuperMap IS) .NET and Java
 OpenLAPI, Location API for Java ME의 GNU 약소 일반 공중 사용 허가서(LGPL) 구현.

같이 보기 
 GeoJSON
 GPX

각주

외부 링크 
  OGC KML 2.2 Standard
  OGC Official KML 2.2 Schema
  Google's KML Documentation

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