Esto es realmente una pregunta difícil. Usar una solución de geocodificación como GeoNames es probable que genere errores importantes en muchas consultas. La razón de esto es que GeoNames busca el registro en su base de datos que está más cerca de su punto de consulta y luego devuelve el código postal que tienen registrado para ese punto. Esto funciona muy bien cuando su punto de consulta está justo encima de un registro en su base de datos, pero puede dar lugar a errores de lo contrario. Por ejemplo, si su registro más cercano está a unas pocas cuadras de distancia en un código postal diferente, obtendrá la respuesta incorrecta.
mapas La oficina de censo de Estados Unidos ha creado de los códigos postales:
https://www.census.gov/geo/reference/zctas.html
favor ver sus notas en esa página.
También he trabajado en un proyecto que utiliza los mapas del Censo para proporcionar una API que devuelve el código postal para una latitud y longitud determinada. Es en:
http://askgeo.com
le proponemos una API web y una biblioteca de Java que se puede ejecutar en su propio servidor. La biblioteca tiene un excelente rendimiento. Dado que nuestro sitio ofrece información adicional que sólo el código postal, se puede leer acerca de nuestro servicio de código postal aquí:
http://askgeo.com/database/UsZcta2010
Y usted leer acerca de la documentación de la API de Web aquí:
http://askgeo.com/#web-api
La metodología de GeoNames es fundamentalmente defectuosa para este tipo de consulta. Si está buscando el polígono que contiene un punto de consulta determinado, necesita un mapa con los polígonos, y necesita un índice espacial para proporcionar búsquedas rápidas. GeoNames no tiene ninguno. AskGeo tiene ambos.
bases de datos son específicos código postal, país, sí; pero los códigos postales también son específicos del país (por ejemplo, EE. UU. no tiene el mismo formato de código postal que los Países Bajos o el Reino Unido). Tendrá que lidiar con esto de una forma u otra, si quiere usar los códigos postales. – Piskvor