Расширение kml что это
Перейти к содержимому

Расширение kml что это

  • автор:

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

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

Начало работы

Геометрические объекты в KML

Расширенные функции KML

Веб-функции KML

Относительные пути в KMZ-файлах

Другие вопросы

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 Планеты Земля. Посетите группу поддержки 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.

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

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

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

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

      Untitled Path 0 absolute -115.415105,40.669016 -37.752364,34.879979   

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

     Untitled Path 1 relativeToGround -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  

    Можно ли нарисовать круг в KML?

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

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

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

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

    Из-за чего возникает ошибка синтаксического анализа?

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

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

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

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

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

    • Глава «Регионы» в Руководстве разработчика
    • Раздел «Регионы» в Справке по KML

    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-файл, содержащий элемент или . Геобразуер обнаруживает все выбранные элементы и и настраивает на ползунке соответствующие интервалы. В настоящее время в 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.

    Веб-серверу необходимо сообщать, какие файлы он предоставляет. Некоторые браузеры, например 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, потребуется выполнить инструкции по ссылкам ниже.

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

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

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

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

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

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

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

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

    Отправить отзыв

    Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons «С указанием авторства 4.0», а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.

    Последнее обновление: 2023-11-03 UTC.

    Руководство по 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 Планете Земля. Она служит для указания положения на земной поверхности и представлена значком булавки желтого цвета. В самом простом варианте метка содержит только элемент , который определяет ее положение. Вы также можете указать ее название и персонализированный значок или добавить другие элементы.

    Откройте файл KML_Samples в Google Планете Земля и перейдите в папку Placemarks. В ней представлены три типа меток: проcтая, плавающая и выдавленная. Ниже показан KML-код простой метки.



    Простая метка
    Привязана к земной поверхности. Приспосабливается к рельефу местности.

    -122.0822035425683,37.42228990140251,0

    Рассмотрим структуру этого файла.

    • Заголовок XML: с него начинается каждый KML-файл. Перед заголовком не должно быть никаких символов или пробелов.
    • Декларация пространства имен KML: вторая строка каждого файла формата KML 2.2.
    • Объект Placemark, содержащий следующие элементы:
      • name – имя, которое используется в качестве ярлыка метки;
      • description – описание, которое отображается во всплывающем окне, привязанном к метке;
      • Point – координаты, определяющие положение метки на земной поверхности (долгота и широта, иногда также высота).

      Если вы не можете найти эту метку на карте, подсказываем: она расположена прямо на 41-м корпусе Google – именно там разрабатывалась Google Планета Земля.

      То, что пользователи Google Планеты Земля видят как метку, является элементом с дочерним элементом в формате KML. Это единственный способ отобразить метку с ярлыком в окне 3D-просмотра. По умолчанию метка имеет вид уже знакомой вам желтой булавки. В KML-коде элемент может содержать один или несколько геометрических элементов, таких как ломаные линии (LineString), многоугольники (Polygon) или модели (Model), но только с дочерним элементом может отображаться как метка с ярлыком. Элемент служит для правильного размещения метки на карте, но сам не имеет графического представления.

      Описательный HTML в метках

      В файле KML_Samples приведены исчерпывающие примеры форматирования текста метки, включая добавление ссылок, изменение размера и стиля шрифта, выравнивание и использование таблиц. Чтобы просмотреть полный список возможностей, скопируйте и вставьте в текстовый редактор пример Descriptive HTML (в папке Styles and Markup).

      Авторазметка в Google Планете Земля 4.0 и более поздних версий

      В Google Планете Земля 4.0 предусмотрена функция авторазметки, которая преобразует текст наподобие www.google.com в активные гиперссылки. Текст, заключенный в теги или , а также в элемент внутри , автоматически преобразуется в стандартные HTTP-ссылки. Добавлять теги вручную не нужно.

      Использование элемента CDATA

      Чтобы добавить стандартный HTML-код в тег , его необходимо заключить в тег CDATA. Если этого не сделать, угловые скобки придется записывать в виде ссылок на объекты, иначе HTML-код будет неправильно анализироваться (например, символ > потребуется писать как >, а символ – как <). Это особенность языка XML в целом, а не только Google Планеты Земля.

      Обратите внимание на HTML-разметку с тегами CDATA и без них. Сначала рассмотрим элемент с тегами CDATA.


      Пример с тегами CDATA Теги CDATA имеют смысл!

      Без ссылок на объекты текст удобнее читать и проще писать.

      ]]>
      102.595626,14.996729

      Теперь посмотрим, как оформляется без тегов CDATA.


      Пример ссылок на объекты <h1>Ссылки на объекты так неудобно записывать!</h1> <p><font color="green">Без ссылок на объекты текст <i>удобнее читать</i> и <b>проще писать</b>.</font></p> 102.594411,14.998518

      Наложения на земную поверхность

      Наложения на земную поверхность позволяют «накрыть» рельеф местности определенным изображением. Элемент содержит ссылку на JPG-файл изображения. Ниже приведен пример из файла KML_Samples, показывающий извержение Этны в 2001 году.



      Наложения на земную поверхность
      Примеры наложений

      Крупное наложение
      Извержение Этны 13 июля 2001 года.

      http://developers.google.com/kml/documentation/images/etna.jpg


      37.91904192681665
      37.46543388598137
      15.35832653742206
      14.60128369746704
      -0.1556640799496235


      Обратите внимание на то, что первые две строки файла точно такие же, как в первом примере: XML-заголовок и декларация пространства имен KML.

      Для группировки и обозначения содержания в примере используется папка Ground Overlays. Обратите внимание на то, что она появляется в панели «Метки», как только вы загружаете файл KML_Samples в Google Планету Земля.

      Расположение наложения определяется с помощью тега , в котором указываются крайние значения южной и северной широты, а также восточной и западной долготы. Кроме того, если ось y изображения не направлена строго на север, задается значение поворота. В примере используется JPEG-изображение, но Google Планета Земля также поддерживает графические форматы BMP, GIF, TIFF, TGA и PNG.

      Пути

      В Google Планете Земля можно создавать пути разных типов, что позволяет подойти к отображению данных творчески. В KML-коде путь представлен элементом . Изучите пример Absolute Extruded в папке Paths: линия определена с помощью указанного ниже кода.



      Пути
      Примеры путей. Значение тега tessellate по умолчанию
      равно 0. Чтобы создать ломаную линию, значение необходимо
      изменить непосредственно в KML-коде.

      Линия вдоль земной поверхности
      Прозрачная зеленая стена с желтыми краями
      #yellowLineGreenPoly

      1
      1
      absolute
      -112.2550785337791,36.07954952145647,2357
      -112.2549277039738,36.08117083492122,2357
      -112.2552505069063,36.08260761307279,2357
      -112.2564540158376,36.08395660588506,2357
      -112.2580238976449,36.08511401044813,2357
      -112.2595218489022,36.08584355239394,2357
      -112.2608216347552,36.08612634548589,2357
      -112.262073428656,36.08626019085147,2357
      -112.2633204928495,36.08621519860091,2357
      -112.2644963846444,36.08627897945274,2357
      -112.2656969554589,36.08649599090644,2357


      Обратите внимание на то, что это одна и та же линия, отображаемая на определенной высоте над землей. Благодаря тегу линия разбивается на короткие отрезки, а тег отвечает за ее выравнивание относительно земной поверхности.

      Многоугольники

      С помощью многоугольников можно моделировать здания и другие объекты. Примеры можно найти в папке Polygons файла KML_Samples.

      Модель здания Пентагона построена так: внутренний и внешний контуры «вытянуты» вниз к земной поверхности. Ниже показан код.



      Пентагон

      1
      relativeToGround



      -77.05788457660967,38.87253259892824,100
      -77.05465973756702,38.87291016281703,100
      -77.05315536854791,38.87053267794386,100
      -77.05552622493516,38.868757801256,100
      -77.05844056290393,38.86996206506943,100
      -77.05788457660967,38.87253259892824,100






      -77.05668055019126,38.87154239798456,100
      -77.05542625960818,38.87167890344077,100
      -77.05485125901024,38.87076535397792,100
      -77.05577677433152,38.87008686581446,100
      -77.05691162017543,38.87054446963351,100
      -77.05668055019126,38.87154239798456,100




      Расширенные KML-документы

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

      Стили геометрии

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

      Если определить элемент в начале KML-документа и присвоить ему идентификатор, этот стиль можно будет применять к геометрическим элементам, меткам и наложениям, определенным в других разделах документа. Так как один и тот же стиль можно применять к нескольким элементам, используется термин общие стили. Достаточно один раз определить , чтобы затем ссылаться на него с помощью элемента . Если элемент определен в том же файле, перед его идентификатором необходимо добавить знак решетки (#). Если же он определен в другом файле, в элементе необходимо указать полный URL.

      В файле KML_Samples представлено несколько общих стилей, которые определены в начале файла и обозначены идентификаторами. Рекомендуем использовать описательные идентификаторы – так вам будет проще отличать стили друг от друга. Ниже показан пример стиля transBluePoly, который определяет для многоугольников прозрачную голубую заливку и белые границы толщиной 1,5 (белый цвет задан по умолчанию). Этот стиль использован в модели 41-го корпуса Google (в папке Polygons).





      1.5


      7dff0000


      Корпус 41
      #transBluePoly

      1
      relativeToGround


      -122.0857412771483,37.42227033155257,17
      -122.0858169768481,37.42231408832346,17
      -122.085852582875,37.42230337469744,17
      -122.0858799945639,37.42225686138789,17
      -122.0858860101409,37.4222311076138,17
      -122.0858069157288,37.42220250173855,17
      -122.0858379542653,37.42214027058678,17
      -122.0856732640519,37.42208690214408,17
      -122.0856022926407,37.42214885429042,17
      -122.0855902778436,37.422128290487,17
      -122.0855841672237,37.42208171967246,17
      -122.0854852065741,37.42210455874995,17
      -122.0855067264352,37.42214267949824,17
      -122.0854430712915,37.42212783846172,17
      -122.0850990714904,37.42251282407603,17
      -122.0856769818632,37.42281815323651,17
      -122.0860162273783,37.42244918858722,17
      -122.0857260327004,37.42229239604253,17
      -122.0857412771483,37.42227033155257,17






      Обратите внимание на то, что является дочерним элементом элемента , а не геометрического элемента, к которому он применяется.

      Стили выделенных значков

      Пример Highlighted Icon в папке Styles and Markup демонстрирует, как задать эффект выделения в KML. В документе необходимо определить два стиля: normalPlacemark (для метки в обычном состоянии) и highlightPlacemark (для выделения метки, на которую наведен указатель мыши). В элементе содержатся две пары «ключ-значение», определяющие стиль значка в зависимости от его состояния. Состояния может быть два: обычное и выделенное (при наведении мыши).

      Чтобы определить стиль значка при наведении мыши, выполните указанные ниже действия.

      1. Создайте элемент для значка метки в обычном состоянии и присвойте ему идентификатор (в примере это normalPlacemark). содержит элемент со ссылкой , указывающей на используемое изображение, как показано ниже.
      2. Создайте элемент для значка метки в выделенном состоянии и присвойте ему идентификатор (в примере это highlightPlacemark).
      3. Создайте элемент и присвойте ему идентификатор (в примере это exampleStyleMap), на который будет ссылаться компонент Placemark.
      4. Определите внутри элемента ссылку на стиль #normalPlacemark для метки в обычном состоянии (normal).
      5. Определите внутри элемента ссылку на стиль #highlightPlacemark для выделенной метки (highlight).
      6. Добавьте к компоненту Placemark элемент , ссылающийся на «#exampleStyleMap.



      Выделенный значок
      Наведите указатель мыши на значок, чтобы увидеть, как он выглядит в выделенном состоянии



      normal
      #normalPlacemark


      highlight
      #highlightPlacemark



      Наведите указатель мыши на значок
      #exampleStyleMap

      -122.0856545755255,37.42243077405461,0



      Наложения на экране

      В отличие от наложений на земную поверхность, наложения на экране нельзя создавать в интерфейсе Google Планеты Земля. Примеры можно найти в папке Screen Overlays файла KML_Samples.

      В качестве иллюстрации включите папку Absolute Positioning: Top left файла KML_Samples. В левом верхнем углу окна просмотра появится наложение. Ниже показан его KML-код.




      Absolute Positioning: Top left

      http://developers.google.com/kml/documentation/images/top_left.jpg






      Размещение наложения определяется следующим образом: точка изображения, заданная элементом , привязывается к точке на экране, заданной элементом . В данном случае левый верхний угол изображения (0,1) выравнивается по левому верхнему углу экрана.

      Просмотрите другие примеры в папке, чтобы лучше понять принцип определения фиксированных изображений и изображений, размер которых меняется в зависимости от размера экрана. Обратите внимание на то, что для большей точности вместо xunits и yunits можно использовать пиксели. Подробные сведения приведены в Справке по KML 2.2.

      Сетевые ссылки

      Сетевая ссылка состоит из элемента с гипертекстовой ссылкой , указывающей на загружаемый файл. Элемент может содержать локальную ссылку или абсолютный URL. Таким образом, может служить не только для загрузки файлов из сети.

      Элемент может указывать на расположение любого из следующих файлов:

      • файла изображения, который используется в стилях значков, наложениях на земную поверхность или наложениях на экране;
      • файла модели, которая используется в элементе ;
      • KML- или KMZ-файла, загружаемого с помощью сетевой ссылки.

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

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

      CGI-скрипты для KML

      Элемент сетевой ссылки может не только указывать на файлы со статическими данными, но и на динамическое содержание, генерируемое, например, CGI-скриптом на сетевом сервере. При наличии базовых навыков программирования программирования на языках PHP, Python или Perl вы сможете написать скрипт для передачи потоковых данных (или файлов) в формате KML по сетевым ссылкам.

      Чтобы передавать KML-код с помощью сетевого CGI-скрипта, должны выполняться два условия.

      Когда клиент (Google Планета Земля) отправляет запрос на сервер, сервер должен, во-первых, возвратить код ответа HTTP 200, а во-вторых, предоставить содержание типа text/plain или application/vnd.google-earth.kml+xml.

      Ответ должен содержать действительный KML-код. Чем сложнее приложение, тем важнее предусмотреть правильную обработку ошибок.

      Совет. Самый простой способ обработки ошибок – включение сообщения об ошибке в название папки. Предположим, сервер возвратил строку database inaccessible . Такой ответ более информативен и полезен для пользователя (теперь он знает, что база данных недоступна), чем разрыв соединения.

      В примерах ниже используется Python, однако то же самое можно написать на любом другом языке.

      Создание случайной метки

      Ниже показан скрипт на языке Python, генерирующий случайные значения широты (latitude) и долготы (longitude) и добавляющий их в элемент элемента . При обновлении сетевой ссылки скрипт запускается снова и генерирует KML-код с новыми значениями широты и долготы.

      #!/usr/bin/python import random latitude = random.randrange(-90, 90) longitude = random.randrange(-180, 180) kml = ( '\n' '\n' '\n' 'Random Placemark\n' '\n' '%d,%d\n' '\n' '\n' '' ) %(longitude, latitude) print 'Content-Type: application/vnd.google-earth.kml+xml\n' print kml

      Теперь рассмотрим пример KML-файла с сетевой ссылкой, по которой загружается скрипт Python.




      Сетевые ссылки
      0
      0
      Пример сетевой ссылки 1

      Случайная метка
      0
      0
      Простой скрипт на стороне сервера, генерирующий новую
      случайную метку по каждому запросу

      0
      0

      http://yourserver.com/cgi-bin/randomPlacemark.py



      Запросы на обновление при просмотре

      Стандартная сетевая ссылка работает только в одном направлении: данные поступают с севера в Google Планету Земля. Обновление при просмотре позволяет передавать данные в обоих направлениях, причем Google Планета Земля в определенный момент времени возвращает серверу координаты области просмотра. Это может происходить каждые n секунд, минут или часов либо по истечении определенного времени после того, как область просмотра перестала смещаться. Подробные сведения приведены в разделе Справки по KML 2.2.

      Координаты возвращаются серверу с помощью метода HTTP GET, который добавляет их в следующем виде (показана информация в заданном квадрате поиска):

      GET /path/to/sever/script/query?BBOX=[западная_долгота, южная_широта, восточная_долгота, северная_широта] HTTP/1.1

      Если запрос выполняется в тот момент, когда пользователь рассматривает область Сан-Франциско, координаты могут выглядеть так:

      GET /path/to/server/script/query?BBOX=-122.497790,37.730385,-122.380087,37.812331 HTTP/1.1

      Эту функцию можно использовать для самых разных целей, однако для начала рассмотрим простой пример.

      Определение точки в центре области просмотра

      Ниже показан выполняемый на стороне сервера скрипт Python, который анализирует сообщение, возвращаемое Google Планетой Земля, и в ответ размещает метку в центре экрана. Новая метка генерируется при каждом обновлении сетевой ссылки.

      #!/usr/bin/python import cgi url = cgi.FieldStorage() bbox = url['BBOX'].value bbox = bbox.split(',') west = float(bbox[0]) south = float(bbox[1]) east = float(bbox[2]) north = float(bbox[3]) center_lng = ((east - west) / 2) + west center_lat = ((north - south) / 2) + south kml = ( '\n' '\n' '\n' 'Метка в центре области просмотра\n' '\n' '%.6f,%.6f\n' '\n' '\n' '' ) %(center_lng, center_lat) print 'Content-Type: application/vnd.google-earth.kml+xml\n' print kml

      А так выглядит KML-код сетевой ссылки, которая загружает показанный выше скрипт:




      Сетевые ссылки
      0
      0
      Пример сетевой ссылки 2

      Метка в центре области просмотра
      0
      0
      Обновление по виду позволяет удаленному серверу определить
      точку в центре экрана и возвратить метку.

      0
      0

      http://yourserver.com/cgi-bin/viewCenteredPlacemark.py
      2
      onStop
      1



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

      Типы MIME в KML

      Когда KML-сервер отвечает на запрос Google Планеты Земля (или любого другого геобраузера), должен быть соблюден ряд правил, иначе геобраузер не сможет правильно интерпретировать ответ.

      В случае успеха сервер должен возвратить код ответа HTTP 200 и указать для содержания ответа подходящий тип MIME, как описано ниже.

      Google Планета Земля поддерживает файлы в форматах KML и KMZ. Для KML-файлов необходимо указать следующий тип MIME:

      • application/vnd.google-earth.kml+xml

      Для KMZ-файлов необходимо указать следующий тип MIME:

      Если используется сервер Apache, добавьте в файл httpd.conf следующие строки:

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

      Инструкции по настройке типов MIME в службе Microsoft IIS можно найти в документации Microsoft.

      Тело ответа должно содержать действительный KML-код, включая декларацию XML ( ). Если сервер возвратит недействительный KML-код, передача данных по сетевой ссылке будет прекращена, ссылка будет деактивирована, и будет показано сообщение об ошибке.

      Дополнительные ресурсы

      Подробные сведения об основных компонентах KML можно найти в Руководстве разработчика, а информацию об отдельных элементах – в Справке по KML.

      Отправить отзыв

      Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons «С указанием авторства 4.0», а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.

      Последнее обновление: 2023-11-03 UTC.

      Расширение kml что это

      KML is a file format used to display geographic data.

      Send feedback Stay organized with collections Save and categorize content based on your preferences.

      What is KML?

      KML is a file format used to display geographic data in an Earth browser such as Google Earth. You can create KML files to pinpoint locations, add image overlays, and expose rich data in new ways. KML is an international standard maintained by the Open Geospatial Consortium, Inc. (OGC).

      Who uses KML

      Casual users

      You can use KML to plan trips, share location data with friends, or record hikes you’ve been on.

      Scientists

      Scientific data, such as natural resource maps, or geographic trends, are easily shared as a KML file.

      Часто задаваемые вопросы о 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 Планеты Земля. Посетите группу поддержки 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.

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

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

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

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

          Untitled Path 0 absolute -115.415105,40.669016 -37.752364,34.879979   

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

         Untitled Path 1 relativeToGround -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  

        Можно ли нарисовать круг в KML?

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

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

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

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

        Из-за чего возникает ошибка синтаксического анализа?

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

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

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

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

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

        • Глава «Регионы» в Руководстве разработчика
        • Раздел «Регионы» в Справке по KML

        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-файл, содержащий элемент или . Геобразуер обнаруживает все выбранные элементы и и настраивает на ползунке соответствующие интервалы. В настоящее время в 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.

        Веб-серверу необходимо сообщать, какие файлы он предоставляет. Некоторые браузеры, например 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, потребуется выполнить инструкции по ссылкам ниже.

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

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

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

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

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

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

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

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

        Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons «С указанием авторства 4.0», а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.

        Последнее обновление: 2023-11-03 UTC.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *