使用R中的ggmap获取地图时出现错误

26

使用ggmap中的get_map函数时,大约90%的时间我会遇到以下错误。请问有人能告诉我为什么吗?

map <- get_map(location = 'Australia', zoom = 4)
Error in download.file(url, destfile = destfile, quiet = !messaging, mode = "wb"): 无法打开网址 'http://maps.googleapis.com/maps/api/staticmap?center=Australia&zoom=4&size=%20640x640&scale=%202&maptype=terrain&sensor=false'。此外,警告信息为:在download.file(url,destfile = destfile,quiet =!messaging,mode =“wb”)中:无法打开:HTTP状态为“403 Forbidden”。

9
你可以查看Google API关于403错误的可能原因:https://developers.google.com/maps/documentation/business/articles/usage_limits#http403。典型的原因似乎是您已经超过了API的每日限制。就我而言,我能够复制上面的链接,将其放入我的网络浏览器中,并成功地获取澳大利亚的图像...你是否每天生成成千上万个请求以达到API的最大限制? - Chase
感谢您的评论。不,我只尝试了几次,所以不应该达到API的最大限制... - user2861089
3
嗯,我想知道你的IP地址或其他方面是否有问题?你是从大型办公室/大学或其他计算机分配相同IP地址的地方登录吗?这只是一个猜测,但我认为可能是您的计算机、防火墙或IP地址出了问题。您可以尝试从另一台计算机和/或互联网连接尝试以测试该理论。 - Chase
非常感谢您的建议。 - user2861089
3个回答

6
问题很可能与您的API项目未被Google授权有关。
创建和获得授权的API项目很容易:
点击这个链接(链接),选择创建。或者如果您已经创建了项目,只需要激活API,则选择选择。
之后选择“启用”。
之后,您的代码应该可以运行。
链接再次附上:(链接)

您必须知道,使用API会产生费用,这些费用将从您在Google Cloud注册时所需的信用卡中扣除。 - Agile Bean

3
403错误是因为Google现在要求用户注册并使用(免费的)API密钥。

您必须在请求中包含API密钥(并启用计费)才能使用R中的ggmap生成任何地图。请参阅官方ggmap存储库以获得更清晰的说明。@sarah-grogan我怀疑它不会太长时间是__免费__的... - SilSur

2

“zoom = 4”根据文档,“仅为Google商业用户保留”。我无法在文档中找到有关非商业用户为什么会间歇性或完全工作的详细信息,但这是我最好的猜测。


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