Llevo un par de días trabajando con coordenadas geográficas en un proyecto personal, por lo que voy a hablar del tema estos días.
Para saber qué distancia separa dos coordenadas recurrimos a la fórmula del Haversine, o fórmula del semiverseno. Delego la parte matemática teórica y vamos a la parte MySQL, que supongo que es lo que estabas buscando cuando llegaste aquí. Os dejo el código y una pequeña explicación paso a paso. La función requiere cuatro variables (latitud y longitud de cada uno de los puntos) y devuelve el resultado en kilómetros.
/*vamos a inicializar nuestras variables, en este caso con un valor constante pero en vuestro caso lo podéis hacer con datos sacados de una consulta Select*/ Set @Lat1 = 42.880501; Set @Lng1 = -8.545732; /*Son las coordenadas de la catedral de Santiago o eso me ha dicho DuckDuckGo*/ Set @Lat2 = 53.731951; Set @Lng2 = -6.877150; /*Como segundo punto he elegido una calle cualquiera en Kells, Irlanda*/ /*Y ahora aplicamos la función SQL Que nos devolverá la distancia en kilómetros*/ SELECT (acos(sin(radians(@Lat1)) * sin(radians(@Lat2)) + cos(radians(@Lat1)) * cos(radians(@Lat2)) * cos(radians(@Lng1) - radians(@Lng2))) * 6371) as distanciaKm; /*el resultado con estos datos es de 1212.8306071122186 kilómetros*/ /*Si quieres el resultado el millas cambia el valor 6371 en la función por 3959*/
Próximamente veremos como hacerlo este cálculo con Javascript, que es mucho más divertido.
Precioso o churro que sae na consulta. Pero non sería posible (e mais simple) o uso de coordenadas UTM?
Gracias Amigo,
me has salvado la vida