NetworkLink未更新

时间:2012-02-10 14:00:32

标签: google-maps kml

首先,我想问一下我对NetworkLinks所做的是否正确。首先,使用“kml生成器”,我能够从我的数据库生成我的kml并且运行良好。它保存为mykml.kml(我试图在谷歌地图中加载并工作)。我接下来做的是使用Dropbox.com公开保存此文件。接下来,使用NetworkLink,我将mykml.kml链接的URL从dropbox粘贴到networklink.kml文件中(如下所示)。然后,我在Google地图的“我的位置”中添加了这个networklink.kml,获得了链接等,并将其嵌入我的测试网站。我测试了我的网站,它运作良好。但是,出现了一个问题。当我更新mykml.kml文件并更新了Dropbox时,该网站没有响应更改。有没有我错过的东西?

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<NetworkLink>
<name>Red Cross</name>
<visibility>0</visibility>
<description>Sample Map</description>
<flyToView>1</flyToView>
<Url>
<href>http://dl.dropbox.com/u/31600404/mykml.kml</href>
<viewRefreshMode>onStop</viewRefreshMode>
<viewRefreshTime>7</viewRefreshTime>
</Url>
</NetworkLink>
</kml>

我希望你能帮助我!谢谢!

1 个答案:

答案 0 :(得分:1)

您的文件有一些内容,另外一个内容与您的文件有关:

首先,您应该使用<Link>而不是弃用的<Url> 其次,您正在使用链接的“viewRefresh”设置。这些设置指定在用户更改摄像机视图时是否以及如何刷新链接。在您的示例中,您正在使用:

  

在移动停止后n秒刷新文件,其中指定了n   在<viewRefreshTime>

您可能需要以下内容:

  

<refreshMode> {onInterval {1}}
  </refreshMode> 60 <refreshInterval>

另请查看其他选项,以检查其中一个更适合您的需求。 有关详细信息和所有选项,请参阅this link

不是坏消息。即使你修复了这个文件,互联网上也没有让人们在谷歌地图上使用它时无法正常工作(这绝对适用于谷歌地球),谷歌也不会非常期待谷歌地图的作品。我所知道的最佳答案就是这个:

  

通常支持过期和基于时间的刷新   Google地图不会更频繁地从互联网上重新获取内容   (大约一分钟到几分钟)。谷歌地图   忽略HTTP标头中的过期设置,但确实使用了   KML中指定的到期设置。在没有到期时   设置,或在时间有效期间内,Google地图可能会缓存   从互联网上获取的数据的持续时间不确定。重新获取   可以通过重命名文档来强制来自Internet的数据   在不同的URL下获取它,或通过确保文档   包含适当的到期设置。

来源:http://code.google.com/intl/nl-NL/apis/kml/documentation/kmlelementsinmaps.html#notes

“普遍接受”的解决方法是使用间隔从javascript进行刷新,并在地图网址中附加一个随机数,以避免获得缓存结果。