आप इसे ऑनलाइन API के बजाय स्थानीय रूप से कर सकते हैं। R के साथ एक समाधान: संयुक्त राज्य अमेरिका के लिए जनगणना सीमा डेटा TIGER के माध्यम से जनगणना पर उपलब्ध है ; यदि आप अमेरिका के बारे में सोच रहे हैं तो आप अमेरिकी राज्यों को डाउनलोड कर सकते हैं और ट्रैक्ट प्राप्त करने के लिए एक फ़ंक्शन का उपयोग कर सकते हैं। उदाहरण के लिए, कैलिफ़ोर्निया और एक यादृच्छिक (या यादृच्छिक-ईश) बिंदु का उपयोग करना:
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)
यह काम करता है, लेकिन मेरे मैक पर 5 सेकंड लगते हैं, जो शायद बहुत अधिक होगा यदि आप इसमें से बहुत कुछ करने जा रहे हैं; मुझे लगता है कि किसी को जल्द ही एक PostGIS समाधान के साथ तौलना होगा जो एक लाख गुना तेज होगा ...