Часто задаваемые вопросы о KML


Что такое KML?

KML – это формат файлов, который используется для отображения географических данных в геобраузерах, таких как Google Планета Земля, Google Карты и Google Карты для мобильных устройств. С помощью KML-файлов можно добавлять на карту метки или наложенные изображения и отображать расширенные географические данные. KML является международным стандартом, поддерживаемым организацией Open Geospatial Consortium (OGC).

Для кого предназначен KML?

Сообщество KML весьма разнообразно. Чтобы в этом убедиться, достаточно посетить форум сообщества Google Планеты Земля. Обычные пользователи с помощью KML могут обозначать на карте свои дома, маршруты пеших или велосипедных путешествий. Ученым KML позволяет создавать подробные карты минеральных ресурсов, моделировать вулканические извержения, землетрясения, движение воздушных масс и другие природные явления. Риелторам, архитекторам и специалистам по градоустройству KML помогает представлять планы и строительные проекты. Учащиеся и преподаватели используют KML для проведения демографических исследований, а также наглядной демонстрации исторических и современных мест и событий. Такие организации, как National Geographic, ЮНЕСКО и Смитсоновский институт отображают с помощью KML специализированную информацию.

Как создать KML-файл?

KML-можно создать тремя способами, которые описаны ниже.

  • В интерфейсе Google Планеты Земля. Это самый удобный инструмент для создания KML-файлов, позволяющий добавлять следующие компоненты:
    • метки;
    • пути;
    • многоугольники;
    • накладываемые изображения;
    • сетевые ссылки;
    • модели;
    • папки с перечисленными выше объектами;
    • накладываемые фото.
  • Создайте один из перечисленных объектов, выберите его в панели "Метки" и нажмите "Копировать". Скопированное содержание затем можно вставить в текстовый редактор или редактор XML.

  • В текстовом редакторе. Создав объект в интерфейсе Google Планеты Земля, скопируйте его в текстовый редактор для дальнейшей работы.
  • В редакторе XML. KML – это язык разметки для описания географической информации, основанный на XML. Редакторы XML предлагают богатые возможности формирования XML-документов, включая такую полезную функцию, как дополнение закрывающих тегов.

Существует также множество инструментов, созданных участниками сообщества Google Планеты Земля. Посетите группу поддержки KML-разработчиков.

Как открыть KMZ-файл?

KMZ-файл – это архив, состоящий из одного или нескольких файлов, предназначенных для отображения в Google Планете Земля. Файлы сжимаются в формате ZIP и могут быть распакованы с помощью любого ZIP-архиватора, такого как WinZip, 7-Zip, инструмента Windows XP Compressed Folders Tool (в ОС Windows), Stuffit (в Mac OS) или команды zip (в Mac OS или Linux). Чтобы открыть файлы с помощью ZIP-архиватора, может потребоваться изменить расширение пакета с KMZ на ZIP. Не забудьте снова присвоить файлу расширение KMZ, прежде чем загружать его в геобраузер.

Как создать KML-файл с астрономическими данными?

В KML-файл можно включить астрономические данные для загрузки в Google Небо или Microsoft WorldWide Telescope. Подробные сведения приведены в статье Данные Google Неба в KML.

Какие теги KML поддерживает Google Планета Земля?

Google Планета Земля поддерживает абсолютно все теги, предусмотренные в KML. Их список можно найти в Спецификации KML.

Какие теги KML поддерживают Google Карты?

Google Карты поддерживают некоторые теги KML.

Где найти Руководство разработчика?

Руководство разработчика опубликовано по адресу https://developers.google.com/kml/documentation/topicsinkml.html.


Почему исчезают линии?

Если для компонента LineString задано значение высоты clampToGround, он всегда остается на земной поверхности. Если же задано значение relativeToGround, может потребоваться добавить дополнительные точки, поскольку слишком длинные прямые отрезки пересекаются с рельефом местности.

Приведем пример кода для компонента LineString: отрезки определенной им прямой линии будут скрыты под землей.

<kml xmlns="http://www.opengis.net/kml/2.2">
  <Placemark>
    <name>Untitled Path</name>
    <LineString>
      <tessellate>0</tessellate>
      <altitudeMode>absolute</altitudeMode>
      <coordinates>-115.415105,40.669016 -37.752364,34.879979</coordinates>
    </LineString>
  </Placemark>
</kml>

Если добавить дополнительные точки, под землю будет уходить меньше линий. Чтобы линия копировала рельеф местности, установите для поля <tessellate> значение 1.

<Placemark>
  <name>Untitled Path</name>
  <LineString>
    <tessellate>1</tessellate>
    <altitudeMode>relativeToGround</altitudeMode>
    <coordinates>
      -134.148103,37.752967 -128.917074,38.803008
      -125.166954,39.583592 -122.137625,39.656880
      -120.421783,40.036311 -118.298157,40.235316
      -114.348386,40.631532 -112.670431,40.761033
      -111.916045,40.681939 -110.177711,40.653055
      -109.544331,40.619327 -107.155697,40.642007
      -105.410526,40.421505 -103.192299,40.430138
      -102.853712,40.427904 -98.168302,40.363524
      -97.093391,40.308754 -94.831304,40.479175
      -93.760070,40.395392 -84.913828,39.466651
      -84.414888,39.387332 -81.380660,39.188551
      -80.276261,38.977744 -77.811560,38.872542
      -75.062267,38.521146 -72.006956,38.101733
      -66.67819,37.664687
    </coordinates>
  </LineString>
</Placemark>
Можно ли нарисовать круг в KML?

В KML не предусмотрена геометрия круга, однако с помощью ломаных линий (компонентов LineString) можно создать нечто подобное (см. пример).

Можно ли сделать ломаную линию пунктирной или добавить к ней стрелки?

Элемент <LineStyle> позволяет менять цвет, прозрачность и толщину линий, однако на данный момент KML не позволяет менять их тип.

Как скрыть ярлыки меток?

Ярлыки, отображаемые рядом с метками в Google Планете Земля, задаются с помощью тегов <name>. Если установить для элемента <LabelStyle> значение 0, ярлык будет скрыт.

<Style id="hideLabel">
  <LabelStyle>
    <scale>0</scale>
  </LabelStyle>
</Style>
Из-за чего возникает ошибка синтаксического анализа?

Ошибки синтаксического анализа обычно возникают по одной из двух причин.

  1. Неверный регистр. В KML, как и во всех языках на основе XML, различаются строчные и заглавные буквы. Таким образом, все элементы должны быть записаны с учетом регистра: <Placemark>, а не <PLACEMARK>; <href>, а не <Href>; <Link>, а не <lInk> и т. д.
  2. Незакрытые теги. Иногда авторы кода забывают закрывать теги или пропускают угловую скобку (< или >).

    Примеры:
    <name>Омск</name> – верно;
    <name>Омск – неверно;
    <nameОмск</name> – неверно;
    <nameОмск<name> – неверно.
Как проверить правильность созданного KML-файла?

KML – это язык разметки на основе XML. Проверить правильность XML-кода можно несколькими способами.

  • Функции валидации в редакторе XML, таком как Oxygen или Netbeans. Ознакомьтесь с документацией к выбранному редактору. Чтобы проверить код, потребуется схема KML.
  • Онлайн-валидатор, например FeedValidator.org, или KML Validator от Galdos, который укажет на ошибки и предложит варианты их исправления.
  • Функции валидации XML-кода в некоторых текстовых редакторах (например, jEdit предлагает такую возможность). Ознакомьтесь с учебником, разработанным в рамках Просветительской программы Google Планеты Земля.
Можно ли как-то контролировать, что отображается на экране, чтобы при приближении к земной поверхности показывалось больше деталей?

Для этих целей используются регионы (компоненты Region). Рекомендуем ознакомиться со следующими ресурсами:

Можно ли присвоить разным геометрическим объектам внутри компонента MultiGeometry разные цвета или стили?

MultiGeometry объединяет несколько геометрических объектов в единую метку (компонент Placemark). Благодаря этому к ним можно применять единый стиль и отображать их как единый объект, например в панели "Места" в Google Планете Земля.

Стили задаются на уровне компонента Placemark с помощью элемента styleUrl или Style. Таким образом, отдельные геометрические объекты внутри метки не могут иметь собственные стили.

Это правило можно обойти, создав отдельный компонент Placemark для каждого геометрического объекта и определив для него собственный стиль. Чтобы элементов не получилось слишком много, объедините их в компонент Folder, определите для него ListStyle и задайте для его элемента listItemType значение checkHideChildren. Все объединенные таким образом компоненты Placemark будут представлены как единый элемент в панели "Места" в Google Планете Земля, и отображать их по отдельности не потребуется.


Можно ли открывать всплывающее окно одновременно с KML-файлом?

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

Можно ли оставлять всплывающее окно открытым при обновлении сетевой ссылки?

В настоящее время KML не сохраняет состояние всплывающего окна при обновлении сетевой ссылки.

Можно ли просматривать KML-код, созданный пользователями моего домена?

В настоящее время по сетевым ссылкам нельзя отследить KML-код, создаваемый пользователями в Google Планете Земля или Google Картах. Тем не менее, можно использовать API Google Планеты Земля или API Google Карт в качестве инструмента создания KML-файлов и передавать информацию обратно на сервер (см. пример GeoDataStore).

Можно ли контролировать ползунок времени средствами KML?

Ползунок времени отображается, когда открывается KML-файл, содержащий элемент <TimeStamp> или <TimeSpan>. Геобразуер обнаруживает все выбранные элементы <TimeStamp> и <TimeSpan> и настраивает на ползунке соответствующие интервалы. В настоящее время в KML не предусмотрены другие способы управления ползунком времени, такие как возможность принудительной установки текущего времени или определенного периода. Подробные сведения о добавлении временных данных приведены в статье Время и анимация.

Как добавить в KML-файлы интерактивные функции? Можно ли использовать HTML-формы во всплывающих окнах с описаниями?

В настоящее время KML в Google Планете Земля поддерживает только функции HTML, служащие для представления содержания; интерактивные функции HTML не поддерживаются. В Google Картах KML позволяет программировать формы.

Однако KML в Google Планете Земля поддерживаются Flash-формы. Чтобы добавить такую форму, вставьте Flash-приложение в HTML-код, который отображается во всплывающем окне с описанием. В Google Картах этот способ не работает.


Можно ли автоматически преобразовать таблицу в KML-файл?

Да. Это можно сделать одним из указанных ниже способов.

  • Напишите собственную программу, которая будет анализировать CSV-файл и создавать на его основе KML-код. Вам может быть полезна эта статья.
  • Воспользуйтесь онлайн-редактором таблиц. В частности, в рамках Просветительской программы Google Планеты Земля было создано веб-приложение Spreadsheet Mapper, основанное на Google Таблицах.
  • Воспользуйтесь одним из инструментов преобразования таблиц Excel в KML-файлы, таким как [link to tek's thread].
  • Загрузите файлы в Google Планету Земля Плюс или PRO и сохраните их с расширением KML или KMZ.
Почему KML-файлы некорректно загружаются с веб-сервера?

Веб-серверу необходимо сообщать, какие файлы он предоставляет. Некоторые браузеры, например Firefox, делают предположения относительно типов файлов. Другие, например Internet Explorer, пользуются настройками типа MIME на веб-сервере.

Если у вас сервер Apache, в httpd.conf следует включить следующие две строки:

AddType application/vnd.google-earth.kml+xml .kml
AddType application/vnd.google-earth.kmz .kmz

Если у вас сервер Microsoft Internet Information Server, потребуется выполнить инструкции по ссылкам ниже.

IIS 6.0:

http://support.microsoft.com/kb/326965

IIS 4.0 и 5.0:

http://www.microsoft.com/technet/prodtechnol/windows2000serv/technologies/iis/maintain/featusability/mimeiis.mspx

Если у вас собственный веб-сервер, измените его конфигурацию самостоятельно или свяжитесь с поставщиком услуг хостинга и попросите внести соответствующие изменения.


Почему во всплывающем окне написано, что URL изображений могут быть отформатированы неверно?

Недавно в Google Планету Земля были внесены изменения, в результате которых ссылки во всплывающих окнах стали обрабатываться иначе. Изменения нацелены на оптимизацию работы всего механизма. В результате, если нажать в KMZ-файле на ссылку с неправильной структурой, откроется страница с надписью "Ссылка, по которой вы перешли на эту страницу, не работает из-за неверного форматирования. Чтобы воспользоваться предыдущей версией, нажмите на ссылку ниже". Если появляется это сообщение, необходимо изменить KML- или KMZ-код так, чтобы он был совместим с последующими версиями Google Планеты Земля.

Подробные сведения о требованиях к структуре KMZ-кода можно найти здесь.

На какое содержание влияют новые правила определения относительных путей?

В настоящее время эти правила влияют только на URL во всплывающих окнах (ссылки в тегах <description> и <text> в элементах <BallonStyle>). Однако в будущем в Google Планету Земля могут быть внесены дальнейшие изменения, направленные на повышение стабильности работы, поэтому уже сейчас не рекомендуется использовать родительский каталог в качестве базового URL, к которому привязываются ссылки в KMZ-архиве.


Отправляются ли KML-файлы из "Моих меток" в Google Планете Земля на серверы Google?

Нет. KML-файлы, созданные в интерфейсе Google Планеты Земля или загруженные пользователем, не отправляются в Google. Все данные хранятся и обрабатываются локально.

Наверх