Necesito eso mismo, tengo un punto (lat,long), dado por el usuario, y tengo que buscar en la base de datos sitios cercanos a esa coordenada.
He encontrado 3 soluciones, aunque necesito aclaracion:
1. Un grado de longitud son 111,11 km, y uno de latitud son 113,3km.
Asi seria facil cotejar los datos de mysql para encontrar cercanos, pero encontre que no es muy fiable.
2. Usando la formula de haversine, usandola en php o javascript, aunque el problema que veo es el exceso de calculos que debo realizar en el caso de tener 10.000 registros en la tabla.
3. He encontrado una formula en este foro dada por Freedatos, es la siguiente:
Código PHP:
Ver original
$query = sprintf("SELECT *, ( 3959 * acos( cos( radians('%s') ) * cos( radians( latitud ) ) * cos( radians( longitud ) - radians('%s') ) + sin( radians('%s') ) * sin( radians( latitud ) ) ) ) AS distance FROM deinteres HAVING distance < '%s' ORDER BY distance",
El problema aqui es que no se usar tanto mysql como para entenderla del todo, y por ello no se si sobrecarga igual ke la formula de haversine. E imagino que solo debo incluir latitud y longitud del punto que me dan,y "deinteres"sea la tabla, peor no se donde lee lat y lang de esa tabla.
Espero me puedan ayudar, poruqe ando loco.Gracias