谷歌地图API无法加载地图瓦片

7

我在我的网站中嵌入了Google Maps 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错误消息再次出现。
谷歌开发者控制台中的使用统计数据显示,我几乎从未超过每日100个请求,因此使用限制不应该是问题。
现在,我已经请求了一个新的API密钥,看看是否有所帮助。在更改密钥后,就像网站更新后的几天一样,一切正常运行,但是现在我们回到了同样的旧情况。

你是如何加载API的? - geocodezip
我直接从谷歌的服务器加载JavaScript:<script src="http://maps.googleapis.com/maps/api/js"></script> - Erik Verboom
如果您不使用密钥,则配额是按域计算的。您是否在共享域上?有可能有其他人正在使用您的配额。 - Yaniv
我使用自己的密钥,只是不想在这里公开打印它;)。我还通过谷歌检查了使用统计数据。我每天达到的最大API调用次数约为150次,所以这不应该是问题。 - Erik Verboom
你最后解决了这个问题吗? - joshreesjones
显示剩余5条评论
2个回答

2
所以,最终问题得到了解决。原来问题出在我使用Symfony的Assetic处理包含的Google Maps JavaScript文件上。这导致该文件被缓存在我的Web服务器上,并从那里提供给我的用户,这反过来触发了Google的安全措施,以防止刮取瓷砖,导致403响应。
解决方案非常简单,使用简单的标签,而不是Assetic和Twig的{% javascripts '..' %}标签。
为什么这只会导致地图出现问题,而不是卫星图像,我不知道!

1

我在WordPress网站上解决了GMaps API的同样问题。

问题是由于过度缓存引起的。

清除W3 Total Cache暂时解决了该问题。设置较少侵略性的缓存策略应该可以防止问题再次发生。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接