Pregunta

Dada la latitud y la longitud, ¿cuál es la forma más fácil de encontrar el nombre de la ciudad y el código postal estadounidense de esa ubicación?

(Esto es similar a https://stackoverflow.com/questions/23572/latitude-longitude-database, excepto que quiero convertir en la dirección opuesta).


Pregunta relacionada: Obtener la dirección postal en el par lat/long

¿Fue útil?

Solución

Este es el servicio web al que llamar.http://developer.yahoo.com/search/local/V2/localSearch.html

Este sitio tiene buenos servicios web, pero no es exactamente lo que estás pidiendo aquí.http://www.usps.com/webtools/

Otros consejos

Cualquiera de los servicios en línea mencionados y sus competidores ofrecen "codificación geográfica inversa" que hace lo que usted pide: convertir las coordenadas lon/lat en una dirección postal de algún tipo.

Si solo necesita los códigos postales y/o las ciudades, entonces obtendría la base de datos de códigos postales y la base de datos de áreas urbanas de la Oficina del Censo de EE. UU., que es GRATUITA (pagada con el dinero de sus impuestos). http://www.census.gov/geo/www/cob/zt_metadata.html.

A partir de ahí, puede crear su propio algoritmo de búsqueda para los datos espaciales o utilizar una de las bases de datos espaciales como Microsoft SQL Server, PostGIS, Oracle Spatial, ArcSDE, etc.

Actualizar:Los datos del Censo de 2010 se pueden encontrar en:http://www2.census.gov/census_2010/

Tienes dos opciones principales:

Utilice un servicio de geocodificación inversa

  • Google sólo se puede utilizar junto con un mapa de Google integrado en la misma página, por lo que no lo recomiendo a menos que eso sea lo que estés haciendo.
  • Yahoo tiene uno bueno, mira http://developer.yahoo.com/search/local/V3/localSearch.html
  • No he usado OpenStreetMap.Sus mapas parecen muy detallados y completos, y siempre están mejorando, pero me preocuparía la latencia y la confiabilidad, y si los datos de sus direcciones están completos (los datos de las direcciones no son visibles directamente en un mapa, y OpenStreetMap es principalmente un mapa interactivo). ).

Utilice un mapa de los códigos postales

El Censo de EE.UU. publica un mapa de códigos postales de EE.UU. aquí.Lo construyen a partir de su unidad estadística más pequeña, un bloque censal, que en la mayoría de los casos corresponde a un bloque de ciudad.Para cada bloque, encuentran qué código postal es más común en ese bloque (la mayoría de los bloques tienen solo un código postal, pero los bloques cerca del borde entre códigos postales pueden tener más de uno).Luego agregan todos los bloques con un código postal determinado en una sola área llamada Área de tabulación de códigos postales.Publican un mapa de esas áreas en formato de archivo de forma ESRI.

Lo sé porque escribí una biblioteca Java y un servicio web que (entre otras cosas) usa este mapa para devolver el código postal para una latitud y longitud determinadas.Es un producto comercial, por lo que no será para todos, pero es rápido, fácil de usar y resuelve este problema específico sin una API.Puedes leer sobre este producto aquí:

http://askgeo.com/database/UsZcta2010

Y sobre todas sus ofertas geográficas aquí:

http://askgeo.com

A diferencia de las soluciones de codificación geográfica inversa, que sólo están disponibles como API web porque ejecutar su propio servicio sería extremadamente difícil, puede ejecutar esta biblioteca en su propio servidor y no depender de un recurso externo.

Si el volumen de llamadas al servicio aumenta demasiado, definitivamente debería considerar obtener su propio conjunto de datos postales.En la mayoría de los casos, eso le proporcionará toda la información que necesita, y existen muchas herramientas de base de datos para indexar datos de ubicación (es decir,PostGIS para PostgreSQL).

Puede comprar una suscripción bastante económica a códigos postales con información de latitud y longitud aquí: http://www.zipcodedownload.com/

O la geocodificación inversa de Google

enlace

http://maps.google.com/maps/geo?output=xml&q={0},{1}&key={2}&sensor=true&oe=utf8

donde 0 es la latitud 1 es la longitud

Otro proveedor de codificación geográfica inversa que aún no aparece aquí es Abrir mapa de calles:puedes usar su nominatim servicio de búsqueda.

OSM tiene la ventaja (¿potencialmente?) adicional de ser completamente editable por el usuario (tipo wiki) y, por lo tanto, tener un esquema de licencia muy liberal para todos estos datos.Piense en esto de los datos de mapas de código abierto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top