- Что такое KML?
- Для кого предназначен KML?
- Как создать KML-файл?
- Как открыть KMZ-файл?
- Как создать KML-файл с астрономическими данными?
- Какие теги KML поддерживает Google Планета Земля?
- Какие теги KML поддерживают Google Карты?
- Где найти Руководство разработчика?
- Почему исчезают линии?
- Можно ли нарисовать круг в KML?
- Можно ли сделать ломаную линию пунктирной или добавить к ней стрелки?
- Как скрыть ярлыки меток?
- Из-за чего возникает ошибка синтаксического анализа?
- Как проверить правильность созданного KML-файла?
- Можно ли как-то контролировать, что отображается на экране, чтобы при приближении к земной поверхности показывалось больше деталей?
- Можно ли присвоить разным геометрическим объектам внутри MultiGeometry разные цвета или стили?
- Можно ли открывать всплывающее окно одновременно с KML-файлом?
- Можно ли оставлять всплывающее окно открытым при обновлении сетевой ссылки?
- Можно ли просматривать KML-код, созданный пользователями моего домена?
- Можно ли контролировать ползунок времени средствами KML?
- Как добавить в KML-файлы интерактивные функции? Можно ли использовать HTML-формы во всплывающих окнах с описаниями?
- Можно ли автоматически преобразовать таблицу в KML-файл?
- Почему KML-файлы некорректно загружаются с веб-сервера?
- Как добавить веб-камеру в KML?
- Почему во всплывающем окне написано, что URL изображений могут быть отформатированы неверно?
- На какое содержание влияют новые правила определения относительных путей?
- Как исправить относительные пути в KMZ-файле?
- Отправляются ли KML-файлы из "Моих меток" в Google Планете Земля на серверы Google?
Начало работы
Геометрические объекты в KML
Расширенные функции KML
Веб-функции KML
Относительные пути в KMZ-файлах
Другие вопросы
- Что такое 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-файлов, позволяющий добавлять следующие компоненты:
- метки;
- пути;
- многоугольники;
- накладываемые изображения;
- сетевые ссылки;
- модели;
- папки с перечисленными выше объектами;
- накладываемые фото.
- В текстовом редакторе. Создав объект в интерфейсе Google Планеты Земля, скопируйте его в текстовый редактор для дальнейшей работы.
- В редакторе XML. KML – это язык разметки для описания географической информации, основанный на XML. Редакторы XML предлагают богатые возможности формирования XML-документов, включая такую полезную функцию, как дополнение закрывающих тегов.
Создайте один из перечисленных объектов, выберите его в панели "Метки" и нажмите "Копировать". Скопированное содержание затем можно вставить в текстовый редактор или редактор XML.
Существует также множество инструментов, созданных участниками сообщества Google Планеты Земля. Посетите группу поддержки KML-разработчиков.
- В интерфейсе 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>
- Из-за чего возникает ошибка синтаксического анализа?
-
Ошибки синтаксического анализа обычно возникают по одной из двух причин.
- Неверный регистр. В KML, как и во всех языках на основе XML, различаются строчные и заглавные буквы. Таким образом, все элементы должны быть записаны с учетом регистра: <Placemark>, а не <PLACEMARK>; <href>, а не <Href>; <Link>, а не <lInk> и т. д.
- Незакрытые теги. Иногда авторы кода забывают закрывать теги или пропускают угловую скобку (< или >). Примеры:
<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-файлы некорректно загружаются с веб-сервера?
- Почему во всплывающем окне написано, что URL изображений могут быть отформатированы неверно?
-
Недавно в Google Планету Земля были внесены изменения, в результате которых ссылки во всплывающих окнах стали обрабатываться иначе. Изменения нацелены на оптимизацию работы всего механизма. В результате, если нажать в KMZ-файле на ссылку с неправильной структурой, откроется страница с надписью "Ссылка, по которой вы перешли на эту страницу, не работает из-за неверного форматирования. Чтобы воспользоваться предыдущей версией, нажмите на ссылку ниже". Если появляется это сообщение, необходимо изменить KML- или KMZ-код так, чтобы он был совместим с последующими версиями Google Планеты Земля.
Подробные сведения о требованиях к структуре KMZ-кода можно найти здесь.
- На какое содержание влияют новые правила определения относительных путей?
В настоящее время эти правила влияют только на URL во всплывающих окнах (ссылки в тегах <description> и <text> в элементах <BallonStyle>). Однако в будущем в Google Планету Земля могут быть внесены дальнейшие изменения, направленные на повышение стабильности работы, поэтому уже сейчас не рекомендуется использовать родительский каталог в качестве базового URL, к которому привязываются ссылки в KMZ-архиве.
- Отправляются ли KML-файлы из "Моих меток" в Google Планете Земля на серверы Google?
-
Нет. KML-файлы, созданные в интерфейсе Google Планеты Земля или загруженные пользователем, не отправляются в Google. Все данные хранятся и обрабатываются локально.
Веб-серверу необходимо сообщать, какие файлы он предоставляет. Некоторые браузеры, например 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/326965IIS 4.0 и 5.0:
http://www.microsoft.com/technet/prodtechnol/windows2000serv/technologies/iis/maintain/featusability/mimeiis.mspxЕсли у вас собственный веб-сервер, измените его конфигурацию самостоятельно или свяжитесь с поставщиком услуг хостинга и попросите внести соответствующие изменения.