首先,我想问一下我对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>
我希望你能帮助我!谢谢!
答案 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进行刷新,并在地图网址中附加一个随机数,以避免获得缓存结果。