Kml层没有'重新加载页面时不会更新

Kml layers doesn't update when reloading the page

本文关键字:加载 更新 新加载 Kml      更新时间:2023-09-26

[EDIT]问题似乎来自谷歌地图,它需要一些时间来更新KML链接。。。我不确定,但最终,它起作用了。。。[/EDIT]

我在这个网站上嵌入了一个现有的公共谷歌地图:http://www.ridetheflavour.fr

这是公共地图的链接:https://maps.google.fr/maps/ms?msa=0&msid=2110272134686919026201.0004c8616605648d245b2

正如你所看到的,网站嵌入地图的标记与公共谷歌地图标记不匹配。这似乎不是浏览器缓存的问题。。。

下面是我正在使用的javascript代码片段(谷歌地图API V3):

var mapOptions = {
          center: new google.maps.LatLng(24.797409,-5.449219),
          zoom: 3,
          mapTypeId: google.maps.MapTypeId.TERRAIN,
          overviewMapControl: false,
          streetViewControl: false
        };
var map = new google.maps.Map(document.getElementById("map_canvas"),
            mapOptions);
var georssLayer = new google.maps.KmlLayer('https://maps.google.fr/maps/ms?ie=UTF8&authuser=0&msa=0&output=kml&msid=211027213468691902621.0004c8616605648d245b2');
georssLayer.setMap(map);

如有任何帮助,我们将不胜感激。

谷歌的服务器缓存KML内容一段时间。若要强制更新渲染的KML,请在URL中添加缓存破坏参数。若我需要以编程的方式进行,或者它只是一次编辑手册,我通常会使用日期/时间函数?a=0,并且在我进行更改时将其递增是有效的。

类似这样的东西(如果你在URL中没有任何其他查询参数):

 var URL = filename+"?dummy="+(new Date()).getTime();

或者您可以进一步简化它并使用:

var URL='[您的kml URL在这里]&ver='+Date.now();

var georssLayer=新的google.maps.KmlLayer(URL);