2012-08-29 12 views
7

[EDITAR] parece que el problema proviene de los mapas de Google, lo que lleva algún tiempo actualizar el enlace KML ... No estoy seguro, pero al final, funciona. .. [/ EDIT]Capas Kml no se actualiza al volver a cargar la página

incorporadas, un mapa de Google pública existente en este sitio web: http://www.ridetheflavour.fr

Aquí está el enlace del mapa público: https://maps.google.fr/maps/ms?msa=0&msid=211027213468691902621.0004c8616605648d245b2

Como se puede ver, los marcadores de la página web de el mapa incrustado no coincide con los marcadores públicos del mapa de google. Parece que no es una cuestión de memoria caché del navegador ...

Aquí está el fragmento de JavaScript que estoy usando (Google V3 mapa API):

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); 

Cualquier ayuda sería muy apreciada.

+0

Wow, no puedo decir cuál fue la razón del problema (mapas que no coinciden) pero ambos son en este momento lo mismo. Tal vez lleva algún tiempo que Google Maps actualice el enlace KML ... si alguien tiene una explicación racional ... – Sulliwane

Respuesta

17

Los servidores de Google almacenan en caché el contenido KML durante un período de tiempo. Para forzar la actualización del archivo KML prestado, agregue un parámetro de prevención de memoria caché a la URL. Usualmente uso una función de la fecha/hora si necesito hacerlo programáticamente, o si solo es una edición de una vez un manual? A = 0 y aumentarlo a medida que hago cambios funciona.

Algo como esto (si usted no tiene ningún otro parámetro de la consulta en la URL):

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

Buena solución ... ¡muchas gracias! – Sulliwane

+0

¡Perfecto! A veces solo agrego manualmente un? Ver = numeral para que cambie. Este caché afecta a todos los archivos kml sin importar dónde están alojados. – efwjames

+0

En realidad, eso es brillantemente simple, ¡gracias! –

0

O se puede simplificar aún más lejos y uso:

URL var = '[su kml url aquí] & ver = '+ Date.now();

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

Cuestiones relacionadas