1

我的 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>

当您单击图标时,它会打开显示“测试”的气球,然后一秒钟后,当刷新 kml 时,气球会关闭,我该如何解决这个问题?

4

1 回答 1

3

为了让气球打开,只需<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被加载到提到的 kml 中targetHref(通过 a 加载NetworkLink

于 2012-09-28T17:54:23.317 回答