2016-12-26 4 views
0

Je travaille sur une trame de données de latitudes et longitudes pour obtenir l'adresse correspondante en utilisant la fonction coordinates2politics disponible dans la boîte à outils Data Science. La fonction fonctionne bien pour une seule valeur longue, mais lorsque j'analyse un tableau dans le corps d'un appel POST, cela ne fonctionne pas.coordinates2politics: Le géocodage inversé ne fonctionne pas correctement

Extrait de code:

x <- data.frame(lat= c(35.18713,37.86058),long= c(-117.88536,-122.29673)) 
data <- paste0("[",paste(paste0("\"",x$lat,"%2c",x$long,"\""),collapse=","),"]") 
url <- "http://www.datasciencetoolkit.org/coordinates2politics/" 
response <- POST(url,body=data) 
response 
json  <- fromJSON(content(response,type="text")) 
json 

La place a donné lieu sont différentes valeurs pour un lat et long, et je ne sais pas pourquoi? Voici le résultat pour la première entrée, vous pouvez observer que lat = 51, long = 53 !!

json 
[[1]] 
[[1]]$politics 
[[1]]$politics[[1]] 
[[1]]$politics[[1]]$type 
[1] "admin2" 

[[1]]$politics[[1]]$friendly_type 
[1] "country" 

[[1]]$politics[[1]]$name 
[1] "Kazakhstan" 

[[1]]$politics[[1]]$code 
[1] "kaz" 


[[1]]$politics[[2]] 
[[1]]$politics[[2]]$type 
[1] "admin4" 

[[1]]$politics[[2]]$friendly_type 
[1] "state" 

[[1]]$politics[[2]]$name 
[1] "West Kazakhstan" 

[[1]]$politics[[2]]$code 
[1] "kz07" 

[[1]]$location 
[[1]]$location$latitude 
[1] 51 

[[1]]$location$longitude 
[1] 53 

Répondre

0

Je trouvé la solution Le problème était dans la définition de l'objet data que la fonction a besoin d'un ensemble de deux valeurs clés chacune des correspondes à [lat,long] paires si l'objet de données doit être défini comme data <- paste0("[",paste(paste0("[",x$lat,",",x$long,"]"),collapse=","), « ] ")