Открываем формат KML
Формат KML является расширением, в котором сохраняются географические данные объектов в программе Google Earth. К такой информации относятся метки на карте, произвольный участок в виде многоугольника или линий, трехмерная модель и изображение части карты.
Просмотр файла KML
Рассмотрим приложения, которые взаимодействуют с данным форматом.
Google Earth
Google Earth – одно из наиболее популярных на сегодняшний день картографических приложений.
- После запуска нажимаем на «Открыть» в главном меню.
- Находим директорию с исходным объектом. В нашем случае файл содержит информацию о местоположении. Кликаем по нему и жмем на «Открыть».
Интерфейс программы с указанием местоположения в виде метки.
Блокнот
Блокнот — встроенное приложение Windows для создания текстовых документов. Может также выступать в роли редактора кода определенных форматов.
- Запустите данный софт. Для просмотра файла надо выбрать «Открыть» в меню.
- Выбираем «Все файлы» в соответствующем поле. Выделив искомый объект, нажимаем на «Открыть».
Визуальное отображение содержимого файла в Блокноте.
Можно сказать, что расширение KML имеет малое распространение, и используется исключительно в Google Earth, а просмотр такого файла через Блокнот мало кому будет полезен.
Мы рады, что смогли помочь Вам в решении проблемы.
Помимо этой статьи, на сайте еще 12384 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
Формат файлов KML и его использование на картах Google. Введение.
KML (Keyhole Markup Language — язык разметки Keyhole) — это формат файлов, который используется отображения географических данных в программах Google Планета Земля, Карты Google и Карты Google для мобильных устройств.
KML использует основанную на тегах структуру с вложенными элементами и атрибутами и создан на основе стандарта XML.
Для создания файлов KML можно использовать программу Google Планета Земля (Google Earth), редактор XML или обычный текстовый редактор.
Файлы KML и связанные с ними изображения (при наличии) можно сжимать с помощью формата ZIP в архивы KMZ.
С помощью файлов KML можно:
- устанавливать различные значки и делать подписи для обозначения мест на поверхности Земли,
- создавать различные ракурсы для выбранных объектов, изменяя положение камеры,
- использовать различные накладываемые изображения,
- определять стили для настройки отображения объекта, применять код HTML для создания гиперссылок и встроенных изображений,
- использовать папки для иерархической группировки элементов,
- динамически получать и обновлять файлы KML из удаленных или локальных узлов сети,
- получать данные KML в соответствии с изменениями в средстве трехмерного просмотра,
- отображать текстурные трехмерные объекты COLLADA
В качестве объектов в файлах формата KML могут быть использованы:
Метки (объект Placemark) – самый простой элемент, задает метку – обозначение положения на поверхности Земли с помощью значка в виде желтой кнопки.
Пути – линии определенной толщины и цвета
Многоугольники — определяется цвет линий и цвет подписи.
Изображения — накладываемые изображения поверхности Земли позволяют накладывать изображение на ландшафт Земли, могут быть перемещаемыми и масштабируемыми, так и не перемещаемыми, например, логотип.
Трёхмерная модель — позволяет подключать описание трёхмерных объектов (например, зданий и сооружений). Трёхмерную модель можно задать двумя способами: заданием высоты плоских фигур (вытягиванием) и ссылкой на полноценную модель в формате COLLADA (Google SketchUp).
Простейший пример файла KML.
<?xml version=»1.0″ standalone=»yes»?>
<kml xmlns=»http://earth.google.com/kml/2.1″>
<Placemark>
<name>Дворец спорта</name>
<description>Дворец спорта «Нагорный» просп. Гагарина, 29</description>
<Point>
<coordinates>43.979459,56.291908,0 </coordinates>
</Point>
</Placemark>
</kml>
Опишу структуру этого файла.
Первая строка — заголовок XML. Это 1-я строка в каждом файле KML. Перед этой строкой не должно быть пробелов или символов.
Вторая строка – служит для объявления пространства имен KML. Это 2-я строка в каждом файле KML 2.1.
Объект Placemark, содержащий следующие элементы:
— name, ярлык, используемый для обозначения метки
— description, описание, появляющееся в окне комментария, прикрепленном к метке
— Point, указывает положение метки на поверхности Земли (долгота, широта и дополнительно высота).
Этот файл Вы можете загрузить в программе Google Планета Земля (Google Earth) выбрав в меню Файл – Открыть.
Его также можно загрузить использую API карт Google.
<!DOCTYPE html «-//W3C//DTD XHTML 1.0 Strict//EN»»http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd»>
<title>Пример использования Google Earth на сайте</title>
var map = new GMap2(document.getElementById(«map_canvas»));
map.setCenter(new GLatLng(56.291908,43.979459), 15);
map.addOverlay(geoXml);
Если загрузить его в браузере мы увидим
Вы также можете просмотреть файл KML на Картах Google.
Предварительно необходимо чтобы Ваш файл KML должен быть размещен на веб-сайте в Интернете.
С начала нужно зайти по адресу http://maps.google.ru/
Затем в строке поиска ввести адрес Вашего KML-файла в интернете, например, http://webmap-blog.ru/examples/kml/prim_kml_1.kml и нажать на кнопку «Поиск на карте».
Ваш KML-файл отобразиться на карте Google.
Формат файлов KML и его использование на картах Google. Введение. : 6 комментариев
Огромное спасибо! Понятно и подробно, сразу понятно все.
а есть еще примеры по использованию kml?
Есть ли возможность использовать полученные kml файлы для интеграции c Nokia ovi maps?
Спасибо за статью! А вы не в курсе, почему обьявление в google places может не отображатся в выдаче? Вроде все сделано как надо…
Руководство по KML
KML – это формат файлов, который используется для отображения географических данных в геобраузерах, таких как Google Планета Земля, Google Карты и Google Карты для мобильных устройств. KML создан на основе стандарта XML и использует основанную на тегах структуру с вложенными элементами и атрибутами. Регистр тегов учитывается, поэтому их необходимо указывать точно в той форме, в какой они приведены в Справке по KML, где также указано, какие теги обязательны, а какие – нет. Теги внутри элемента должны располагаться в том порядке, который приведен в Справке.
Если вы никогда не работали с KML, начните с изучения этой страницы и прилагаемых файлов с примерами (SamplesInEarth и SamplesInMaps), чтобы ознакомиться со структурой KML-файла и основными тегами. В первом разделе описаны компоненты, которые можно создать в пользовательском интерфейсе Google Планеты Земля, включая метки, описания, наложения на земную поверхность, пути и многоугольники. Во втором разделе описаны компоненты, для определения которых потребуется текстовый редактор. Текстовый файл, сохраненный с расширением .kml или .kmz, распознается геобраузерами.
Совет. Чтобы получить KML-код компонента из Google Планеты Земля, нажмите на него правой кнопкой мыши в окне 3D-просмотра и выберите "Копировать", а затем вставьте содержание буфера обмена в любой текстовый редактор. Компонент, отображаемый в геобраузере, будет преобразован в KML-код. Рекомендуем попробовать эту функцию в действии.
Все примеры, которые приводятся на этой странице, можно найти в файле KML_Samples. Прежде чем продолжать, загрузите его, чтобы просматривать примеры в интерфейсе Google Планеты Земля.
Дополнительная информация
В Справке по KML 2.2 формат KML описан более подробно. Если вы уже работали с XML-кодом, рекомендуем ознакомиться со схемой KML 2.2.
Инструкции по применению отдельных компонентов KML можно найти в Руководстве разработчика.
Содержание
Простые KML-документы
Самые простые KML-документы можно создавать прямо в интерфейсе Google Планеты Земля; для этого даже не потребуется текстовый редактор. Таким способом можно создавать и изменять метки, наложения на земную поверхность, пути и многоугольники.
Метки
Метка является одним из самых часто используемых компонентов в Google Планете Земля. Она служит для указания положения на земной поверхности и представлена значком булавки желтого цвета. В самом простом варианте метка содержит только элемент <Point>, который определяет ее положение. Вы также можете указать ее название и персонализированный значок или добавить другие элементы.
Откройте файл KML_Samples в Google Планете Земля и перейдите в папку Placemarks. В ней представлены три типа меток: проcтая, плавающая и выдавленная. Ниже показан KML-код простой метки.
Рассмотрим структуру этого файла.
- Заголовок XML: с него начинается каждый KML-файл. Перед заголовком не должно быть никаких символов или пробелов.
- Декларация пространства имен KML: вторая строка каждого файла формата KML 2.2.
- Объект Placemark, содержащий следующие элементы:
- name – имя, которое используется в качестве ярлыка метки;
- description – описание, которое отображается во всплывающем окне, привязанном к метке;
- Point – координаты, определяющие положение метки на земной поверхности (долгота и широта, иногда также высота).
Если вы не можете найти эту метку на карте, подсказываем: она расположена прямо на 41-м корпусе Google – именно там разрабатывалась Google Планета Земля.
То, что пользователи Google Планеты Земля видят как метку, является элементом <Placemark> с дочерним элементом <Point> в формате KML. Это единственный способ отобразить метку с ярлыком в окне 3D-просмотра. По умолчанию метка имеет вид уже знакомой вам желтой булавки. В KML-коде элемент <Placemark> может содержать один или несколько геометрических элементов, таких как ломаные линии (LineString), многоугольники (Polygon) или модели (Model), но только <Placemark> с дочерним элементом <Point> может отображаться как метка с ярлыком. Элемент <Point> служит для правильного размещения метки на карте, но сам не имеет графического представления.
Описательный HTML в метках
В файле KML_Samples приведены исчерпывающие примеры форматирования текста метки, включая добавление ссылок, изменение размера и стиля шрифта, выравнивание и использование таблиц. Чтобы просмотреть полный список возможностей, скопируйте и вставьте в текстовый редактор пример Descriptive HTML (в папке Styles and Markup).
Авторазметка в Google Планете Земля 4.0 и более поздних версий
В Google Планете Земля 4.0 предусмотрена функция авторазметки, которая преобразует текст наподобие www.google.com в активные гиперссылки. Текст, заключенный в теги <description> или <Snippet>, а также в элемент <text> внутри <BalloonStyle>, автоматически преобразуется в стандартные HTTP-ссылки. Добавлять теги <a href= . > вручную не нужно.
Использование элемента CDATA
Чтобы добавить стандартный HTML-код в тег <description>, его необходимо заключить в тег CDATA. Если этого не сделать, угловые скобки придется записывать в виде ссылок на объекты, иначе HTML-код будет неправильно анализироваться (например, символ > потребуется писать как >, а символ < – как <). Это особенность языка XML в целом, а не только Google Планеты Земля.
Обратите внимание на HTML-разметку с тегами CDATA и без них. Сначала рассмотрим элемент <description> с тегами CDATA.
Теперь посмотрим, как оформляется <description> без тегов CDATA.
Наложения на земную поверхность
Наложения на земную поверхность позволяют "накрыть" рельеф местности определенным изображением. Элемент <Icon> содержит ссылку на JPG-файл изображения. Ниже приведен пример из файла KML_Samples, показывающий извержение Этны в 2001 году.
Обратите внимание на то, что первые две строки файла точно такие же, как в первом примере: XML-заголовок и декларация пространства имен KML.
Для группировки и обозначения содержания в примере используется папка Ground Overlays. Обратите внимание на то, что она появляется в панели "Метки", как только вы загружаете файл KML_Samples в Google Планету Земля.
Расположение наложения определяется с помощью тега <LatLonBox>, в котором указываются крайние значения южной и северной широты, а также восточной и западной долготы. Кроме того, если ось y изображения не направлена строго на север, задается значение поворота. В примере используется JPEG-изображение, но Google Планета Земля также поддерживает графические форматы BMP, GIF, TIFF, TGA и PNG.
В Google Планете Земля можно создавать пути разных типов, что позволяет подойти к отображению данных творчески. В KML-коде путь представлен элементом <LineString>. Изучите пример Absolute Extruded в папке Paths: линия определена с помощью указанного ниже кода.
Обратите внимание на то, что это одна и та же линия, отображаемая на определенной высоте над землей. Благодаря тегу <tessellate> линия разбивается на короткие отрезки, а тег <extrude> отвечает за ее выравнивание относительно земной поверхности.
Многоугольники
С помощью многоугольников можно моделировать здания и другие объекты. Примеры можно найти в папке Polygons файла KML_Samples.
Модель здания Пентагона построена так: внутренний и внешний контуры "вытянуты" вниз к земной поверхности. Ниже показан код.
Расширенные KML-документы
В этом разделе представлены некоторые элементы KML, которые можно задать только с помощью текстового редактора, такие как общие стили геометрии, выделенные значки меток и наложения на экране. Написание KML-кода вручную требует больше знаний и опыта, чем создание компонентов в интерфейсе Google Планеты Земля, однако немного попрактиковавшись, вы сможете без труда добавлять эти эффекты в KML-файлы.
Стили геометрии
Вы уже знаете, как создавать компоненты в интерфейсе Google Планеты Земля и как выглядит их KML-код. Наверняка вы обратили внимание на то, что стили играют важную роль при отображении данных. Со временем вам может потребоваться определять собственные стили.
Если определить элемент <Style> в начале KML-документа и присвоить ему идентификатор, этот стиль можно будет применять к геометрическим элементам, меткам и наложениям, определенным в других разделах документа. Так как один и тот же стиль можно применять к нескольким элементам, используется термин общие стили. Достаточно один раз определить <Style>, чтобы затем ссылаться на него с помощью элемента <styleUrl>. Если элемент <Style> определен в том же файле, перед его идентификатором необходимо добавить знак решетки (#). Если же он определен в другом файле, в элементе <styleUrl> необходимо указать полный URL.
В файле KML_Samples представлено несколько общих стилей, которые определены в начале файла и обозначены идентификаторами. Рекомендуем использовать описательные идентификаторы – так вам будет проще отличать стили друг от друга. Ниже показан пример стиля transBluePoly, который определяет для многоугольников прозрачную голубую заливку и белые границы толщиной 1,5 (белый цвет задан по умолчанию). Этот стиль использован в модели 41-го корпуса Google (в папке Polygons).
Обратите внимание на то, что <Style> является дочерним элементом элемента <Placemark>, а не геометрического элемента, к которому он применяется.
Стили выделенных значков
Пример Highlighted Icon в папке Styles and Markup демонстрирует, как задать эффект выделения в KML. В документе необходимо определить два стиля: normalPlacemark (для метки в обычном состоянии) и highlightPlacemark (для выделения метки, на которую наведен указатель мыши). В элементе <StyleMap> содержатся две пары "ключ-значение", определяющие стиль значка в зависимости от его состояния. Состояния может быть два: обычное и выделенное (при наведении мыши).
Чтобы определить стиль значка при наведении мыши, выполните указанные ниже действия.
- Создайте элемент <Style> для значка метки в обычном состоянии и присвойте ему идентификатор (в примере это normalPlacemark). <Style> содержит элемент <Icon> со ссылкой <href>, указывающей на используемое изображение, как показано ниже.
- Создайте элемент <Style> для значка метки в выделенном состоянии и присвойте ему идентификатор (в примере это highlightPlacemark).
- Создайте элемент <StyleMap> и присвойте ему идентификатор (в примере это exampleStyleMap), на который будет ссылаться компонент Placemark.
- Определите внутри элемента <StyleMap> ссылку на стиль #normalPlacemark для метки в обычном состоянии (normal).
- Определите внутри элемента <StyleMap> ссылку на стиль #highlightPlacemark для выделенной метки (highlight).
- Добавьте к компоненту Placemark элемент <styleUrl>, ссылающийся на "#exampleStyleMap.
Наложения на экране
В отличие от наложений на земную поверхность, наложения на экране нельзя создавать в интерфейсе Google Планеты Земля. Примеры можно найти в папке Screen Overlays файла KML_Samples.
В качестве иллюстрации включите папку Absolute Positioning: Top left файла KML_Samples. В левом верхнем углу окна просмотра появится наложение. Ниже показан его KML-код.
Размещение наложения определяется следующим образом: точка изображения, заданная элементом <overlayXY>, привязывается к точке на экране, заданной элементом <screenXY>. В данном случае левый верхний угол изображения (0,1) выравнивается по левому верхнему углу экрана.
Просмотрите другие примеры в папке, чтобы лучше понять принцип определения фиксированных изображений и изображений, размер которых меняется в зависимости от размера экрана. Обратите внимание на то, что для большей точности вместо xunits и yunits можно использовать пиксели. Подробные сведения приведены в Справке по KML 2.2.
Сетевые ссылки
Сетевая ссылка состоит из элемента <Link> с гипертекстовой ссылкой <href>, указывающей на загружаемый файл. Элемент <href> может содержать локальную ссылку или абсолютный URL. Таким образом, <NetworkLink> может служить не только для загрузки файлов из сети.
Элемент <href> может указывать на расположение любого из следующих файлов:
- файла изображения, который используется в стилях значков, наложениях на земную поверхность или наложениях на экране;
- файла модели, которая используется в элементе <Model>;
- KML- или KMZ-файла, загружаемого с помощью сетевой ссылки.
Такой файл может располагаться локально или на удаленном сервере. В самом простом варианте сетевые ссылки помогают разделить крупный KML-файл на несколько меньших файлов на одном и том же компьютере, чтобы с ними было удобнее работать.
До сих пор мы рассматривали только случаи, в которых KML-код передается в Google Планету Земля с локального компьютера. Сетевые ссылки позволяют получать содержание с удаленных серверов и, как правило, используются для предоставления данных большому количеству пользователей. Таким образом, если в содержание необходимо внести изменения, достаточно сделать это в файле источника, и все пользователи автоматически увидят обновленную версию.
CGI-скрипты для KML
Элемент <href> сетевой ссылки может не только указывать на файлы со статическими данными, но и на динамическое содержание, генерируемое, например, CGI-скриптом на сетевом сервере. При наличии базовых навыков программирования программирования на языках PHP, Python или Perl вы сможете написать скрипт для передачи потоковых данных (или файлов) в формате KML по сетевым ссылкам.
Чтобы передавать KML-код с помощью сетевого CGI-скрипта, должны выполняться два условия.
Когда клиент (Google Планета Земля) отправляет запрос на сервер, сервер должен, во-первых, возвратить код ответа HTTP 200, а во-вторых, предоставить содержание типа text/plain или application/vnd.google-earth.kml+xml.
Ответ должен содержать действительный KML-код. Чем сложнее приложение, тем важнее предусмотреть правильную обработку ошибок.
Совет. Самый простой способ обработки ошибок – включение сообщения об ошибке в название папки. Предположим, сервер возвратил строку <Folder><name>database inaccessible</name></Folder> . Такой ответ более информативен и полезен для пользователя (теперь он знает, что база данных недоступна), чем разрыв соединения.
В примерах ниже используется Python, однако то же самое можно написать на любом другом языке.
Создание случайной метки
Ниже показан скрипт на языке Python, генерирующий случайные значения широты (latitude) и долготы (longitude) и добавляющий их в элемент <coordinates> элемента <Point>. При обновлении сетевой ссылки скрипт запускается снова и генерирует KML-код с новыми значениями широты и долготы.
Теперь рассмотрим пример KML-файла с сетевой ссылкой, по которой загружается скрипт Python.
Запросы на обновление при просмотре
Стандартная сетевая ссылка работает только в одном направлении: данные поступают с севера в Google Планету Земля. Обновление при просмотре позволяет передавать данные в обоих направлениях, причем Google Планета Земля в определенный момент времени возвращает серверу координаты области просмотра. Это может происходить каждые n секунд, минут или часов либо по истечении определенного времени после того, как область просмотра перестала смещаться. Подробные сведения приведены в разделе <viewRefreshMode> Справки по KML 2.2.
Координаты возвращаются серверу с помощью метода HTTP GET, который добавляет их в следующем виде (показана информация в заданном квадрате поиска):
Если запрос выполняется в тот момент, когда пользователь рассматривает область Сан-Франциско, координаты могут выглядеть так:
Эту функцию можно использовать для самых разных целей, однако для начала рассмотрим простой пример.
Определение точки в центре области просмотра
Ниже показан выполняемый на стороне сервера скрипт Python, который анализирует сообщение, возвращаемое Google Планетой Земля, и в ответ размещает метку в центре экрана. Новая метка генерируется при каждом обновлении сетевой ссылки.
А так выглядит KML-код сетевой ссылки, которая загружает показанный выше скрипт:
Этот принцип можно использовать и для более сложных задач. Например, если у вас есть база данных с географической информацией, можно получить координаты области просмотра, отправить в базу данных запрос на информацию об этой области и в ответ передать в Google Планету Земля KML-код.
Типы MIME в KML
Когда KML-сервер отвечает на запрос Google Планеты Земля (или любого другого геобраузера), должен быть соблюден ряд правил, иначе геобраузер не сможет правильно интерпретировать ответ.
В случае успеха сервер должен возвратить код ответа HTTP 200 и указать для содержания ответа подходящий тип MIME, как описано ниже.
Google Планета Земля поддерживает файлы в форматах KML и KMZ. Для KML-файлов необходимо указать следующий тип MIME:
- application/vnd.google-earth.kml+xml
Для KMZ-файлов необходимо указать следующий тип MIME:
- application/vnd.google-earth.kmz
Если используется сервер Apache, добавьте в файл httpd.conf следующие строки:
- AddType application/vnd.google-earth.kml+xml .kml
- AddType application/vnd.google-earth.kmz .kmz
Инструкции по настройке типов MIME в службе Microsoft IIS можно найти в документации Microsoft.
Тело ответа должно содержать действительный KML-код, включая декларацию XML ( <?xml version="1.0" encoding="UTF-8"?> ). Если сервер возвратит недействительный KML-код, передача данных по сетевой ссылке будет прекращена, ссылка будет деактивирована, и будет показано сообщение об ошибке.
Дополнительные ресурсы
Подробные сведения об основных компонентах KML можно найти в Руководстве разработчика, а информацию об отдельных элементах – в Справке по KML.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.