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;
}