2012-07-01 28 views
5

Tengo una gran colección de imágenes con ubicaciones GPS, codificadas como coordenadas lat/lon, principalmente en Los Ángeles. Me gustaría convertir estos a (1) códigos postales y (2) nombres de barrio. ¿Hay servicios web gratuitos o bases de datos para hacerlo?Convertir lat/lon a código postal/nombre del barrio

Lo mejor que se me ocurre hasta ahora es raspar los polígonos del vecindario desde el LA times page y tratar de averiguar en qué polígono se encuentran cada coordenada. Sin embargo, esto podría ser bastante trabajo, y no todas mis coordenadas están en LA. En cuanto a los códigos postales, este 2004 database es lo mejor que puedo encontrar, sin embargo, los códigos postales están codificados como coordenadas únicas en lugar de polígono. Así que lo mejor que puedo hacer es encontrar la distancia mínima desde una determinada coordenada a las coordenadas de código postal dadas, lo cual no es óptimo.

Tenía la impresión de que google-maps o open-street-maps deberían poder hacer esto (ya que parecen 'saber' exactamente dónde está cada vecindario y código postal), sin embargo, no puedo encontrar ninguna API para hacer las búsquedas/consultas.

Respuesta

12

Ahora puede hacer esto directamente dentro de R gracias al impresionante paquete ggmap.

Al igual que otros mencionan, podrás geocodificación inversa utilizando la API de Google Maps (y, por tanto, limitado a 2.500 consultas diarias), pero es tan simple como:

library("ggmap") 

# generate a single example address 
lonlat_sample <- as.numeric(geocode("the hollyood bowl")) 
lonlat_sample # note the order is longitude, latitiude 

res <- revgeocode(lonlat_sample, output="more") 
# can then access zip and neighborhood where populated 
res$postal_code 
res$neighborhood 
+0

no da barrio! –

1

Usa Reverse Geocoding para convertir tu lat/lon a direcciones. Sin embargo, tiene un límite en el número de consultas por día.

0

Prueba con esto:

http://www.usnaviguide.com/zip.htm

Hay algún límite en cuanto al número de consultas por día se puede hacer en el sitio, pero también venden la base de datos completa, que cambia cada pocos meses. Disculpe que no conozco ningún recurso gratuito.

1

Aquí hay un buen blog post con ejemplos de cómo geocodificar e invertir geocodificación utilizando google-maps.

0

Como han sugerido otros, geocodificarlos en la dirección de la calle debería funcionar bien para el código postal. No estoy muy seguro acerca del vecindario, ya que es posible que tenga que ver si el número de la calle es par/impar para ver si se encuentra a qué lado de la calle determina el vecindario.

Una forma alternativa es preparar la característica del polígono GIS (por ejemplo, el archivo de forma ESRI), probar cada punto contra este conjunto de polígonos ver con cuál se cruza.

código postal es muy directo, puede descargar el archivo de forma del censo.

http://www.census.gov/cgi-bin/geo/shapefiles2010/main

barrio es más difícil asegurar que, el. En otra parte de los EE. UU. Tuve que crear mi archivo de forma combinando definiciones del gobierno municipal, el sitio web de bienes raíces, el periódico, etc. para que pareciera lo que las personas piensan que es el vecindario de la ciudad sin superposición o brecha. Puede tomar algún tiempo componer dicho conjunto de polígonos. puede censar el "grupo de bloques" del censo, o incluso el "bloque" del censo de la página anterior y combinarlos

Una vez que haya preparado las características del polígono, hay un par de herramientas GIS en diferentes entornos (ejecutable independiente, programa GUI, c/python/sql etc. API, probablemente R también, para hacer la intersección de polígonos y puntos.

Cuestiones relacionadas