Is there a way to programmatically determine what School District a given physical street address in the US is tied to?
1 Answers
The US Census Bureau coordinates with local school districts from each state to understand boundaries along with any changes. This information is published every other year by the Census Bureau itself in their "Tiger" data:
http://www.census.gov/did/www/schooldistricts/data/boundaries.html
(A relatively easy way to read the data is using PostGIS under PostgreSQL)
But before all of that, you need to make sure you're working with a correct address. The reason is that the address may not even exist at all or may be formatted incorrectly such that you are unable to determine a match. Furthermore, if the ZIP Code is wrong or street information is misspelled, or the person accidentally reversed the "North" or "South" part of an address, e.g. 123 North Main Street, that could put the coordinate in the wrong school district. So as a precursor to running your addresses through PostGIS, you'll definitely want to look at using an address verification service to make sure you've got good data to start with. (Full disclosure: I'm the founder of SmartyStreets, we do address verification.)

- 1,048,767
- 296
- 4,058
- 3,343

- 5,207
- 32
- 31
-
This is the only approach I could find as well. I'm getting geocoding results from Google Maps, so I can compare the lat-lng to the polygons defined in the Census Bureau shapefiles. PostGIS seems a bit heavy for my needs, so I'm just gonna build a couple custom DB tables to store the info. – Adam Levy Apr 15 '12 at 02:20
-
One thing worth mentioning is that automated access (without a human looking at a map with each result) is against Google Map's TOS. So you may want to consider that in your application design. There are a number of providers that can map an address to lat/lon coordinate (including SmartyStreets) – Jonathan Oliver Apr 15 '12 at 17:18
-
Definitely true for Google's Geocoding service. However, I didn't see the same restriction on their Places API. Instead, it seems to require that you place an official "Powered by Google" type attribution on the page. I'll re-review this, of course, before proceeding. SmartyStreets (or another service) might also be an option for me. Hint: it would be a sure-fire deal if you could include the School District in the results :) – Adam Levy Apr 16 '12 at 01:33