谷歌地球kml刷新导致地标的描述气泡关闭

时间:2012-09-27 21:52:08

标签: kml google-earth

我的KML文件是:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.1">
    <Document>
      <NetworkLink>
        <Link>
          <href>http://localhost/test.php</href>
          <refreshMode>onInterval</refreshMode>
          <refreshInterval>1</refreshInterval>
        </Link>
      </NetworkLink>
    </Document>
</kml>

Localhost / test.php返回:

<Document>
  <Placemark>
    <name>Testing</name>
    <description>
      Test
    </description>
    <Point>
      <altitudeMode>absolute</altitudeMode>
      <coordinates>0,0,0</coordinates>
    </Point>
  </Placemark>
</Document>

当你点击图标时,会打开显示“test”的气球,然后在一秒钟后刷新kml,气球关闭,我该如何解决?

1 个答案:

答案 0 :(得分:2)

要打开气球,只需在地标

中添加<open>1</open>标记即可
<Document>
  <Placemark>
    <name>Testing</name>
    <open>1</open>
    <description>
      Test
    </description>
    <Point>
      <altitudeMode>absolute</altitudeMode>
      <coordinates>0,0,0</coordinates>
    </Point>
  </Placemark>
</Document>

但是,这意味着当链接刷新时,地标将始终打开(气球显示)。

如果你想刷新kml并根据它的当前状态打开或关闭气球,那么你需要查看UPDATE命令,并用它来仅更新当前加载的某些部分KML,而不是替换(重新加载)整个KML。

所以它真的归结为,你为什么要首先刷新KML?

编辑:回答评论中的问题

使用CHANGE

UPDATE功能
<Update> 
    <targetHref>http://www.domain.com/file.kml</targetHref> 
    <Change> 
      <Point targetId="point123"> 
        <coordinates>-95.48,40.43,0</coordinates>
      </Point> 
    </Change> 
  </Update> 

这会更改id point123 targetHref NetworkLink地标的坐标,该地标在kml中加载为{{1}}(通过{{1}}加载)