與Mapquest服務的方向API合作,繪製上千使用GGPLOT2路線的R.的R - 矢量化一個JSON調用
Basic代碼理論:有結束位置的列表和一個起始位置。對於每個結束位置,調用fromJSON都會返回Mapquest中的路由座標。從那裏,已經向ggplot2的geom_path geom矢量化了座標的分配(在列表中讀作列表)。
現在,在~1200條記錄的位置集上運行這需要大約4分鐘。我很想把它弄下來。任何關於如何將來自JSON的響應矢量化(返回列表清單)?
Windows 7中,64位,R 2.14.2
庫:plyr,GGPLOT2,rjson,mapproj,XML
k = 0
start_loc = "263+NORTH+CENTER+ST.,+MESA+ARIZ."
end_loc = funder_trunc[,length(funder_trunc)]
route_urls = paste(mapquest_baseurl, "&from=", start_loc, "&to=", end_loc, "&ambiguities=ignore", sep="")
for (n in route_urls) {
route_legs = fromJSON(file = url(n))$route$legs[[1]]$maneuvers
lats = unlist(lapply(route_legs, function(x) return(x$startPoint[[2]])))
lngs = unlist(lapply(route_legs, function(x) return(x$startPoint[[1]])))
frame = data.frame(cbind(lngs, lats))
path_added = geom_path(aes(lngs, lats), data = frame)
p = p + path_added
k = k + 1
print(paste("Processed ", k, " of ", nrow(funder_trunc), " records in set.", sep=""))
}
'庫(並行)'和一個合適的後端? – Chase 2012-03-29 21:34:33