web-dev-qa-db-fra.com

Dépasser QUERY LIMIT après une requête avec géocode

J'utilise le géocode de ggmap pour trouver la latitude et la longitude de différentes villes. Hier, cela a fonctionné parfaitement, mais je reçois aujourd'hui une demande OVER QUERY LIMIT après une seule demande.

En fait, si je charge simplement la bibliothèque et lance geocode, l'erreur OVER QUERY LIMIT est générée:

> library(ggmap)
> geocode("Paris")
Information from URL : http://maps.googleapis.com/maps/api/geocode/json?address=Paris&sensor=false
  lon lat
1  NA  NA
Warning message:
geocode failed with status OVER_QUERY_LIMIT, location = "Paris" 

J'ai vérifié différents sujets sur stackoverflow mais personne ne semble avoir le même problème. J'ai essayé de voir si j'avais dépassé la limite de 2500 (très peu probable mais je suis novice en codage alors peut-être que j'ai fait quelque chose de mal ...) et geocodeQueryCheck () lit 2498 mais il est réinitialisé à chaque fois que j'exécute une bibliothèque (ggmap) .

Cela fonctionnait une fois il y a quinze minutes lorsque j'ai redémarré Rstudio, mais maintenant cela ne fonctionne plus, je suis complètement perdu!

Quelqu'un at-il une idée de ce que pourrait être le problème?

PS: Je suis nouveau sur stackoverflow, donc si vous avez une remarque à faire, veuillez me le dire!

38
Edouard Cuny

J'ai eu un problème similaire en utilisant ggmap::geocode() pour un lot d'emplacements où environ 20% des emplacements donnaient l'erreur OVER QUERY LIMIT, bien que geocodeQueryCheck() indique un nombre suffisant de requêtes de géocodage restantes et des erreurs ont été sporadiquement répandues sur tous les sites, pas seulement les 20% restants. Si je redemandais le sous-ensemble d'emplacements ayant échoué pour la première fois, la plupart des solutions fonctionneraient. Je devais donc parcourir plusieurs sous-ensembles plus petits jusqu'à ce qu'ils aient tous obtenu des géocodes.

ggmap v2.7 permet à l'utilisateur de spécifier une clé d'API Google Maps via la fonction register_google(). La v2.7 n’est pas encore sur CRAN, vous devez donc utiliser devtools::install_github("dkahle/ggmap") pour l’installer. Après la mise à jour vers cette version et la définition de ma clé d'API register_google(key = "my_api_key"), le même lot a fonctionné comme prévu.

La clé API Google Maps est facile à obtenir: https://developers.google.com/maps/documentation/geocoding/get-api-key

31
sbha

Si vous voulez être sûr de votre quota, vous pouvez obtenir un clé API Google Maps , puis utilisez-le dans mon package googleway.

library(googleway)

key <- "your_api_key"

google_geocode(address = "Paris", key = key)

# $results
# address_components
# 1   Paris, Paris, Île-de-France, France, Paris, Paris, Île-de-France, FR, locality, political, administrative_area_level_2, political, administrative_area_level_1, political, country, political
# 2 Paris, Lamar County, Texas, United States, Paris, Lamar County, TX, US, locality, political, administrative_area_level_2, political, administrative_area_level_1, political, country, political
# formatted_address geometry.bounds.northeast.lat geometry.bounds.northeast.lng geometry.bounds.southwest.lat
# 1     Paris, France                      48.90214                      2.469921                      48.81557
# 2    Paris, TX, USA                      33.73838                    -95.435455                      33.61185
# geometry.bounds.southwest.lng geometry.location.lat geometry.location.lng geometry.location_type
# 1                      2.225193              48.85661              2.352222            APPROXIMATE
# 2                    -95.627928              33.66094            -95.555513            APPROXIMATE
# geometry.viewport.northeast.lat geometry.viewport.northeast.lng geometry.viewport.southwest.lat geometry.viewport.southwest.lng
# 1                        48.90214                        2.469921                        48.81557                        2.225193
# 2                        33.73838                      -95.435455                        33.61185                      -95.627928
# place_id               types
# 1 ChIJD7fiBh9u5kcRYJSMaMOCCwQ locality, political
# 2 ChIJmysnFgZYSoYRSfPTL2YJuck locality, political
# 
# $status
# [1] "OK"
15
SymbolixAU

J'ai essayé de m'inscrire à api_key, cela ressemble à un service payant.

source = “dsk” semble être la seule solution de contournement:

géocode ("Paris", source = "dsk")

Voyez si cela fonctionne pour vous.

9
Ghose Bishwajit

À partir du 11 juin 2018 Google a changé l'accès à l'API Google.

Maintenant vous devez BESOIN de définir une carte de crédit sur votre compte pour obtenir l’autorisation d’utiliser les API. Il s’agit d’un compte gratuit qui ne vous facturera rien sur votre carte de crédit, avec quelques limitations quant au nombre de requêtes que vous pouvez effectuer (comme nous l’avions auparavant).

Si vous avez besoin de plus de requêtes vous devriez changer votre compte en un compte normal qui vous facturera lorsque vous utilisez les API davantage de limites gratuites.

7
NetVicious

La demande n'utilise pas de clé, ce qui signifie que vous partagez le quota avec toutes les pages hébergées sur le même serveur (même adresse IP/peut-être des centaines de domaines).

Comme il semble que cette bibliothèque ne supporte qu'une option pour les utilisateurs professionnels de fournir des informations d'identification.

Il y a un demande de fonctionnalité de 2014 , mais tant que ce n'est pas implémenté, je crains que rien ne puisse être fait (en tant qu'utilisateur non professionnel) lorsque vous utilisez cette bibliothèque (sauf vous modifier la bibliothèque, mais je ne connais pas bien R, je ne peux donc pas vous aider davantage).

4
Dr.Molle