ggmap 中的错误,“必须是一个数组”和“HTTP 400 错误请求”

Hun*_*ens 7 api r ggmap telemetry

我正在尝试使用 ggmap 从谷歌地图调用地图。示例代码:

get_googlemap(center = c(lon = -56.67, lat = 51.47), zoom = 8, size = c(640, 640), scale = 2,
                   format = "png8", maptype = "satellite")
Run Code Online (Sandbox Code Playgroud)

但是,这会返回以下错误:

来源:https : //maps.googleapis.com/maps/api/staticmap?center= 24.8,-81.7 &zoom=8&size=640x640&scale=4&maptype=satellite& key=(已删除发布键)

Error in aperm.default(map, c(2, 1, 3)) : 
  invalid first argument, must be an array
In addition: Warning message:
In get_googlemap(center = c(lon = -81.7, lat = 24.8), zoom = 8,  :
  HTTP 400 Bad Request
Run Code Online (Sandbox Code Playgroud)

我查看了人们遇到类似问题的线程。在对 API 密钥和限制进行一些摆弄之后,它们似乎得到了解决。在这种情况下,我做了以下事情:

  1. 启用计费
  2. 限制我的 API 密钥 - 但是,我没有选择将其限制为“静态地图”。我目前将其限制为“Google Cloud apis”。与以前相同的错误,但密钥仍在注册命中。
  3. 完成上述操作后重新启动 R,并仔细检查我的包。

希望得到一些帮助,我的实验室伙伴都没有遇到这个问题,我开始把头发扯掉,哈哈。

Hun*_*ens 12

经过一番折腾,我想通了。它不是非常直观,所以我把它贴在这里以防其他新人遇到同样的问题。

本质上,生成密钥后,从云控制台,您需要进入库并启用以下四个 API:

静态地图、地图嵌入、地理定位、地理编码。

然后,去编辑密钥。向下滚动并将其限制为上述四个 API。在那之后工作得很好。


小智 1

我遇到了与您相同的问题,我修复了此链接中重新生成 API 密钥的问题: https: //console.cloud.google.com/

首先,您在垂直菜单中查找“API 和服务”(或类似的内容),然后查找“凭据”。

如果您的 API 密钥太旧了,就像我的一样,而且我只使用过几次,那么密钥可能会停止工作。我重新生成一个新的后,它工作正常!