我有一个包含1500个纬度/经度条目的data.frame。我需要将这些坐标映射到他们的邮政编码。有没有办法做到这一点除了一次一个地输入到geonames-type api?我希望R
中的一个包接收一个lat-lon组合,并为我的data.frame的每一行生成一个邮政编码。
答案 0 :(得分:0)
使用Open Streetmap API,您可以尝试
library(RCurl)
library(RJSONIO)
latlon2zip <- function(lat, lon) {
url <- sprintf("http://nominatim.openstreetmap.org/reverse?format=json&lat=%f&lon=%f&zoom=18&addressdetails=1", lat, lon)
res <- fromJSON(url)
return(res[["address"]][["postcode"]])
}
latlon2zip(lat=52.5487429714954, lon=-1.81602098644987)
要使用latlon2zip
中的transform
功能,请使用Vectorize
。