get_map ne passant pas la clé API (HTTP statut était "403 Forbidden')
J'ai été confronté à ce problème dans le get_map()
fonction (ggmap
bibliothèque) dans R.
Mon code est en cours d'exécution sans la nécessité de spécifier une clé API (pour source = "google"
) pour plusieurs mois. Toutefois, le code de l'arrêté de travailler quelques semaines en arrière. J'ai compris que Google a mis la clé API obligatoire (ou peut-être ils ont permis à un certain no des appels sans l'api clé que j'ai épuisé).
Cependant, même après la spécification de la clé API (obtenu à partir de Google Cloud Platform) mon code a continué à se comporter de la même manière. J'ai même contacté Google Cloud de Soutien, mais ils ont dit il n'y a rien de mal avec la clé API en soi et ils ont été en mesure d'invoquer la carte à leur fin.
Je soupçonne le get_map()
fonction est de ne pas dépasser le api_key
, tout en invoquant la carte de Google. Tous les pointeurs vers la résolution serait appréciée.
Ci-dessous est la reproductibilité de code (qui est un échec).
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
)
Et ci-dessous le message d'erreur dans R (notez la clé de l'API n'est pas passé)
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'
- Merci @SymbolixAU. Je vais vérifier cela par la suite. Pour l'instant, mon problème a été résolu à l'aide get_googlemap au lieu de get_map. Semble get_map n'est pas conçu pour accepter les api_key quand la source est google. get_map utilise le api_key uniquement quand la source est cloudmade.
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser
register_google(key = "..."
) pour chaque nouvelle session de R. à l'Aide deapi_key =
à l'intérieur de laget_map()
appel ne fonctionne pas.mise à jour: 2018-12-24 pour ggmap 2.7.904 et Google Cloud API
Étape par étape Tutoriel
1. Mise à jour à la version la plus récente de ggmap
2. Activer votre clé API Google pour toutes les Api Google Cloud Console
Lien pour plus d'infos sur comment obtenir une clé API
Lien Direct vers Google Cloud Platform Console
Lien Direct vers Google Maps API Informations sur les Prix
Api dont vous avez besoin: Cartes Statiques et Géocodage
Permettre de facturation dans les paramètres généraux.
3. Charge ggmap et de la clé de registre
4. Parcelle de carte par défaut
5. L'intrigue avec le nom de l'endroit (Géocodage)
6. Parcelle avec la longitude et la latitude
Juste pour ajouter à la Romaine Abashin de réponse (je ne peux pas commenter, malheureusement): selon '?get_map (), le " api_key =' argument ne fonctionne pas pour les cartes de Google maps. Vous aurez besoin d'utiliser le " register_google()' la fonction, mais aussi de 03/10/18, c'est seulement dans la version de développement de ggmap, à laquelle vous pouvez accéder comme suit:
Ensuite, vous devrez activer la facturation sur votre compte Google, si les 100 000 premières cartes que vous utilisez chaque mois devrait être gratuit, voir ici: https://cloud.google.com/maps-platform/pricing/sheet/ pour plus de détails.
(conseils tirés à partir d'ici: https://github.com/dkahle/ggmap/issues/51)
Je ne connais pas la résolution directe de l'
ggmap
problème, mais si vous êtes heureux de travailler avec une carte interactive plutôt que statique, vous pouvez utiliser mongoogelway
bibliothèqueJuste en ajoutant à @Romain de réponse, voici le code qui a fonctionné pour moi:
Pour plus d'informations, vous pouvez consulter à la page de la bibliothèque sur github: ici
Espérons que cela aide!