J'ai une liste des emplacements que j'introduis dans l'API Google Adresses. Certains endroits ont plus de 20 résultats. Je fournis un exemple d'un tel emplacement ci-dessous. Pour obtenir des résultats au-delà des 20 premiers, vous devez effectuer un appel API supplémentaire à Google Adresses, avec un paramètre "jeton" supplémentaire obtenu à partir du premier appel d'API Google Places. En utilisant la fonction imparfaite ci-dessous, j'essaye d'exécuter l'appel d'API supplémentaire, selon s'il y a des résultats supplémentaires qui doivent être obtenus. La fonction en cours produit des valeurs NULL. Toute aide pour corriger cette fonction serait très appréciée.Plusieurs appels API Google Places dans la fonction Sapply
Liste ALIMENTERA Sapply:
LatLongList <- as.list("42.36354942,-71.06396087")
Sapply Fonction:
library(RCurl)
library(tidyjson)
library(magrittr)
library(dplyr)
PullFromPlaces <- function(x) {
url = paste0("https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=",x,"&radius=",radius_meters,"&types=",type,"&key=",key)
payload_json <- getURL(url)
next_page_token <- payload_json %>%
as.tbl_json %>%
enter_object("next_page_token")
next_page_token <- as.character(attr(next_page_token,"JSON"))
if (length(next_page_token) != 0) {
url = paste0("https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=",x,"&radius=",radius_meters,"&types=",type,"&pagetoken=",next_page_token,"&key=",key)
payload_json <- getURL(url)
}
}
Sapply Exécution:
Output <- sapply(LatLongList, PullFromPlaces)
Merci beaucoup SymbolixAU. C'est une bonne première étape mais je me demande si vous avez des suggestions sur la façon de combiner la première et la deuxième API tirer, avec une troisième API tirer pour les résultats 40-60? J'aimerais pouvoir tout tirer en même temps. – Bdude11383
@ Bdude11383 - Je ne l'ai pas encore complètement testé, mais une sorte de boucle qui itère jusqu'à ce que 'page_token' n'existe plus/n'est pas valide devrait faire? – SymbolixAU