我有一些动态生成的 KML 文件,我想在 Google 地图上显示这些文件。这很容易,我以前做过几次,没问题。
我想要的是 KML 文件仅由 Google 缓存以获取请求。也就是说,如果有人访问嵌入了 Google 地图的页面,该页面已加载并显示了我的 KML,我希望该 KML 文件用于该页面加载。但是,如果用户要刷新页面(具有相同的 Google 地图 URL),我希望重新获取 KML 文件。
简单的“仅添加时间戳参数”不起作用,因为我不会控制页面上传递给 Google 地图的 url(只是大部分 url)。
查看<Link>
and<networkLink>
标签,它们似乎可以让您控制外部资源的过期、缓存、刷新等。阅读文档,似乎使用<refreshMode>onChange<refreshMode>
两层方法可以得到我想要的。
对此进行测试后,Google 实际上并没有刷新链接的 KML 文件的内容,即使在 10-20 分钟和多个地图重新加载后(当我向地图搜索框提供相同的 url 时)。
这些是我正在使用的 KML 文件:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<NetworkLink>
<Link>
<href>URL</href>
<refreshMode>onChange</refreshMode>
</Link>
</NetworkLink>
</Document>
</kml>
...
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<Placemark>
<name>NAME</name>
<visibility>1</visibility>
<Style>
STYLE
</Style>
GEOMETRY
</Placemark>
</Document>
</kml>
... 用正确的内容替换 URL、NAME、STYLE 和 GEOMETRY。有谁知道我可能做错了什么?或者如果我想要的是可能的?