【问题标题】:How do I link to internal files in a KMZ file?如何链接到 KMZ 文件中的内部文件?
【发布时间】:2009-05-06 03:24:12
【问题描述】:

我正在尝试设置一个KMZ 文件以在 Google 地球中使用,其中气球内容主要在 HTML 文件中定义,这些文件使用 iframe 嵌入。当在本地文件系统上使用相对链接时,该设置适用于纯 KML 文件和额外的 HTML 文件(假设文件系统访问已启用)。

我的问题是我无法找到一种方法来创建包含所有文件的 KMZ 文件以相互链接的方式。 KML 规范根本没有谈论这个问题(事实上 KMZ 在整个文档中只出现了几次)。我也找不到关于 KMZ 的任何其他文档。

是否可以链接到 KMZ 中的其他 HTML 文件?如果是:如何?

【问题讨论】:

  • 我看不出是什么导致相对路径不起作用。您是否尝试过简单地将工作的 kml 目录压缩到 kmz 文件中?
  • 是的,有根文件夹和没有根文件夹——所有的 iframe 都是空的
  • 尝试取消选中 Kmz 内任何文件中的任何“只读”标志。
  • 我的回答可能会有所帮助,尤其是在使用 JAK 时:[stackoverflow.com/questions/7265808/… [1]:stackoverflow.com/questions/7265808/…

标签: gis kml google-earth kmz


【解决方案1】:

是的,Kml 规范允许这样做,您只需使用相对路径。

但是,您的问题实际上与特定应用程序中对某些类型内容的安全限制有关。

例如,完整的 Google 地球客户端允许您将 Flash (swf) 内容加载到气球中,而 Goggle 地球插件则不能。 iFramed 内容等也是如此。

所以问题的答案完全取决于您在哪个应用程序中查看 Kml/kmz,与 Kml 或 Kmz 规范无关。

【讨论】:

    【解决方案2】:

    了解OGC KML Standard 以及该标准的规范如何在 Google 地球软件中得到解释和实施。特别是在 Google 地球实施的规范中有一些灰色区域没有明确定义。管理 KMZ 文件和嵌入内容的规则没有很好地定义,并且显然是特定于实现的。一些细节在Google KML Reference 文档中定义,而另一些则没有。 KML 和 Google 地球的一些不一致和未记录的功能可以在KML Errata 中找到。

    对于哪些媒体内容(嵌入在 KMZ 文件中)可以在说明气球中内嵌显示以及可以链接和访问哪些内容都有限制。

    以下是对KMZ Tutorial 中列出的<iframe> 内容的一些限制

    <iframe> 元素中的 <src> 元素不能指向本地 磁盘上的文件,也不能指向 KMZ 文件中的文件;它必须 指向浏览器可以访问的 Internet 上的 URL。

    作为此规则的一个例外,您实际上可以在 KMZ 文件中包含一个 HTML 文件,并将其作为 <src> 元素包含在带有相对 URL 的功能描述中的 <iframe> 中,但不支持许多其他媒体类型.

    如果您在工具/选项/常规菜单面板中启用“允许访问本地文件和个人数据”选项,那么这会放宽一些访问规则并能够访问一些内容链接(例如HTML、PDF 等),就像在 Web 浏览器中一样,但主要是 KMZ 文件外部的本地文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-30
      • 1970-01-01
      • 1970-01-01
      • 2021-09-12
      • 1970-01-01
      • 2011-09-10
      相关资源
      最近更新 更多