2012-02-17 89 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