KML

KML (от англ. Keyhole Markup Language — язык разметки Keyhole) — язык разметки на основе XML для представления трёхмерных геопространственных данных в программе «Google Планета Земля» («Keyhole» до её приобретения «Google»).

Keyhole Markup Language
Расширение .kml
MIME-тип application/vnd.google-earth.kml+xml
Разработчик Keyhole[d] и Google
Тип формата Геоинформационная система
Расширен из XML

Содержание

Подмножество языка KML 2.0 может использоваться и для отображения двухмерных карт в сервисе «Карты Google»[1].

KML-файлы обычно распространяются в ZIP-архиве: KMZ
MIME-тип KML-файлов: application/vnd.google-earth.kml+xml[2]
MIME-тип KMZ-файлов: application/vnd.google-earth.kmz

Содержание файлов

KML-файл определяет один или несколько объектов для отображения в Google Earth. Этими объектами могут быть:

  • Пометки на карте. Задаётся значок, отображаемый в некотором месте на карте, и его относительная величина, а также текст и цвет и величина надписи, отображаемой возле значка. Есть возможность создать пометку без значка. Например, поставить номера домов района. Для этого нужно просто в стиле создать пустую ссылку на значок:
    <Icon><href></href></Icon>
  • Многоугольник или набор линий. Определяется цвет линий и цвет подписи.
  • Изображение. Определяется положение изображения на поверхности Земли, а также его масштаб. Также можно разместить изображение на экране, не перемещающееся вместе с картой — например, логотип.
  • Трёхмерная модель. Версия языка KML 2.1 (которая соответствует четвёртой версии программы Google Earth) позволяет подключать описание трёхмерных объектов (например, зданий и сооружений). Трёхмерную модель можно задать двумя способами: заданием высоты плоских фигур (вытягиванием) и ссылкой на полноценную модель в формате Collada.

Кроме упомянутых характеристик, для каждого объекта также задаются основные геоинформационные свойства (географическая широта и долгота, а также высота либо над уровнем моря, либо над уровнем поверхности Земли). Может быть приведено краткое описание объекта (которое в дальнейшем отображается во всплывающей подсказке по запросу пользователя). Может быть указан рекомендуемый ракурс наблюдения отмеченного на карте места, то есть рекомендуемая высота, азимут и угол наклона «виртуальной камеры».

Объекты внутри KML-файла можно организовать в иерархические структуры папок и подпапок, чтобы было удобнее совместно включать и отключать отображение логически взаимосвязанных групп объектов.

KML-файл может содержать (в URL-форме) ссылки на другие файлы в формате KML или KMZ, расположенные где-либо в Сети, и задавать условия и регулярность загрузки и отображения данных из этих внешних источников. Такая сетевая ссылка также видна в качестве своеобразной подпапки.

Язык KML во многом следует структуре языка GML — географического языка разметки[3].

Пример KML-разметки

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
<Placemark>
	<name>Геленджик</name>
	<description><![CDATA[<p>Геленджик, Краснодарский край, Россия.</p>Город
        располагается по&amp;nbsp;берегам Геленджикской бухты,
        но&amp;nbsp;не&amp;nbsp;равномерно (восточный берег исторически
        более населён).]]></description>
	<LookAt id="khLookAt540_copy0">
		<longitude>38.0576198113139</longitude>
		<latitude>44.56963150481845</latitude>
		<altitude>0</altitude>
		<range>14693.40972993507</range>
		<tilt>49.10268313434742</tilt>
		<heading>37.85562764777833</heading>
	</LookAt>
	<Style>
		<IconStyle>
			<scale>0.9</scale>
			<Icon>
				<href>root://icons/palette-4.png</href>
				<x>32</x>
				<y>128</y>
				<w>32</w>
				<h>32</h>
			</Icon>
		</IconStyle>
		<LabelStyle>
			<scale>0.9</scale>
		</LabelStyle>
	</Style>
	<Point id="khPoint541_copy0">
		<coordinates>38.06284424434902,44.56842733252498,0</coordinates>
	</Point>
</Placemark>
</kml>

См. также

  • Geography Markup Language (GML)

Примечания

  1. Sending KML files to Google Maps
  2. Google Earth Help Center Архивировано 24 октября 2007 года.
  3. GML and KML Syntax (недоступная ссылка). September 07, 2005

Ссылки