【问题标题】:Referencing local images in KML results in inconsistent behavior在 KML 中引用本地图像会导致行为不一致
【发布时间】:2019-10-23 16:56:10
【问题描述】:

我的目标是创建一个 KML,其中包含指向一组网络驱动器上带有 GPS 信息的照片的链接。使用 Python 生成文件并使用 pathlib.Path(...).as_uri() 创建路径。

例如,这将被创建:

    <Placemark>
      <name>IMG_0089</name>
      <description>
        <![CDATA[
        <img src="file:////share/folder%201/folder2/IMG_0089.JPG" width="600"/> 
        ]]>
      </description>
      <styleUrl>#simpleBalloon</styleUrl>
      <Point>
        <coordinates>-122.5,37.2</coordinates>
      </Point>
    </Placemark>

我有几个问题:

首先,pathlib 提供的 URI 以 file:// 开头,但 Google 地球似乎希望路径以 file://// 开头。 Chrome 会打开 file:// 就好了。

其次,并非所有图像都由 Google 地球显示。我可以在 KML 中获取路径并在 Chrome(或 Windows 资源管理器)中打开它并显示图像。最令人困惑的是,它只发生在某些图像上。创建 KML 时,路径由 Jinja2 引用。

基于此comment,看来这可能与应如何转义某些字符有关。至少有一些有问题的路径中有撇号。

【问题讨论】:

  • 如果您将 KML 文件放在“共享”驱动器中,则可以通过相对链接引用图像,并且不需要 file: 前缀。
  • 文件前缀不是问题,而是 Google 地球如何处理 URI。有些 URI 有效,有些则无效。
  • 发布图像未显示的问题路径示例。在路径名中包含特殊字符(空格、撇号等)可能会很棘手。您是否可以选择将文件夹名称重命名为不包含特殊字符?
  • 这里有两种情况:1) 网络驱动器上的 KML 引用,绝对 URL 为 file:// vs file:/// 等;和 2) 文件夹名称中的特殊字符(例如空格和撇号)。建议您先将 KML 放在与网络驱动器相同的级别;使文件夹具有简单的名称;使 KML 中的图像引用相对;然后验证所有图像都可以访问。之后可以处理特殊情况。
  • @JasonM1 我同意。不幸的是,这是一个由一群人组织的共享驱动器,所以我不想移动文件来解决这个问题。我正在考虑的解决方案是创建具有可由 Google 地球处理的简单路径的图像缩略图,然后提供可使用 Windows 资源管理器打开的指向全分辨率图像的链接。最令我惊讶的是,当 Chrome 没有问题时,Google 地球无法处理复杂的路径名。

标签: python kml google-earth


【解决方案1】:

这里有两个问题。

  1. 图像位于共享驱动器上,您的 KML 位于本地驱动器上,绝对 URL 使用 file://// 作为前缀。建议将 KML 放在与图像相同的驱动器和根路径上,并使用 KML 中图像的相对路径。默认情况下可能会禁用对本地文件的访问,因此如果需要,请导航至工具 > 选项 > 常规并选中“允许访问本地文件和个人数据”。

  2. 文件夹名称和/或文件名中有特殊字符(空格和撇号)。这需要转义 URL,有时无法按预期工作。

一般来说,路径和文件名中的特殊字符应该可以在 Google 地球专业版中使用,但特殊字符和/或带有外部驱动器绝对路径的 URL 的某些组合可能会出现问题,需要一些时间才能解决。

如果可能,最好通过以下方式保持简单:1) 将 KML 放置在与所引用图像相同的驱动器/位置,或将 KMZ 内的图像与 KML 捆绑在一起,并使用相对 URL 引用, 和 2) 清理文件夹和文件名,使其不包含特殊字符。

一旦 KML 按预期工作,您就可以尝试将 KML 文件和/或图像放在共享驱动器上,或者重命名文件和/或路径名以包含特殊字符。

【讨论】:

    猜你喜欢
    • 2014-03-06
    • 2015-07-13
    • 1970-01-01
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-14
    • 2011-01-03
    相关资源
    最近更新 更多