Calcula la distancia en (x, y) entre dos puntos GPS
Estoy buscando una manera suave de calcular la distancia entre dos puntos GPS, así que obtengo el resultado como: "Tienes que ir x metros hacia arriba y y metros hacia la izquierda, así puedo trabajar con un sistema de coordenadas 2D, donde tengo mi posición como (0,0) y las otras posiciones muestran la distancia en (x, y) en metros desde mi posición.
Mi idea fue calcular la distancia entre los puntos utilizando la fórmula de haversine. (Esto devuelve mi hipotenusa)
Además de eso, estoy calculando el rumbo entre estos dos puntos. Este es mi alfa.
Con estos dos valores, quería usar las funciones básicas de trigonometría para resolver mi problema.
Así que traté de calcular:catheti_1 = sin(alpha) * hypotenuse, catheti_2 = cos(alpha) * hypotenuse
.
Tal vez estoy haciendo algo mal, pero mis resultados son inútiles en este momento.
Entonces mi pregunta es: ¿Cómo puedo calcular la distancia en las direcciones x e y entre dos puntos GPS?
Estoy calculando alfa en el siguiente procedimiento:
public static double bearingTo(GPSBean point1, GPSBean point2) {
double lat1 = Math.toRadians(point1.latitude);
double lat2 = Math.toRadians(point2.latitude);
double lon1 = Math.toRadians(point1.longitude);
double lon2 = Math.toRadians(point2.longitude);
double deltaLong = lon2 - lon1;
double y = Math.sin(deltaLong) * Math.cos(lat2);
double x = Math.cos(lat1) * Math.sin(lat2) - Math.sin(lat1)
* Math.cos(lat2) * Math.cos(deltaLong);
double bearing = Math.atan2(y, x);
return (Math.toDegrees(bearing) + 360) % 360;
}