Szukam jakiejś bazy danych, która pozwoliłaby mi określić hrabstwo na podstawie istniejącego adresu w USA (składającego się z numeru, ulicy, miasta, kodu pocztowego i stan).
Oczywiście wymagałoby to jakiejś bazy danych zawierającej nazwy ulic i ich zakresów, miasto, powiat i stan, jednak nie udało mi się znaleźć niczego podobnego.
Byłbym wdzięczny za każdą pomoc. Dzięki!
Komentarze
- Może Google Maps / Places API, jeśli mają tę funkcję?
Odpowiedź
Obszar tabel kodów pocztowych 2010, dostarczony przez Census Bureau, w formacie tekstowym z numerem hrabstwa, w którym się znajduje, można znaleźć tutaj:
https://www.census.gov/geo/maps-data/data/zcta_rel_download.html
Można przekonwertować numer hrabstwa na jego właściwą nazwę zrobiono przy użyciu tej tekstowej bazy danych z Biura Spisu Ludności:
https://www.census.gov/geo/reference/codes/cou.html
Dostępna na rynku opcja, która obejmuje bezpłatne pobranie do użytku osobistego w formacie .xls, jest tutaj, zawiera nazwę hrabstwa i kod pocztowy:
http://www.unitedstateszipcodes.org/zip-code-database/
Komentarze
- Wygląda na to, że potrzebuję kodu ZCTA dla adresu, aby dostać się do numeru i nazwy hrabstwa z tymi tabelami, jednak mam tylko kod pocztowy adresu. Czego tu brakuje?
- Skrót do tabeli hrabstw jest lepszy niż ta odpowiedź. huduser.gov/portal/datasets/usps_crosswalk.html , ale to też nie działa, ponieważ niektóre suwaki przekraczają granice powiatów.
Odpowiedź
Census Geocoder może przeprowadzić to wyszukiwanie. Ta usługa ma również interfejs API, z którego możesz korzystać. Pomocna może być dokumentacja (PDF) . Na przykład to zapytanie :
zwraca
{ "result":{ "input":{ "address":{ "street":"740 Park Avenue", "city":"New York City", "state":"NY" }, "benchmark":{ "id":"9", "benchmarkName":"Public_AR_Census2010", "benchmarkDescription":"Public Address Ranges - Census 2010 Benchmark", "isDefault":false }, "vintage":{ "id":"910", "vintageName":"Census2010_Census2010", "vintageDescription":"Census2010 Vintage - Census2010 Benchmark", "isDefault":true } }, "addressMatches":[ { "matchedAddress":"740 Park Ave, NEW YORK, NY, 10021", "coordinates":{ "x":-73.96422, "y":40.770588 }, "tigerLine":{ "tigerLineId":"59657379", "side":"L" }, "addressComponents":{ "fromAddress":"736", "toAddress":"756", "preQualifier":"", "preDirection":"", "preType":"", "streetName":"Park", "suffixType":"Ave", "suffixDirection":"", "suffixQualifier":"", "city":"NEW YORK", "state":"NY", "zip":"10021" }, "geographies":{ "Census Blocks":[ { "BLKGRP":"2", "UR":"", "OID":210403969807785, "FUNCSTAT":"S", "STATE":"36", "AREAWATER":0, "NAME":"Block 2002", "SUFFIX":"", "LSADC":"BK", "CENTLON":"-073.9648786", "HU100":198, "LWBLKTYP":"L", "BLOCK":"2002", "BASENAME":"2002", "INTPTLAT":"+40.7711022", "POP100":375, "MTFCC":"G5040", "COUNTY":"061", "GEOID":"360610130002002", "CENTLAT":"+40.7711022", "INTPTLON":"-073.9648786", "AREALAND":13468, "OBJECTID":6660907, "TRACT":"013000" } ] } } ] } }
Odpowiedź
Czy znasz język Python? Biblioteka geopy w połączeniu z mapami Open Street i mapami Google wykonuje ogromną pracę. Bardzo łatwo jest przeanalizować tysiące adresów, tak jakbyś umieścił je w polu wyszukiwania Google Maps. Interfejs API udostępnia jednostki polityczne, takie jak kraj, stan i miasto. Jeśli chcesz, mogę udostępnić skrypt, który obsługuje arkusze Excela jako pliki wejściowe.