【发布时间】:2015-08-07 18:52:20
【问题描述】:
我编写了一个脚本来使用 R 和 Google 地图对地址列表进行地理编码,但它超过了 Google 每秒 10 次查询的速度限制。我想把这个速度减慢到每秒 5 个查询。
我的函数构造 URL,然后我使用 do.call、rbind 和 lapply 调用函数来创建我的地理编码数据集。
geoc <- function(address){
out <- tryCatch({
url <- "http://maps.google.com/maps/api/geocode/json"
response <- GET(url,query=list(sensor="FALSE",address1=address))
json <- fromJSON(content(response,type="text"))
loc <- json$results[[1]]$geometry$location
return(c(address1=address, long=loc$lng, lat=loc$lat))
})
return(out)
}
result <- do.call(rbind,lapply(as.character(sample$location),geoc))
有没有办法把这个速度减慢到每秒大约 5 个查询?如果我一次只对 5 或 10 个进行地理编码,它会很好用,但那里的任何东西都会引发 Google 错误。
谢谢!
【问题讨论】:
-
也许将 Sys.sleep(0.2) 添加到您的函数中会起作用?
-
像魅力一样工作,谢谢 CactusWoman!
标签: r google-maps