ggmap 中的错误,“必须是数组”和“HTTP 400 错误请求”
Posted
技术标签:
【中文标题】ggmap 中的错误,“必须是数组”和“HTTP 400 错误请求”【英文标题】:Error in ggmap, "must be an array" and "HTTP 400 bad request" 【发布时间】:2020-05-20 12:06:30 【问题描述】:我正在尝试使用 ggmap 从谷歌地图中调用地图。示例代码:
get_googlemap(center = c(lon = -56.67, lat = 51.47), zoom = 8, size = c(640, 640), scale = 2,
format = "png8", maptype = "satellite")
但是,这会返回以下错误:
来源:https://maps.googleapis.com/maps/api/staticmap?center=24.8,-81.7&zoom=8&size=640x640&scale=4&maptype=satellite&key=(removed 发帖密钥)
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
我查看了人们遇到类似问题的线程。在对 API 密钥和限制进行一些摆弄之后,它们似乎得到了解决。在这种情况下,我做了以下事情:
-
启用计费
限制了我的 API 密钥 - 但是,我无法选择将其限制为“静态地图”。我目前将其限制为
“谷歌云 API”。和以前一样的错误,但关键仍然是
注册命中。
完成上述操作后重新启动 R,并仔细检查我的包。
不胜感激,我的实验室同事都没有遇到这个问题,我开始扯头发了,哈哈。
【问题讨论】:
您的代码适用于我的 API 密钥。此外,我的密钥不受限制,当我查看限制它的选项时,Maps Static API
可用。尝试创建新的 API 密钥?
【参考方案1】:
经过一番折腾,我想通了。这不是很直观,所以我将其发布在这里,以防其他新人遇到同样的问题。
本质上,在生成密钥后,您需要从云控制台进入库并启用以下四个 API:
静态地图, 地图嵌入, 地理位置, 地理编码。
然后,去编辑密钥。向下滚动并将其限制为上述四个 API。之后工作得很好。
【讨论】:
【参考方案2】:我遇到了和你一样的问题,我修复了它,在这个链接中重新生成 API 密钥:https://console.cloud.google.com/
首先您在垂直菜单中查找“API 和服务”(或类似内容),然后查找“凭据”。
如果您的 API 密钥太旧,就像我的一样,而且我只使用了几次,那么密钥可能停止工作。重新生成一个新的后,它工作正常!
【讨论】:
以上是关于ggmap 中的错误,“必须是数组”和“HTTP 400 错误请求”的主要内容,如果未能解决你的问题,请参考以下文章