Pregunta

Tengo una situación que es similar a lo que ocurre en un motor de búsqueda de empleo donde se escribe el código postal en el que está en busca de un trabajo y la aplicación devuelve puestos de trabajo en ese código postal, así como en los códigos postales que son 5, 10 , 15, 20 o 25 millas de ese código postal, dependiendo de las preferencias establecidas por el usuario.

¿Cómo calcular los lugares vecinos para un código postal?

¿Fue útil?

Solución

No sé si se puede contar con geonames.org a estar por la vida de su aplicación, pero se puede utilizar un servicio web como el de ellos para evitar reinventar la rueda.

http://www.geonames.org/export/web-services.html

Otros consejos

Es necesario obtener una lista de códigos postales con coordenadas de longitud / latitud asociados. Google que -. hay un montón de proveedores

A continuación, echar un vistazo a esta pregunta para un algoritmo de cómo calcular la distancia

No me calcularlo, me almacenado como una mesa fija en la base de datos (sólo para cambiar cuando la asignación de los códigos postales de los cambios en un país). Hacer una relación "is_neighbor_zip", que tiene pares (más pequeño, más grande). Para determinar si dos códigos son vecinos, comprobar en la tabla de par específico. Si desea que todas las cremalleras vecinos, que podría ser mejor para hacer la tabla simétrica.

Es necesario utilizar una base de datos GIS y pregunte por los códigos postales que están cerca de su ubicación actual.

No se puede tomar simplemente el número de código postal y aplicar algunos cálculos matemáticos para encontrar otros códigos postales cercanas. códigos postales no están dispersos geográficamente como códigos de área en los EE.UU., pero no son un sistema de coordenadas.

La única excepción es que los códigos postales + 4 son sub-secciones del código postal más grande. Se puede asumir que cualquier ZIP + 4 códigos que tienen el mismo código postal están cerca uno del otro.

Yo solía trabajar en la racionalización del manejo de una empresa código postal, he aquí algunas notas prácticas que hice:

códigos postales de prueba

Con suerte tiene otra información útil.

Siempre que se crea un código postal, geocode él (por ejemplo geocodificador API de Google, el ahorro de la latitud y logitude) entonces Google el formular haversine, esto va a calcular la distancia (en línea recta) a partir de un punto de referencia, que también podría ser geocodifique si se trata de una ciudad o código postal.

Para aclarar un poco más:

Cuando se va a recuperar los registros en función de su ubicación, es necesario comparar cada longitud y latitud decimales con un punto de referencia (sus usuarios código postal o el nombre de la ciudad geo-codificados)

Puede consultar:

SELECT * FROM photos p WHERE p.long < 60 AND p.long > 50 AND p.lat > -10 AND p.lat > 10

Para encontrar todas las fotos del Reino Unido, etc porque el Reino Unido es de entre 50 y 60 grados de longitud y latitud -10 + (que podría haber cambiado mucho con el lat, soy difusa en esto)

Si usted quiere encontrar la distancia a continuación, tendrá que google la fórmula haversine y enchufar sus valores de referencia.

Espero que esto aclare las cosas un poco más, dejar un comentario si necesita detalles

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