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()
updated: 2018-12-01 for ggmap 2.7.904 and current Google Cloud API
Your API key is
Check out this step-by-step tutorial on Stackoverflow.
To check what the issue is type geocode("Houston", output = "all")
and look at the error message.
> 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.
> 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.
> ggmap(get_map("Houston"))
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)