【发布时间】:2014-08-21 04:57:12
【问题描述】:
使用上一个 stackoverflow 中的这个代码函数:R: How to GeoCode a simple address using Data Science Toolbox
require("RDSTK")
library(httr)
library(rjson)
geo.dsk <- function(addr){ # single address geocode with data sciences toolkit
require(httr)
require(rjson)
url <- "http://www.datasciencetoolkit.org/maps/api/geocode/json"
response <- GET(url,query=list(sensor="FALSE",address=addr))
json <- fromJSON(content(response,type="text"))
loc <- json['results'][[1]][[1]]$geometry$location
return(c(address=addr,long=loc$lng, lat= loc$lat))
}
现在示例代码。这工作正常:
City<-c("Atlanta, USA", "Baltimore, USA", "Beijing, China")
r<- do.call(rbind,lapply(as.character(City),geo.dsk))
这不起作用。它说:“json ["results"][[1]][[1]] 中的错误:下标越界”
Citzy<-c("Leicester, United Kingdom")
do.call(rbind,lapply(as.character(Citzy),geo.dsk))
我认为错误是因为它找不到城市。所以我希望代码忽略它并继续运行。我该怎么做呢?任何帮助将不胜感激!
【问题讨论】: