Si no hace mucho os comenté por aquí cómo calcular la distancia entre dos puntos dadas sus coordenadas en MySQL (en ese artículo tenéis todo el tema del algoritmo para el cálculo más desarrollado, aquí vamos al grano), hoy vamos a ver cómo hacer una función que nos haga esta operación con Java.
La función recibe cuatro parámetros: las latitudes y longitudes de ambos puntos. Y devuelve un double con la distancia como resultado
public static double distanciaCoord(double lat1, double lng1, double lat2, double lng2) { //double radioTierra = 3958.75;//en millas double radioTierra = 6371;//en kilómetros double dLat = Math.toRadians(lat2 - lat1); double dLng = Math.toRadians(lng2 - lng1); double sindLat = Math.sin(dLat / 2); double sindLng = Math.sin(dLng / 2); double va1 = Math.pow(sindLat, 2) + Math.pow(sindLng, 2) * Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)); double va2 = 2 * Math.atan2(Math.sqrt(va1), Math.sqrt(1 - va1)); double distancia = radioTierra * va2; return distancia; }
Gracias!!!
la distancia que devuelves en que unidad de medida esta?
MIS DIESES. ME HAS SALVADO EL TFG