【问题标题】:Nested KMZ Files Not Displaying Images嵌套的 KMZ 文件不显示图像
【发布时间】:2014-07-25 23:00:11
【问题描述】:

我有多个使用 geoTiffs 作为输入的 gdal_translate 创建的 KMZ 文件。各个 KMZ 文件都在 Google 地球中打开并正确显示,但我想将 KMZ 文件分组到另一个 KMZ 文件中以便更好地组织。我在“Nesting KMZ file”线程中尝试了 JasonM1 的建议,但图像没有显示。 Google 地球读取父 KMZ 文件并飞到正确的位置,但不显示覆盖。如何加载图像?顶层 doc.kml 文件如下所示。谢谢!

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
    <Document>
      <NetworkLink>
         <open>1</open>
         <refreshVisibility>1</refreshVisibility>
         <flyToView>1</flyToView>
         <Link>
            <href>out_1.kmz</href>
         </Link>
      </NetworkLink>
      <NetworkLink>
         <Link>
            <href>out_2.kmz</href>
         </Link>
      </NetworkLink>
      <NetworkLink>
         <Link>
            <href>out_3.kmz</href>
         </Link>
      </NetworkLink>
   </Document>
</kml>

【问题讨论】:

  • 我猜Nesting KMZ files 是您引用的问题吗? Stack Overflow 目前有 770 万个问题,因此,如果您要引用特定问题,如果您实际提供链接会很有帮助。 (我看到@JasonM1 已编辑)
  • 引用缺失叠加层的 KML 的 sn-p 是什么?什么是原始 KML 参考?Google 地球认为 URL 是什么?

标签: kml google-earth kmz


【解决方案1】:

KMZ 文件中的图像被引用为相对于根 KML 文档的相对 URL。

假设 out_1.kmz 文件有一个名为 doc.kml 的根 kml 文件,其中引用了叠加图像:

<kml xmlns="http://www.opengis.net/kml/2.2">
    <GroundOverlay>
        <Icon>
          <href>overlay.jpg</href>
        </Icon>
    </GroundOverlay>
</kml>

但是,如果根 KML 访问子文件夹中的另一个 KML 文件,则目标 KML 文档中的引用将相对于目标 KML 文档位置(即相对于子文件夹)。

如果您从 KML 或 KMZ 文件中引用目标 KMZ 文件,则指向 KMZ 中图像的相对链接将保持不变。

如果您尝试重构一个或多个 KMZ 文件的内容,则引用图像的相对 URL 必须与新结构一致。

【讨论】:

  • 这有助于我的理解。但是所有引用都是相对于顶层的吗?
  • 引用相对于特定的 KML 文档。对于根 KM 文档,所有与顶层相关的引用。子文件夹中的 KML 文档将具有相对于它的引用,依此类推。
  • 对不起第一次使用。 @Jason,这有助于我的理解。但是所有引用都是相对于顶层的吗? KMZ 文件是包含多个文件夹以及数百个 kml 和 png 文件的超级覆盖文件。但最低级别的 kml(“0.kml”)似乎假设要显示的 png 文件与“0.kml”文件位于同一文件夹中。它使用 0.png 我会添加代码,但 cmets 中有字符限制。
  • 如果所有 KML 文件都在根级别,那么所有 refs 都相对于顶级。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多