2012-08-29 2 views
7

[편집] KML 링크를 업데이트하는 데 시간이 걸리는 Google지도에서 문제가 발생하는 것 같습니다. 확실하지 않지만 결국 작동합니다. .. [/ 편집]페이지를 다시로드 할 때 KML 레이어가 업데이트되지 않습니다.

나는이 웹 사이트에 기존 공용 구글지도 포함 : 여기 http://www.ridetheflavour.fr

대중 맵의 링크입니다 : https://maps.google.fr/maps/ms?msa=0&msid=211027213468691902621.0004c8616605648d245b2

당신이 볼 수 있듯이, 웹 사이트의 마커 퍼간지도가 공개 Google지도 아이콘과 일치하지 않습니다. 어떤 도움을 크게 감상 할 수

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

: 여기

는 자바 스크립트 내가 (구글 맵 API의 V3)을 사용하고 니펫을입니다 ... 그것은 브라우저 캐시의 문제가 아니다 보인다.

+0

와우, 문제의 원인이 무엇인지 알 수는 없지만 (불일치지도) 현재 둘 다 동일합니다. Google지도에서 KML 링크를 업데이트하는 데 다소 시간이 걸릴 수 있습니다. 누군가 합리적인 설명이있는 경우 ... – Sulliwane

답변

17

Google 서버는 일정 기간 동안 KML 콘텐츠를 캐시합니다. 렌더링 된 KML을 강제 업데이트하려면 URL에 캐시 버스 팅 매개 변수를 추가하십시오. 프로그래밍 방식으로 수행해야하는 경우 일반적으로 날짜/시간 함수를 사용합니다. 또는 한 번만 수동으로 편집하면 되나요? a = 0으로 변경하고 변경 사항을 적용하면됩니다.

이 같은

뭔가 (당신은 URL의 다른 쿼리 매개 변수가없는 경우) :

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

좋은 해결 방법 ... 대단히 감사합니다 !! – Sulliwane

+0

완벽한! 가끔은 수동으로? ver = 숫자를 추가하여 변경할 수 있습니다. 이 캐시는 호스팅되는 위치에 관계없이 모든 kml 파일에 영향을 미칩니다. – efwjames

+0

사실 - 그게 훌륭하게 간단합니다 - 고마워요! –

0

아니면 간단하게 할 수 그것을 더욱 사용 :

var에 URL = '[당신의 kml url here] & ver = '+ Date.now();

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

관련 문제