【问题标题】:Error when mapping in ggmap with API key (403 Forbidden)使用 API 密钥在 ggmap 中映射时出错(403 禁止)
【发布时间】:2018-07-23 15:02:18
【问题描述】:

我通常使用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 密钥,但没有运气。有输入吗?

错误显示:

无法打开网址 '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 Forbidden”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'

【问题讨论】:

    标签: r ggplot2 gis ggmap


    【解决方案1】:

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

    问题

    您的 API 密钥是

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

    看看这个step-by-step tutorial on 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 密钥,在本例中为 地理编码

    启用所有 API 的工作输出

    > ggmap(get_map("Houston"))
    

    【讨论】:

      【解决方案2】:

      如果您的 API 密钥有效,您还可以使用 library(googleway) 绘制交互式地图

      library(googleway)
      
      ## you can use separate API keys for different APIs
      set_key( "GOOGLE_API_KEY", api = "geocode")
      set_key( "GOOGLE_MAP_KEY", api = "map")
      
      ## you can view the keys you have with
      google_keys()
      
      google_map( location = c(52, 0), zoom = 6 )
      

      ## add a marker by geocoding an address
      res <- google_geocode("Buckingham Palace")
      loc <- geocode_coordinates( res )
      
      google_map() %>%
        add_markers(data = loc)
      

      【讨论】:

        猜你喜欢
        • 2015-01-25
        • 1970-01-01
        • 2022-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-06
        相关资源
        最近更新 更多