2011-07-05 14 views
6

Estoy buscando la mejor y más fácil manera de obtener el nombre del condado de los EE. UU. En el que reside una determinada ciudad de EE. UU. ¿No parece que hay una API sencilla disponible para una tarea (aparentemente simple)?¿Cuál es la mejor manera de buscar en el condado de los Estados Unidos donde reside una ciudad de los EE. UU.?

+0

Louisiana está dividida en parroquias y Alaska en municipios. Así que supongo que solo 48 de 50 son válidos en su pregunta –

+0

. Creo que está bien como una limitación teniendo en cuenta que mi atención se centra en Texas. – Cucumber2

+1

Debería necesitar una base de datos en cualquier caso. Entonces, creo que la pregunta debería ser "¿Qué tipo de base de datos/estructura de datos necesito?" – splash

Respuesta

7

Puede descargar una base de datos de libre disposición del condado de la ciudad/Información/código postal como este: http://www.unitedstateszipcodes.org/zip-code-database/ (sin necesidad de registrarse o de pago)

importación entero, o una subsección de la misma, en una tienda local persistente de datos (como una base de datos) y consultarlo siempre que lo necesite para buscar el condado de una ciudad

Nota: información del Condado ha desaparecido del archivo .csv vinculado originalmente desde esta respuesta fue publicada. Este enlace ya no contiene la información del condado: http://federalgovernmentzipcodes.us/free-zipcode-database.csv

+0

+1 excelente recurso – Matthew

+2

no tiene el condado en ella ... ¿por qué es esta la respuesta aceptada? – ladieu

+0

@ladieu: solía tener información del condado. El archivo debe haber sido actualizado y la información del condado cayó desde que me vinculé. Gracias por el aviso. Trataré de encontrar un mejor recurso para reemplazar el vinculado ... –

1

No va a ser fácil de usar funciones geoespaciales para esta tarea debido a la extraña forma de polígono de condados y las ubicaciones de los puntos de las ciudades.

Su mejor opción es hacer referencia a una base de datos de ciudades y sus respectivos condados, aunque no sé dónde podría encontrarla. ¿Quizás Texas publica uno?
CommonDataHub no contiene esta información.

+0

Este es prácticamente el problema que me estoy encontrando. Encontrar una referencia para esta información está resultando difícil. – Cucumber2

+1

@Downvoter, ¿te importa explicarlo? – Matthew

0

La forma más rápida y no evasiva podría ser utilizar una solicitud JSON/XML desde una API de geolocalización gratuita (se encuentra fácilmente en Google). De esta forma, no necesita crear/alojar su propia base de datos.

0

Aquí es un poco de código para agarrar programación el nombre de un condado de Estados Unidos dada una única ciudad de Estados Unidos/Estado mediante el API de Google Maps. Este código es lento/ineficiente y no tiene ningún manejo de errores. Sin embargo, ha funcionado de manera confiable para mí unir condados con una lista de ~ 1,000 ciudades.

#Set up googlemaps API 
import googlemaps 
google_maps = googlemaps.Client(key='API_KEY_GOES_HERE') 

#String of city/state 
address_string = 'Atlanta, GA' 

#Geocode 
location = google_maps.geocode(address_string) 

#Loop through the first dictionary within `location` and find the address component that contains the 'administrative_area_level_2' designator, which is the county level 
target_string = 'administrative_area_level_2' 
for item in location[0]['address_components']:  
    if target_string in item['types']: #Match target_string 
     county_name = item['long_name'] #Or 'short_name' 
     break #Break out once county is located 
    else: 
     #Some locations might not contain the expected information 
     pass 

Esto produce:

>>> county_name 
Fulton County 

Advertencias:

  1. código se romperá si google_maps.geocode() no se pasa una dirección válida
  2. ciertas direcciones no volverán datos correspondiente a 'administrative_area_level_2'
  3. esto do No se resuelve el problema de las ciudades de EE. UU. que abarcan varios condados. En cambio, creo que el API simplemente devuelve el condado asociado con la latitud/longitud única asociada con address_string
Cuestiones relacionadas