【问题标题】:Error in ggmap, "must be an array" and "HTTP 400 bad request"ggmap 中的错误,“必须是数组”和“HTTP 400 错误请求”
【发布时间】: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 密钥和限制进行一些摆弄之后,它们似乎得到了解决。在这种情况下,我做了以下事情:

  1. 启用计费
  2. 限制了我的 API 密钥 - 但是,我无法选择将其限制为“静态地图”。我目前将其限制为 “谷歌云 API”。和以前一样的错误,但关键仍然是 注册命中。
  3. 完成上述操作后重新启动 R,并仔细检查我的包。

不胜感激,我的实验室同事都没有遇到这个问题,我开始扯头发了,哈哈。

【问题讨论】:

  • 您的代码适用于我的 API 密钥。此外,我的密钥不受限制,当我查看限制它的选项时,Maps Static API 可用。尝试创建新的 API 密钥?

标签: r api ggmap telemetry


【解决方案1】:

经过一番折腾,我想通了。这不是很直观,所以我将其发布在这里,以防其他新人遇到同样的问题。

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

静态地图, 地图嵌入, 地理位置, 地理编码。

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

【讨论】:

    【解决方案2】:

    我遇到了和你一样的问题,我修复了它,在这个链接中重新生成 API 密钥:https://console.cloud.google.com/

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-18
      • 1970-01-01
      • 2012-02-09
      相关资源
      最近更新 更多