get_map no pasa la clave API(el estado HTTP fue ''403 Prohibido'')
google-maps google-maps-api-3 (4)
No conozco la resolución directa al problema de
ggmap
, pero si estás contento de trabajar con un mapa interactivo en lugar de uno estático, puedes usar mi biblioteca de
googelway
library(googleway)
set_key("GOOGLE_MAP_KEY")
lat <- c(4,41) #India lat boundaries
lon <- c(68,99) #India long boundaries
center = c(mean(lat), mean(lon))
google_map(location = center, zoom = 6)
Me he enfrentado a este problema en la función
get_map()
(biblioteca
ggmap
) en R.
Mi código se estaba ejecutando sin la necesidad de especificar una clave de API (para
source = "google"
) durante varios meses.
Sin embargo, el código dejó de funcionar hace un par de semanas.
Comprendí que Google ha hecho que la clave de API sea obligatoria (o quizás permitieron un cierto número de llamadas sin la clave de api que agoté).
Sin embargo, incluso después de especificar la clave API (obtenida de Google Cloud Platform), mi código continuó comportándose de la misma manera. Incluso me puse en contacto con Google Cloud Support, pero dijeron que no había nada malo con la clave de API en sí y que podían invocar el mapa al final.
Sospecho que la función
get_map()
no está pasando la
api_key
al invocar el mapa de Google.
Cualquier puntero hacia la resolución sería apreciado.
A continuación se muestra el código reproducible (que está fallando).
library(ggmap)
lat <- c(4,41) # India lat boundaries
lon <- c(68,99) # India long boundaries
center = c(mean(lat), mean(lon))
map <- get_map(location = c(lon = mean(lon),
lat = mean(lat)),
api_key = <my api key>,
zoom = 6,
maptype = "terrain",
source = "google",
messaging = TRUE
)
Y a continuación se muestra el mensaje de error en R (tenga en cuenta que la clave API no se pasa)
trying URL ''http://maps.googleapis.com/maps/api/staticmap?center=22.5,83.5&zoom=6&size=640x640&scale=2&maptype=terrain&language=en-EN&sensor=false''
Error in download.file(url, destfile = tmp, quiet = !messaging, mode = "wb") :
cannot open URL ''http://maps.googleapis.com/maps/api/staticmap?center=22.5,83.5&zoom=6&size=640x640&scale=2&maptype=terrain&language=en-EN&sensor=false''
In addition: Warning message:
In download.file(url, destfile = tmp, quiet = !messaging, mode = "wb") :
cannot open URL ''http://maps.googleapis.com/maps/api/staticmap?center=22.5,83.5&zoom=6&size=640x640&scale=2&maptype=terrain&language=en-EN&sensor=false'': HTTP status was ''403 Forbidden''
Solo agregando a la respuesta de @ Roman, aquí está el código que funcionó para mí:
if(!requireNamespace("devtools")) install.packages("devtools")
devtools::install_github("dkahle/ggmap", ref = "tidyup")
library(ggmap)
register_google(key = "your_API_key")
usa<- get_googlemap(location=''united states'', zoom=4,maptype = "hybrid")
Para obtener más información, puede consultar la página de la biblioteca en github:
here
Esperemos que te ayude!
Solo para agregar a la respuesta de Roman Abashin (no puedo comentar, desafortunadamente): Según ''? Get_map ()'', el argumento ''api_key ='' no funciona para los mapas de Google. Tendrá que usar la función ''register_google ()'', pero a partir del 03/10/18, está solo en la versión de desarrollo de ggmap, que puede obtener así:
devtools::install_github("dkahle/ggmap", ref = "tidyup")
Luego también deberá habilitar la facturación en su cuenta de Google, aunque los primeros 100,000 mapas que use cada mes deberían ser gratuitos, consulte aquí: https://cloud.google.com/maps-platform/pricing/sheet/ para obtener más información .
(Consejos extraídos de aquí: https://github.com/dkahle/ggmap/issues/51 )
api_key =
usar
register_google(key = "..."
) en cada nueva sesión de R. El uso de
api_key =
dentro de la llamada
get_map()
no funciona.
actualizado: 2018-12-24 para ggmap 2.7.904 y la actual API de Google Cloud
Tutorial paso a paso
1. Actualizar a la última versión de ggmap
require(devtools)
devtools::install_github("dkahle/ggmap", ref = "tidyup")
2. Active su clave de API de Google para todas las API en Google Cloud Console
-
Enlace para obtener más información sobre cómo obtener una clave API
-
Enlace directo a la información de precios de la API de Google Maps
-
APIs que necesitas: Maps Static y Geocoding
-
Habilitar la facturación en la configuración general.
3. Cargar ggmap y registrar clave
library(ggmap)
register_google(key = "...") # copied directly from Google Console via ''copy'' button
4. Trazar mapa por defecto
ggmap(get_googlemap())
5. Parcela con nombre de ubicación (Geocodificación)
ggmap(get_map("Hannover, Germany"))
Si recibe un error aquí (por ejemplo, Forbidden 403) probablemente no haya activado su clave para las API correctas. Tutorial para solucionar problemas de geocodificación
6. Parcela con longitud y latitud.
ggmap(get_map(location=c(16.3738,48.2082), zoom=13, scale=2))