web-dev-qa-db-fra.com

Erreur lors du mappage dans ggmap avec la clé d'API (403 interdit)

J'utilise normalement ggmap pour tracer des points sur une simple carte de ville. En faisant cela aujourd'hui, je suis tombé sur une nouvelle erreur qui m'empêche d'utiliser la fonction 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)

Je ne sais pas où est le problème. J'ai essayé une nouvelle clé d'API mais pas de chance. Une entrée?

L'erreur lit:

ne peut pas ouvrir l'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=AIzaSyCYCKC2cnCr7 -V6Hnc5aw5lSfy7XLQ-Y ': l'état HTTP était' 403 Forbidden'Error dans download.file (url, destfile = destfile, quiet =! Messagerie, mode = "wb"): impossible d'ouvrir l'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=AIzaSyCYgKKt2F7 '

6
I Del Toro

mise à jour: 2018-12-01 pour ggmap 2.7.904 et l'API Google Cloud actuelle} _ 

Problème

Votre clé API est 

  • soit non valide (mal saisi)/non activé pour la facturation (cause la plus probable) ou 
  • il y a quelques problèmes de connexion/proxy. 

Consultez ce numéro sur Github pour les pointeurs.

Solution

Pour vérifier le problème, tapez geocode("Houston", output = "all") et consultez le message d'erreur.

1. Mauvaise clé API

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

$results
list()

$status
[1] "REQUEST_DENIED"

Cela signifie que vous avez fourni une clé API qui n'est pas reconnue par Google. Peut-être mal typé, peut-être mal copié? Parfois, il y a des problèmes étranges, donc générez une nouvelle clé d'API dans la console Google et essayez à nouveau.

2. Clé API non activée pour le géocodage

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

$results
list()

$`status`
[1] "REQUEST_DENIED"

Cela signifie que votre clé d'API est valide, mais que vous n'avez pas autorisé l'utilisation de cette API spécifique. N'oubliez pas: Google dispose d'une API pour chaque type de requête (cartes statiques, directions, géocodage, ...). Par conséquent, vous devez accéder à votre console Google et activer cette clé d'API pour les bonnes API, dans ce cas Géocodage.

Sortie de travail avec toutes les API activées

> ggmap(get_map("Houston"))

 plot

3
Roman

Si votre clé API fonctionne, vous pouvez également utiliser library(googleway) pour tracer des cartes interactives.

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 )

 enter image description here

## add a marker by geocoding an address
res <- google_geocode("Buckingham Palace")
loc <- geocode_coordinates( res )

google_map() %>%
  add_markers(data = loc)

 enter image description here

1
SymbolixAU