KML

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая Partyzan XXI (обсуждение | вклад) в 17:25, 2 декабря 2009. Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску

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

Подмножество языка KML 2.0 может использоваться и для отображения двухмерных карт на сайтах maps.google.com[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>

См. также

Примечания

Ссылки