【问题标题】:Google Maps API KML Balloons Not VisibleGoogle Maps API KML 气球不可见
【发布时间】:2012-06-06 21:15:08
【问题描述】:

我正在使用带有 KML 层的 Google Maps JavaScript API v3 来显示带有自定义标记的地图。

我的地图链接到我作为 Google 站点附件发布的 KML 文件。加载后,地图会正确显示 KML 文件中的每个 PlaceMark,但不会显示弹出气球。

当我点击一个图钉时,它很少显示气球(5% 的时间),然后其他图钉都不起作用。当我放大和缩小我的自定义 pin 图像时,偶尔会恢复为默认 pin 图像。

我添加了 layerOptions 来明确地将 clickable 设置为 true 并将 suppressInfoWindows 设置为 false。它并没有改变气球的行为。

我已经使用 Chrome v19、Firefox v12 和 IE8 进行了测试。

更新 1:

我在我的 KML 中发现了一个错字 (bal*l*oon)。仍然无法正常工作。有什么东西让别针出了问题。

更新 2:

v3 正在运行。谷歌的缓存使得这很难测试。向 KML URL 添加了“?nocache=0”以防止缓存。 BaloonStyle 是问题所在,但缓存导致错字仍然存在。将 KML 迁移到个人服务器。

Live HTML Map Page(固定)

Live KML Download(固定)

我的参考资料:

【问题讨论】:

  • 您可能不应该公开发布您的密钥
  • 我在 Chrome(Mac 上是 21 个)和最新的 Safari 中对其进行了测试,对我来说都很好。
  • @Mano Marks,没有办法隐藏 API 密钥。如果它在我的源代码中,它也可能在这里。 (它不是我的生产密钥:P)什么?它对你有用吗?我正在运行 Win7 Pro x32。即将发布尝试 APIv2 的更新。
  • 别用V2了,一年就可以关掉。是的,它适用于我的 mac,但它不应该是哪个浏览器的问题。

标签: google-maps kml balloon


【解决方案1】:

Google 故意缓存您的 KML。解决方法是将当前时间之类的内容附加到 URL 的末尾,以便每次都不同:

var kmlFile = 'http://www.myserver.com/my.kml?'+(new Date()).getTime();
var kmlLayer = new google.maps.KmlLayer(kmlFile);
kmlLayer.setMap(myMap);

【讨论】:

  • 如果我的 KML 托管在我的个人服务器上,Google 地图不应缓存它。更糟糕的是,将一个有效 KML 保存在另一个已缓存的有效 KML 上会导致地图出现错误。这是我向 Google 报告的错误,但感谢您的解决。
【解决方案2】:

我的问题:

  • 我的 BalloonStyle 标记中有错字
  • 我的 KML 文件的过时缓存

如果这样做会更容易:

  • Google Maps JS 在解析 KML 时抛出错误
  • Google 缓存相当快
  • 我开始在服务器上进行测试

更新:

我将 KML 文件移动到我的服务器,但在第一次更改后缓存仍然过时。当我的 Google Map 对象加载 KML 覆盖时,似乎会发生缓存。我确定这不是我的系统或服务器缓存。

如果我对我的 KML 进行更改并且缓存没有更新,则这些图钉开始出现故障。我所有的图钉都显示在正确的位置,但其中一个图钉没有气球。改了文件名,正常!

更新 2:

我将此缓存行为报告为 Google Maps JS API 上的一个错误。

http://code.google.com/p/gmaps-api-issues/issues/detail?id=4196

结论:

我编写了 ASP.NET/C# 类来对地址进行地理编码并构建 KML 文档,所用时间比发现此错误所用的时间还短。

Google 停止缓存这么难!

【讨论】:

    【解决方案3】:

    您的 KML 无效。 <Name> 不是规范的一部分。将其更改为<name>,您应该一切顺利。

    【讨论】:

    • 感谢您的提示,但有一个不同的错字导致了问题。
    猜你喜欢
    • 2011-10-14
    • 2021-03-27
    • 2016-11-17
    • 2013-02-27
    • 1970-01-01
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 2013-06-27
    相关资源
    最近更新 更多