Error when mapping in ggmap with API key (403 Forbidden)

前端 未结 2 1822
南笙
南笙 2020-12-11 05:43

I normally use ggmap to plot points on a simple city map. When doing this today I came up on a new error that forbids me to use the function get_map()

相关标签:
2条回答
  • 2020-12-11 05:56

    updated: 2018-12-01 for ggmap 2.7.904 and current Google Cloud API

    Problem

    Your API key is

    • either not valid (wrongly typed) / not enabled for billing (most probable cause) or
    • there are some connection/proxy issues.

    Check out this step-by-step tutorial on Stackoverflow.

    Solution

    To check what the issue is type geocode("Houston", output = "all") and look at the error message.

    1. Wrong API key

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

    This means you have provided an API key that is not recognized by Google. Maybe mistyped, maybe miscopied? Sometimes there are weird issues, so generate a new API key in the Google Console and try again.

    2. API key not enabled for geocoding

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

    This means your API key is valid, but you have not allowed usage of this specific API. Remember: Google has an API for every little type of request (static maps, directions, geocoding, ...). Therefore, you need to go to your Google Console and enable this API key for the right APIs, in this case Geocoding.

    Working output with all APIs enabled

    > ggmap(get_map("Houston"))
    

    0 讨论(0)
  • 2020-12-11 06:22

    If you're API key is working you can also use library(googleway) to plot interactive maps

    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)
    

    0 讨论(0)
提交回复
热议问题