Tengo una base de datos poblada con aproximadamente 10k filas actualmente. Todos ellos tienen una longitud/latitud basada en el centro de un código postal. Encontré una consulta que ahora intento expandir, pero en general funciona bien hasta cierto punto. Sin embargo, en mi ejemplo a continuación, estoy tratando de encontrar cosas dentro de un radio de 25 millas, que en general parece funcionar en su mayor parte. La mayoría de mis resultados rinden dentro de los criterios de 25 millas, sin embargo, estoy recibiendo un puñado que están lejos de cualquier cosa desde 86 millas a 800 millas fuera de la marca.mySQL consulta de longitud y latitud para otras filas dentro del radio x milla
Ejemplo: Esta es mi centro de latitud/longitud: 37.2790669, -121,874722 = San Jose, CA Im consiguiendo resultados como: 33.016928, -116.846046 = San Diego, CA, que es de 355 millas de San José.
mi consulta actual se parece a:
SELECT *,(((acos(sin(($lat*pi()/180)) * sin((`latitude`*pi()/180))+cos(($lat*pi()/180))
* cos((`latitude`*pi()/180)) * cos((($lon - `longitude`)*pi()/180))))*180/pi())*60*1.1515)
AS `distance` FROM `geo_locations` HAVING `distance` <= 25 ORDER BY `distance` ASC"
contento de que funcionó para usted – Gordnfreeman
Gordnfreeman, ¿puede decirme qué significa "<25"? ¿Eso es 25 millas o kilómetros? ¿Y tengo otra pregunta para ti si no te importa entrar en una conversación rápida conmigo? – dcolumbus
¿Hay alguna manera en que podamos convertir esto fácilmente para usar KM's? Supongo que tiene algo que ver con el 3935 al comienzo de la consulta, pero no estoy seguro de qué hace. – joshhendo