オンラインAPIの代わりにローカルで行うことができます。Rに関する1つのソリューション:米国の国勢調査境界データは、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秒かかります。これをたくさん行うとしたら、多すぎるでしょう。私は誰かが100万倍速いPostGISソリューションをすぐに検討するのではないかと思います...