8

[编辑] 似乎问题来自谷歌地图,它需要一些时间来更新 KML 链接......我不确定,但最后,它可以工作......[/编辑]

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

这是公共地图的链接:https ://maps.google.fr/maps/ms?msa=0&msid=211027213468691902621.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);

任何帮助将不胜感激。

4

2 回答 2

21

Google 的服务器会将 KML 内容缓存一段时间。要强制更新呈现的 KML,请将缓存清除参数添加到 URL。如果我需要以编程方式进行操作,或者如果它只是一次编辑手册 ?a=0 并在我进行更改时增加它,我通常会使用日期/时间函数。

像这样(如果 URL 中没有任何其他查询参数):

 var URL = filename+"?dummy="+(new Date()).getTime();
于 2012-08-29T13:18:49.050 回答
1

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

var URL = '[您的 kml 网址]&ver=' + Date.now();

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

于 2016-11-10T10:24:59.107 回答