2012-02-17 88 views
2

誰能告訴我爲什麼這個kml文件不會顯示在谷歌地圖上?爲什麼我的KML文件不會顯示在谷歌地圖上?

使用下面的代碼將其添加到地圖對象,似乎可以與其他kml文件很好地工作。

var kml = new google.maps.KmlLayer('http://www.emotination.com/kml/tasman.kml'); 
kml.setMap(map); 

飼料驗證器說它的有效性,它不是太大,谷歌服務器解析?

該地圖只是放大到海洋!

+0

這應該工作,你可以發佈一個鏈接到你的實時代碼,或把它放在一個jFiddle? – 2012-02-17 20:01:39

+0

它似乎現在工作,我試着在第二天再次運行它。我仍然困惑,因爲我沒有改變任何東西。我能想到的是,這將與Google文件服務器緩存kml文​​件的舊版本有關。 – kmb64 2012-02-17 21:51:48

+1

您正確地緩存了kml文件。你可以通過給url添加一個timestamp參數來解決這個問題(所以google服務器會認爲它是一個不同的文件)。即'http://www.emotination.com/kml/tasman.kml?time='+new Date()。getTime(); – 2012-02-19 16:24:03

回答

4

您需要確保谷歌的服務器不會顯示你的KML文件的緩存副本

做到這一點的一個好方法是做什麼Björn表明在他的評論,只是添加時間戳這樣的結束url:

var kml_tasman = new google.maps.KmlLayer('http://www.emotination.com/kml/tasman.kml?time='+new Date().getTime()); 
kml_tasman.setMap(map); 
+0

4天后,我發現這個帖子 - 什麼是救生員。謝謝nz_karl – cymorg 2013-07-15 21:59:59

+0

@cymorg你可以提一下你的代碼嗎?我面臨同樣的問題。 – 2017-02-03 10:26:25

+0

@aimal - 我剛剛按照Bjorn&jmb64的建議,在這個答案中,像這樣... newkmlLayer = new google.maps.KmlLayer({ url:'http://www.mybogussite.com/kml/mykmlfile .kml'?time ='+ new Date()。getTime(), preserveViewport:true, map:map }); – cymorg 2017-02-03 14:31:08