Как связать внутренние файлы в файле KMZ? - PullRequest
3 голосов
/ 06 мая 2009

Я пытаюсь настроить файл KMZ для использования в Google Планета Земля, где содержимое всплывающей подсказки в основном определяется в файлах HTML, которые внедряются с использованием iframes. Программа установки работает с простым файлом KML и дополнительными файлами HTML при использовании относительных ссылок в локальной файловой системе (при условии, что доступ к файловой системе разрешен).

Моя проблема в том, что я не могу найти способ создать KMZ-файл, содержащий все файлы взаимосвязанным способом. Спецификация KML вообще не говорит об этой проблеме (на самом деле KMZ появляется всего несколько раз во всем документе). На КМЗ я также не смог найти никакой другой документации.

Можно ли ссылаться на другие файлы HTML в KMZ? Если да: как?

Ответы [ 2 ]

1 голос
/ 16 марта 2013

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

Существуют ограничения как в отношении того, какой медиа-контент (встроенный в файл KMZ) может отображаться в виде всплывающей подсказки в описании, так и в отношении того, на какой контент можно ссылаться и получать к нему доступ.

Вот некоторые ограничения для <iframe> контента, указанного в KMZ Tutorial

Элемент <src> в элементе <iframe> не может указывать на локальный файл на диске, и он не может указывать на файл внутри файла KMZ; это должно укажите URL-адрес в Интернете, который может посетить браузер.

В качестве исключения из этого правила вы можете фактически иметь HTML-файл в файле KMZ и включать его в качестве элемента <src> в <iframe> в описании функции с относительным URL, но поддерживаются не многие другие типы мультимедиа .

Если вы включите опцию « Разрешить доступ к локальным файлам и личным данным » в панели инструментов «Инструменты / Опции / Общее», тогда это ослабит некоторые правила доступа и сможет получить доступ к некоторым ссылкам на контент (например, HTML). , PDF и т. Д.) Как в веб-браузере, но в основном это локальные файлы, внешние по отношению к файлу KMZ.

1 голос
/ 28 августа 2009

Да, спецификация Kml позволяет это делать, вы просто используете относительные пути.

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

Например, полный клиент Google Планета Земля позволяет загружать содержимое Flash (swf) в воздушные шары, в то время как плагин Goggle Earth - нет. То же самое касается контента iFramed и т. Д.

Таким образом, ответ на вопрос будет полностью зависеть от того, в каком приложении вы просматриваете Kml / kmz, и не имеет отношения к спецификации Kml или Kmz.

...