Distanz zwischen zwei GPS-Koordinaten in Java berchenen

Um den Abstand zwischen zwei GPS-Koordinaten zu berechnen ist ein wenig Mathematik nötig. Man kann dafür zum Beispiel auf die Semiversus-Formel (eher bekannt unter dem englischen Namen Haversine formula) zurückgreifen.

In Java umgesetzt sieht eine entsprechende Funktion, die den Abstand zwischen zwei GPS-Koordinaten, gegeben durch Längen- und Breitengrad, in Kilometern berechnet wie folgt aus:

public static double distanceInKm(double lat1, double lon1, double lat2, double lon2) {
    int radius = 6371;

    double lat = Math.toRadians(lat2 - lat1);
    double lon = Math.toRadians(lon2- lon1);

    double a = Math.sin(lat / 2) * Math.sin(lat / 2) + Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) * Math.sin(lon / 2) * Math.sin(lon / 2);
    double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
    double d = radius * c;

    return Math.abs(d);
}

Kommentieren