2012-02-23 70 views
1

这让我疯狂。我一直在开发一些简单的嵌入式谷歌地图,如下列:KML中使用的自定义地标符号未显示在Google地图中

​​

这张地图特别有几个覆盖,但其中之一就是不再显示我已经开发并指定了自定义的地标图标。问题KML层是这样的:

http://publicworks.snoco.org/RdClosures/SnocoRdClosures4Gmaps.kml

一段时间,在过去的几个月中,自定义符号停止显示和默认标符号已被替换。如果您在Google地球中打开KML文件,它会正确显示。 KML文件使用KmlValidator进行验证。

通过我在这里的搜索,我看到了关于在KML文件顶部使用定义然后在每个地标中使用的建议。我对KML进行了更改,但似乎没有任何区别(自定义图标仍未显示)。

我意识到KML文件会在Google的最后被缓存,所以如果您看看我的JavaScript代码,我将使用虚拟参数技巧与我的KML URL路径强制刷新该图层。我会注意到的另一件事是,这个KML的内容不是静态的,而且经常发生变化。

任何想法?因为我很难过!

谢谢! Steve

回答

1

这与您的服务器如何提供图像有关。如果我在我的主机上显示图标,它可以正常工作,而其他KML文件正在使用来自maps.google.com的图标,该图标也可以正常工作。

由于它在GE工作,我猜可能是你的服务器发送了错误的MIME类型或类似的东西。我检查卷曲,但一切看起来都很好,所以恐怕我不能提供更多的细节。希望这有助于你朝正确的方向发展。祝你好运!

1

与fragileninja同意,您的服务器和Google之间的图像正在发生某些事情。通常的嫌疑人正在超时和404s(或其他服务器错误)。

由于KML图层实际上已被光栅化为Google服务器上的图块,因此请求的超时时间较短,因此图块不会延迟发送到浏览器。如果图标图像在那段时间没有被返回,通常地图将使用默认图标进行渲染(如同在这里做的那样)。然而,当我将它们放置在自己的服务器上时,我也没有任何问题使图标能够正常工作,并且当我直接访问图标时,我看不到加载时间过长,所以很奇怪。

您的服务器可能比平时花更长时间专门回复Google的服务器,甚至可能是他们向他们返回了一些HTTP错误,而不是图像。

你可以检查你的服务器日志,看看你是否能看到请求,以及它们是否按预期返回?

最后,如果没有问题,我会建议在Maps API issue tracker上提交一个错误。确保从下拉列表中选择适当的模板(您也可以考虑制作一个更简单的测试用例,例如仅使用带有KmlLayer example from the docs的KML文件)。如果你最终提交了一个bug,请在这里链接,我会确保它被查看。

+0

谢谢你们的回应。服务器日志不在我的控制和访问范围之内,所以我将与我们的IT人员进行协调,以了解您提出的问题。这是令人沮丧的,因为它最近在1月底才开始工作,并且除了作为Google地图中的KML图层叠加层中的地标图标之外,图像本身在每次使用中都会显示。 – Scole 2012-02-24 16:31:51

+0

我只是想更新现在似乎可行的情况。我让我的IT人员浏览日志,但他们没有看到任何异常。作为记录错误之前的最后一招,我重命名并上传了新版本的PNG图标,并更新了KML文件中的引用以指向新版本。这似乎有窍门!现在图标正确显示。 – Scole 2012-02-27 19:41:48

相关问题