Heim > Java > javaLernprogramm > Hauptteil

Wie berechnet man in Java Entfernungen und erstellt Begrenzungsrahmen mithilfe von Breiten- und Längengradpunkten?

Barbara Streisand
Freigeben: 2024-11-02 04:30:29
Original
187 Leute haben es durchsucht

How do you calculate distance and create bounding boxes using latitude-longitude points in Java?

Berechnung von Entfernungen und Begrenzungsrahmen mithilfe von Breiten- und Längengradpunkten in Java

Diese Frage befasst sich mit der Notwendigkeit, die Entfernung zwischen zwei Punkten zu messen und zu erstellen ein Begrenzungsrahmen um den ersten Punkt unter Berücksichtigung einer bestimmten Entfernung sowohl in Nord- als auch in Ostrichtung. Um dies zu erreichen, müssen wir die Großkreisentfernungsformel verwenden, die auch als Haversine-Formel bekannt ist. Diese Formel berechnet Entfernungen auf einer kugelförmigen Erde genau.

Unten ist eine Java-Implementierung der Haversine-Formel:

<code class="java">public static double distFrom(double lat1, double lng1, double lat2, double lng2) {
    double earthRadius = 3958.75; // miles (or 6371.0 kilometers)
    double dLat = Math.toRadians(lat2 - lat1);
    double dLng = Math.toRadians(lng2 - lng1);
    double sindLat = Math.sin(dLat / 2);
    double sindLng = Math.sin(dLng / 2);
    double a = Math.pow(sindLat, 2) + Math.pow(sindLng, 2)
            * Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2));
    double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
    double dist = earthRadius * c;

    return dist;
}</code>
Nach dem Login kopieren

Sobald die Entfernung zwischen den beiden Punkten berechnet ist, können wir die Koordinaten bestimmen der oberen rechten Ecke des Begrenzungsrahmens, indem der angegebene Abstand zum Breiten- und Längengrad des ersten Punkts addiert wird.

Beispiel:

Angegebener Startpunkt (37,7749, -122,4194) und einer Entfernung von 0,5 Meilen würde die obere rechte Ecke des Begrenzungsrahmens wie folgt berechnet:

<code class="java">double lat = 37.7749 + 0.009045; // Calculated using the Haversine formula
double lng = -122.4194 + 0.012990; // Calculated using the Haversine formula</code>
Nach dem Login kopieren

Der resultierende Begrenzungsrahmen würde durch die Koordinaten definiert: (37,7749 , -122,4194) und (lat, lng).

Das obige ist der detaillierte Inhalt vonWie berechnet man in Java Entfernungen und erstellt Begrenzungsrahmen mithilfe von Breiten- und Längengradpunkten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!