Heim  >  Artikel  >  Java  >  Wie berechnet man Entfernung und Begrenzungsrahmenkoordinaten mithilfe von Breiten- und Längengrad in Java?

Wie berechnet man Entfernung und Begrenzungsrahmenkoordinaten mithilfe von Breiten- und Längengrad in Java?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-02 05:42:29519Durchsuche

How to Calculate Distance and Bounding Box Coordinates Using Latitude and Longitude in Java?

Berechnen von Entfernungen und Begrenzungsrahmenkoordinaten in Java mithilfe von Breiten-/Längenpunkten

Messen der Entfernung zwischen zwei Breiten- und Längengradpunkten und Erstellen einer Begrenzung Das Erstellen eines Rahmens um einen bestimmten Punkt ist eine häufige Aufgabe bei Kartierungs- und standortbasierten Anwendungen. Um diesem Bedarf gerecht zu werden, können Java-Entwickler die Haversine-Formel nutzen, um Großkreisabstände genau zu berechnen.

Entfernung berechnen

Die Haversine-Formel, eine mathematische Gleichung, kann präzise bestimmen der Abstand zwischen zwei Punkten auf der Erdoberfläche. Hier ist eine Java-Implementierung der 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>

Begrenzungsrahmen erstellen

Mit der berechneten Entfernung kann der Begrenzungsrahmen erstellt werden, indem die Punkte bestimmt werden, die nördlich liegen und östlich des angegebenen Punktes um die angegebene Entfernung. Der folgende Pseudocode demonstriert diesen Vorgang:

// Assuming distance is in miles

// Calculate North and East edges
northEdge = lat + (distance / 69);  // Divide by 69 to convert to degrees
eastEdge = lng + (distance / 53);   // Divide by 53 to convert to degrees

// Create bounding box coordinates
boundingBox = [lat, lng, northEdge, eastEdge]

Das obige ist der detaillierte Inhalt vonWie berechnet man Entfernung und Begrenzungsrahmenkoordinaten mithilfe von Breiten- und Längengrad in Java?. 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