Google maps api无法加载地图图块

时间:2015-06-22 12:52:33

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

我将谷歌地图api v3嵌入到我的网站中,这一切都很好,直到几周前。在最近几周内,地图图块(只有地图,卫星图块始终正常工作)不时加载几个小时,有时几天。除此之外,我得到以下两条403错误消息:

[Error] Failed to load resource: the server responded with a status of 403 
(Forbidden) (ViewportInfoService.GetViewportInfo, line 0)
http://maps.googleapis.com/maps/api/js/ViewportInfoService.GetViewportInfo

[Error] Failed to load resource: the server responded with a status of 403 
(Forbidden) (AuthenticationService.Authenticate, line 0)
http://maps.googleapis.com/maps/api/js/AuthenticationService.Authenticate

看起来身份验证出错了。但是,我远不及每天拨打api的最大数量。此外,地图控件以及卫星图块(当我切换到它们时)加载没有问题。

这个问题每周几次随机发生几次,直到一整天。大部分时间一切正常。

有没有人在遇到过这样的问题或对可能出现的问题有任何想法?

更新2016年2月:仍在处理同样的问题

仔细检查后,似乎每次更新网站后,地图图块都会工作几天,然后再显示403条消息。

google开发者控制台中的使用情况统计信息显示,我每天几乎不会超过100个请求,因此使用限制根本不应成为问题。

到目前为止,我确实请求了一个新的API密钥,看看这是否会有所帮助。在我更改了密钥后,就像在网站更新几天之后一切正常,但是现在我们又回到了同样的旧情况

2 个答案:

答案 0 :(得分:2)

所以,最后这似乎已经解决了。原来问题是我用symfony的资产处理了包含的谷歌地图javascript文件。这导致文件缓存在我的网络服务器上,并从那里提供给我的用户,这反过来触发谷歌的安全措施,以防止瓦片刮,导致403响应。

解决方案非常简单,使用简单的<script src=".."></script>标签而不是资产和标签的{% javascripts '..' %}标签。

为什么这只会导致地图问题,而不是卫星图像,我不知道!

答案 1 :(得分:0)

解决了WordPress网站上GMaps API的相同问题。

问题是由积极的缓存引起的。

清除W3 Total Cache现在解决了这个问题。设置不太激进的缓存策略应该可以防止问题再次发生。