온라인 API 대신 로컬로 할 수 있습니다. R에 대한 하나의 솔루션 : 미국에 대한 인구 조사 경계 데이터는 TIGER를 통해 census.gov에서 제공됩니다 . 미국에 대해 생각하고 있다면 미국 주를 다운로드하고 기능을 사용하여 지역을 얻을 수 있습니다. 예를 들어, 캘리포니아 및 임의 (또는 임의의) 지점을 사용하는 경우 :
library(maps)
library(maptools)
tractLookup <- function(x, y, state) {
pt <- SpatialPoints(data.frame(x = x, y = y))
overlay.pt <- overlay(pt, state) # what index number does pt fall inside?
return(census$TRACT[overlay.pt]) # give the Tract number from the census layer
}
사용해보십시오 :
california <- readShapePoly("~/Downloads/US_2000_Census_Tracts/tr06_d00_shp/tr06_d00.shp")
tractLookup(-123.123, 40.789, california)
올바른 0004를 제공합니다.
# Look at the map
plot(census)
map('state', c('California'), lwd = 2, col = 'green', add = F) # optional
points(-123.123, 40.789, col = 'red', lwd = 2)
이것은 효과가 있지만 내 Mac에서는 5 초가 걸립니다. 나는 누군가가 백만 배 더 빠른 PostGIS 솔루션으로 곧 무게를 낼 것으로 의심합니다 ...