KML
KML (Keyhole Markup Language) — это язык разметки на основе XML, предназначенный для хранения, передачи и отображения географических данных в трёхмерных картографических сервисах и программах. KML позволяет описывать точки, линии, многоугольники, изображения и трёхмерные модели, привязывая их к конкретным координатам на поверхности Земли. Формат разработан компанией Keyhole, Inc., которая была приобретена Google в 2004 году, и впоследствии стал международным стандартом Открытого геопространственного консорциума (OGC).
История
Происхождение
KML был создан в 2001 году компанией Keyhole, Inc., основанной Джоном Хэнком, Марком Обером и Брайаном Макклелландом. Изначально язык разрабатывался для программы Keyhole Earth Viewer, которая позволяла просматривать спутниковые снимки Земли в трёхмерном виде. В 2004 году Google приобрела Keyhole, Inc., и продукт был переименован в Google Earth. Вместе с программой Google получила права на KML, который стал основным форматом для обмена географическими данными в экосистеме Google.
Стандартизация
В 2008 году Google передала спецификацию KML версии 2.2 на рассмотрение Открытого геопространственного консорциума (OGC). В апреле 2008 года OGC официально утвердил KML как международный стандарт (OGC KML). Это решение обеспечило совместимость формата с различными геоинформационными системами (ГИС) и картографическими сервисами, не зависящими от Google. В 2015 году была опубликована версия 2.3, которая добавила поддержку новых типов данных и улучшила интеграцию с другими стандартами OGC, такими как GML (Geography Markup Language).
Структура и синтаксис
KML основан на XML, что делает его читаемым как человеком, так и машиной. Файлы KML обычно имеют расширение .kml, а сжатые версии — .kmz (архив ZIP, содержащий KML и связанные ресурсы, такие как изображения).
Основные элементы
- Placemark — основной элемент для обозначения точки на карте. Содержит координаты (широта, долгота, высота), название и описание.
- Point — задаёт точку с географическими координатами.
- LineString — описывает линию, состоящую из последовательности точек.
- LinearRing — замкнутая линия, используемая для создания многоугольников.
- Polygon — многоугольник, определяющий область на карте.
- GroundOverlay — наложение изображения на поверхность Земли (например, историческая карта или снимок).
- ScreenOverlay — наложение изображения на экран пользователя (например, логотип или легенда).
- Folder — контейнер для группировки элементов.
- Document — корневой элемент, содержащий все данные и стили.
Пример простого KML-файла
``xml <?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://www.opengis.net/kml/2.2"> <Document> <Placemark> <name>Москва</name> <description>Столица России</description> <Point> <coordinates>37.6173,55.7558,0</coordinates> </Point> </Placemark> </Document> </kml> ``
Версии
KML 2.0 и 2.1
Первые версии, использовавшиеся в Google Earth до 2008 года. Поддерживали базовые элементы: точки, линии, многоугольники и наложения. В версии 2.1 появилась поддержка стилей и временных данных.
KML 2.2
Версия, ставшая стандартом OGC в 2008 году. Включала расширенную поддержку трёхмерных моделей, анимации, сетевых ссылок и сложных стилей. Добавлены элементы Region, NetworkLink и Tour.
KML 2.3
Опубликована в 2015 году. Включает улучшенную поддержку фотограмметрии, 3D-моделей в формате COLLADA, а также интеграцию с GML для более точного описания геометрии. Добавлены элементы PhotoOverlay, Track и MultiTrack.
Применение
Картографические сервисы
KML широко используется в Google Earth, Google Maps (организация признана экстремистской и запрещена в РФ) и других картографических платформах для визуализации пользовательских данных. Пользователи могут создавать маршруты, отмечать достопримечательности, накладывать исторические карты и делиться ими.
Геоинформационные системы (ГИС)
Многие ГИС, такие как QGIS, ArcGIS и MapInfo, поддерживают импорт и экспорт KML. Это позволяет обмениваться данными между различными программами и платформами. KML часто используется для визуализации результатов полевых исследований, экологического мониторинга и градостроительного планирования.
Навигация и трекинг
Формат применяется для записи и отображения треков (маршрутов движения) в GPS-навигаторах и спортивных приложениях (например, Strava, Garmin Connect). Треки сохраняются в виде LineString или Track (в KML 2.3).
Образование и наука
KML используется в образовательных проектах для демонстрации географических явлений, исторических событий и астрономических данных. Например, в проекте Google Earth Outreach созданы KML-слои, показывающие изменения климата, распространение видов и археологические раскопки.
Туризм и путешествия
Туристические компании и путешественники создают KML-файлы с маршрутами, достопримечательностями и отелями. Эти файлы можно загружать в навигационные приложения и карты.
Классификация
По типу данных
- Точечные данные — Placemark с Point (например, метки городов, памятников).
- Линейные данные — LineString (например, дороги, реки, треки).
- Полигональные данные — Polygon (например, границы стран, районов, зон).
- Наложения — GroundOverlay и ScreenOverlay (например, изображения, легенды).
- Трёхмерные модели — Model с COLLADA (например, здания, памятники).
По способу распространения
- Статические файлы — одиночные KML/KMZ, загружаемые вручную.
- Сетевые ссылки — NetworkLink, автоматически обновляемые с сервера.
- Динамические слои — KML, генерируемые на лету веб-сервисами (например, данные о погоде, пробках).
Характеристики
Преимущества
- Простота — синтаксис на основе XML легко читается и редактируется.
- Совместимость — поддерживается большинством картографических сервисов и ГИС.
- Расширяемость — возможность добавления пользовательских данных и стилей.
- Сжатие — формат KMZ позволяет упаковывать KML и связанные ресурсы в один архив.
Недостатки
- Размер файлов — большие наборы данных (например, тысячи точек) могут создавать громоздкие файлы.
- Производительность — сложные трёхмерные модели и анимации могут замедлять работу в старых версиях программ.
- Ограничения по точности — координаты хранятся в градусах, что может приводить к погрешностям при работе с очень мелкими объектами.
Интересные факты
- Название «Keyhole» происходит от разведывательных спутников США серии KH (Keyhole), которые использовались для съёмки Земли.
- В 2005 году KML использовался для создания виртуальной карты урагана «Катрина», что позволило спасателям координировать действия.
- Формат KML поддерживается не только в Google Earth, но и в таких программах, как NASA World Wind, Marble (KDE) и OpenStreetMap (через плагины).
- В 2010 году Google Earth использовал KML для создания трёхмерной модели древнего Рима, что стало одним из первых крупных проектов виртуальной археологии.
Источники
- OGC KML Standard (Version 2.3, 2015)
- Google Developers: KML Documentation
- Keyhole, Inc. — история создания
- QGIS Documentation: Importing and Exporting KML
- NASA World Wind: KML Support
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →