Kml layers doesn't update when reloading the page

社会主义新天地 提交于 2020-01-11 08:23:34

问题


[EDIT] it seems the problem comes from google maps which takes some time to update the KML link...I'm not sure, but in the end, it works...[/EDIT]

I embedded an existing public google map on this website : http://www.ridetheflavour.fr

Here is the link of the public map : https://maps.google.fr/maps/ms?msa=0&msid=211027213468691902621.0004c8616605648d245b2

As you can see, the markers of the website's embedded map don't match the public google map markers. It seems it's not a matter of browser cache...

Here is the javascript snippet i'm using (Google map 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);

Any help would be greatly appreciated.


回答1:


Google's servers cache the KML content for some period of time. To force the rendered KML to update, add a cache busting parameter to the URL. I usually use a function of the date/time if I need to do it programmatically, or if it is just a one time edit a manual ?a=0 and incrementing that as I make changes works.

Something like this (if you don't have any other query parameters in the URL):

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



回答2:


Or you can simplify it even further and use:

var URL = '[your kml url here]&ver=' + Date.now();

var georssLayer = new google.maps.KmlLayer(URL);



来源:https://stackoverflow.com/questions/12175387/kml-layers-doesnt-update-when-reloading-the-page

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!