Heim  >  Artikel  >  Java  >  Wie berechnet man die Entfernung zwischen zwei Punkten anhand von Breitengrad, Längengrad und Höhe?

Wie berechnet man die Entfernung zwischen zwei Punkten anhand von Breitengrad, Längengrad und Höhe?

Linda Hamilton
Linda HamiltonOriginal
2024-11-02 04:18:30488Durchsuche

How to Calculate Distance Between Two Points Using Latitude, Longitude, and Altitude?

Berechnung des Abstands zwischen zwei Punkten anhand von Breiten- und Längengrad

Um den Abstand zwischen zwei Punkten anhand ihres Breiten- und Längengrads genau zu berechnen, ist dies von entscheidender Bedeutung die Krümmung der Erdoberfläche zu berücksichtigen. Die Haversine-Methode, eine bekannte Formel, berücksichtigt diese Krümmung und liefert präzise Ergebnisse.

Dommer-Code

Dommer-Code verwendet die Haversine-Formel, um den Abstand zu berechnen. Es berücksichtigt jedoch keine Höhenunterschiede zwischen den beiden Punkten.

Empfohlene Implementierung

Für GPS-Tracks oder Anwendungen, bei denen die Höhe eine Rolle spielt, sollten Sie dies als geändert betrachten Implementierung:

<code class="java">public static double distance(double lat1, double lat2, double lon1,
        double lon2, double el1, double el2) {

    final int R = 6371; // Radius of the earth
    
    double latDistance = Math.toRadians(lat2 - lat1);
    double lonDistance = Math.toRadians(lon2 - lon1);
    double a = Math.sin(latDistance / 2) * Math.sin(latDistance / 2)
            + Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2))
            * Math.sin(lonDistance / 2) * Math.sin(lonDistance / 2);
    double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
    double distance = R * c * 1000; // convert to meters

    double height = el1 - el2;

    distance = Math.pow(distance, 2) + Math.pow(height, 2);

    return Math.sqrt(distance);
}</code>

Dieser Code beinhaltet sowohl die Haversine-Formel als auch Höhenunterschiede, um den Abstand zwischen zwei Punkten genau zu berechnen.

Das obige ist der detaillierte Inhalt vonWie berechnet man die Entfernung zwischen zwei Punkten anhand von Breitengrad, Längengrad und Höhe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn