更新现有的NetworkLink

时间:2013-05-05 11:19:19

标签: kml google-earth

我有一个系统设置,其中在许多用户系统中安装了简单的NetworkLink。

然后我定期(每周左右)更新它链接到的kml / z文件,用户可以刷新以查看最新版本。

如果我自动刷新它本来会很好但是当我创建它时我并没有想太多。

有没有一种方法可以在已经分布的网络链接中安装更新过程,或者这个链接可以通过第二个网络链接工作,以便以“最新版本”模式获取大型kml文件。

让链接更加隐形也很好。

目前的链接是: kml具有通常的标题并包含这一个对象

<NetworkLink>
  <name>etc</name>
  <Snippet maxLines="0"/>
  <visibility>1</visibility><open>1</open>
  <refreshVisibility>0</refreshVisibility>
  <flyToView>1</flyToView>
  <Link>
    <href>http://dl.dropbox.com etc TrapLinesData.kmz</href>
  </Link>
</NetworkLink>

但我没有放任何刷新模式等。

对于这种引导需求的任何想法都将受到赞赏,因为试图向不太熟练的用户展示如何刷新正成为一个问题。

Bob J。'

1 个答案:

答案 0 :(得分:1)

通过在KML中使用NetworkLink,所有Google地球客户端都会加载每次启动时引用的最新KML。 Google地球不会存储NetworkLink的内容(仅限NetworkLink参考本身) - 每次启动时都会提取该内容。

如果您每周只更新一次目标KML,而不是每小时更新一次,那么您应该不会遇到客户端中当前存在的KML问题。唯一无法获得更新的客户是Google Earth客户端,这些客户端一次只能保持运行数周而不常见。

如果您想要强制刷新一周间隔,那么您可以将NetworkLink定义如下:

<NetworkLink>
  <Link>
    <href>...</href>
    <refreshMode>onInterval</refreshMode>
    <refreshInterval>604800</refreshInterval>
  </Link>
</NetworkLink>

如果您的KML仅适用于特定区域,那么您可能需要在NetworkLink中定义Region并将<viewRefreshMode>更改为 onRegion ,以便仅在该区域加载在视野中。如果区域不在视图中,则无需获取KML - KML最佳实践。你的KML看起来像这样:

<NetworkLink>
  <Region>
    ...
  </Region>
  <Link>
    <href>...</href>
    <refreshMode>onInterval</refreshMode>
    <refreshInterval>604800</refreshInterval>
    <viewRefreshMode>onRegion</viewRefreshMode>
  </Link>
</NetworkLink>