【问题标题】:Why won't my KML file display on google maps?为什么我的 KML 文件不会显示在谷歌地图上?
【发布时间】:2012-03-08 12:24:29
【问题描述】:

谁能告诉我为什么这个 kml 文件不会显示在谷歌地图上?

我使用以下代码将其添加到似乎与其他 kml 文件一起工作的地图对象。

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

Feed 验证器说它是有效的,它对于谷歌服务器来说是不是太大而无法解析?

地图只是放大到海洋中!

【问题讨论】:

  • 这应该可以,您可以发布一个指向您的实时代码的链接,或者将其放入 jFiddle 中吗?
  • 它现在似乎可以工作了,我第二天再次尝试运行它。我仍然感到困惑,因为我没有改变任何东西。我能想到的是,这与谷歌服务器缓存 kml 文件的旧副本有关
  • 您是正确的,kml 文件已被缓存。您可以通过向 url 添加时间戳参数来解决该问题(因此 google 服务器会将其视为不同的文件)。 IE。 'emotination.com/kml/tasman.kml?time='+newDate().getTime();
  • 请将 cmets 的要点作为答案发布,并将此问题标记为已回答。

标签: javascript google-maps-api-3 kml


【解决方案1】:

您需要确保 Google 的服务器没有显示您的 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);

【讨论】:

  • 4 天后,我找到了这篇文章 - 真是救命稻草。谢谢 nz_karl
  • @cymorg 你能提到你的代码吗?我也面临同样的问题。
  • @aimal - 我只是按照 Bjorn & jmb64 在这个答案中的建议做了,就像这样...... newkmlLayer = new google.maps.KmlLayer({ url: 'mybogussite.com/kml/mykmlfile.kml'?time=' + new Date( ).getTime(), preserveViewport: true, map: map });
猜你喜欢
  • 1970-01-01
  • 2015-12-17
  • 1970-01-01
  • 2019-03-26
  • 2013-05-03
  • 1970-01-01
  • 1970-01-01
  • 2019-08-06
  • 2017-08-10
相关资源
最近更新 更多