KML

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>

См. также

Ссылки

Примечания

  1. Sending KML files to Google Maps
  2. Google Earth Help Center
  3. GML and KML Syntax. September 07, 2005