Oblicz odległość w (x, y) między dwoma punktami GPS

Szukam płynnego sposobu obliczenia odległości między dwoma punktami GPS, więc otrzymuję wynik w rodzaju: „Musisz iść x metrów w górę i y metrów w lewo - więc mogę pracować z układem współrzędnych 2d, gdzie mam swoją pozycję jako (0,0), a pozostałe pozycje pokazują odległość w (x, y) w metrach od mojej pozycji.

Moim pomysłem było obliczenie odległości między punktami za pomocą formuły haversine. (Zwraca moją przeciwprostokątną)

Oprócz tego obliczam obciążenie między tymi dwoma punktami. To moja alfa.

Mając te dwie wartości, chciałem użyć podstawowych funkcji trygonometrii, aby rozwiązać mój problem.

Próbowałem więc obliczyć:catheti_1 = sin(alpha) * hypotenuse, catheti_2 = cos(alpha) * hypotenuse.

Może robię coś złego, ale moje wyniki są w tej chwili bezużyteczne.

Więc moje pytanie brzmi: jak mogę obliczyć odległość w kierunku xiy między dwoma punktami GPS?

Obliczam alfa w następującej procedurze:

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

questionAnswers(2)

yourAnswerToTheQuestion