Google地球中的网络链接未解析.Kml文件以进行数据更新?

时间:2014-12-14 02:32:07

标签: python google-earth

问题:

  • 为什么谷歌地球不使用网络链接加载.kml文件?

目标:

  • 定期从硬盘驱动器(模拟数据)中不断更新的.kml文件中加载位置数据,这个kml文件是从python脚本生成的(供Google Earth使用)

环境:

  • Windows 7。两个文件(python文件和.kml文件都在硬盘上)。我没有使用任何远程信息

做了什么:

KML文件:

 The KML file:
    <?xml version="1.0" encoding="UTF-8"?>
    <kml xmlns="http://www.opengis.net/kml/2.2">
      <Folder>
        <name>Network Links</name>
        <visibility>0</visibility>
        <open>0</open>
        <description>Network link for FPG </description>
        <NetworkLink>
          <name> NTFPG </name>
          <visibility>0</visibility>
          <open>0</open>
          <description>  The flight path generator </description>
          <refreshVisibility>0</refreshVisibility>
          <flyToView>0</flyToView>
          <Url>
            <href>viewCenteredPlacemark.py</href>

          </Url>
        </NetworkLink>
      </Folder>
    </kml>

python文件:

#!/usr/bin/python

kml = ( 
   '<?xml version="1.0" encoding="UTF-8"?>\n'
   '<kml xmlns="http://www.opengis.net/kml/2.2">\n'
   '<Placemark>\n'
   '<name>Flight Path Generator</name>\n'
   '<Point>\n'
   '<coordinates>%.6f,%.6f</coordinates>\n'
   '</Point>\n'
   '</Placemark>\n'
   '</kml>'
   ) %(-77.864,38.4556)

print 'Content-Type: application/vnd.google-earth.kml+xml\n'
print kml

我想显示相同的位置并看到网络链接上的绿点,但它是红色的,所以显然没有解析,无论是由于KML文件的格式还是其他原因。我错过了什么?

1 个答案:

答案 0 :(得分:1)

如果要执行将生成KML的脚本,则脚本必须由Web服务器(例如Apache)托管。

如果您在没有任何Web服务器的情况下从文件系统本地访问python脚本,那么Google地球将尝试将 viewCenteredPlacemark.py 文件作为KML文本文件提取,而不是作为python脚本执行。这不会被解析为KML,也不会显示任何内容。如果在Google地球中启用错误处理,您将看到解析错误。

只需要一个可以调用python脚本的轻量级Web服务器,例如Apache httpd。 有许多教程可以配置Web服务器来运行python脚本。

示例: