Calcular a distância em (x, y) entre dois pontos de GPS
Eu estou procurando uma maneira suave para calcular a distância entre dois pontos de GPS, então eu obtenho o resultado como: "Você tem que ir x metros para cima e y metros para a esquerda - então eu posso trabalhar com um sistema de coordenadas 2d, onde eu tenho minha posição como (0,0) e as outras posições estão mostrando a distância em (x, y) em metros da minha posição.
Minha ideia era calcular a distância entre os pontos usando a fórmula de haversine. (Isso retorna minha hipotenusa)
Além disso, estou calculando o rumo entre esses dois pontos. Este é meu alfa.
Com esses dois valores, eu queria usar funções básicas de trigonometria para resolver meu problema.
Então eu tentei calcular:catheti_1 = sin(alpha) * hypotenuse, catheti_2 = cos(alpha) * hypotenuse
.
Talvez eu esteja fazendo algo errado, mas meus resultados são inúteis no momento.
Então, minha pergunta é: Como posso calcular a distância na direção xey entre dois pontos de GPS?
Estou calculando alpha no seguinte procedimento:
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;
}