首页 > 解决方案 > 使用 API 密钥在 ggmap 中映射时出错(403 禁止)

问题描述

我通常用来ggmap在简单的城市地图上绘制点。今天这样做时,我遇到了一个新错误,禁止我使用该功能get_map()

        #get API key @ https://developers.google.com/places/web-service/get-api-key
    key<-"AIzaSyCYgKKt2fn7Crt-V6Hnc5aw5lSfy7XLQ-Y"
    register_google(key = key)

atw<- get_map(location=c(-88.68,42.14), zoom=10, scale=2)

我不确定问题出在哪里。我尝试了一个新的 API 密钥,但没有运气。有输入吗?

错误内容如下:

无法打开 URL ' https://maps.googleapis.com/maps/api/staticmap?center=42.14,-88.68&zoom=10&size=640x640&scale=2&maptype=terrain&language=en-EN&key=AIzaSyCYgKKt2fn7Crt-V6Hnc5aw5lSfy7XLQ-Y ':HTTP 状态为'403 禁止'download.file 中的错误(url,destfile = destfile, quiet = !messaging,mode = "wb"):无法打开 URL ' https://maps.googleapis.com/maps/api/staticmap?center= 42.14,-88.68&zoom=10&size=640x640&scale=2&maptype=terrain&language=en-EN&key=AIzaSyCYgKKt2fn7Crt-V6Hnc5aw5lSfy7XLQ-Y '

标签: rggplot2gisggmap

解决方案


更新:2018 年 12 月 1 日,用于 ggmap 2.7.904 和当前的 Google Cloud API

问题

您的 API 密钥是

  • 无效(输入错误)/未启用计费(最可能的原因)或
  • 有一些连接/代理问题。

查看有关 Stackoverflow 的分步教程

解决方案

要检查问题是什么类型geocode("Houston", output = "all")并查看错误消息。

1.错误的API密钥

> geocode("Houston", output = "all")
$error_message
[1] "The provided API key is invalid."

$results
list()

$status
[1] "REQUEST_DENIED"

这意味着您提供了 Google 无法识别的 API 密钥。也许是打错了,也许是抄错了?有时会出现奇怪的问题,因此请在 Google 控制台中生成新的 API 密钥并重

2. 未启用地理编码的 API 密钥

> geocode("Houston", output = "all")
$`error_message`
[1] "This API project is not authorized to use this API."

$results
list()

$`status`
[1] "REQUEST_DENIED"

这意味着您的 API 密钥有效,但您不允许使用此特定 API。请记住:Google 为每一种小类型的请求(静态地图、方向、地理编码……)都有一个 API。因此,您需要转到您的 Google 控制台并为正确的 API 启用此 API 密钥,在本例中为Geocoding

启用所有 API 的工作输出

> ggmap(get_map("Houston"))

阴谋


推荐阅读