Maison > Java > javaDidacticiel > Comment calculer la distance et créer des cadres de délimitation à l'aide de points de latitude-longitude en Java ?

Comment calculer la distance et créer des cadres de délimitation à l'aide de points de latitude-longitude en Java ?

Barbara Streisand
Libérer: 2024-11-02 04:30:29
original
297 Les gens l'ont consulté

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

Calcul de la distance et des cadres de délimitation à l'aide de points de latitude-longitude en Java

Cette question répond à la nécessité de mesurer la distance entre deux points et de créer une boîte englobante autour du premier point, en considérant une distance donnée dans les directions nord et est. Pour y parvenir, nous devons utiliser la formule de la distance orthodromique, également connue sous le nom de formule de Haversine. Cette formule calcule avec précision les distances sur une Terre sphérique.

Vous trouverez ci-dessous une implémentation Java de la formule Haversine :

<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>
Copier après la connexion

Une fois la distance entre les deux points calculée, nous pouvons déterminer les coordonnées du coin supérieur droit du cadre de délimitation en ajoutant la distance donnée à la latitude et à la longitude du premier point.

Exemple :

Étant donné le point de départ (37.7749, -122.4194) et une distance de 0,5 miles, le coin supérieur droit du cadre de délimitation serait calculé comme suit :

<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>
Copier après la connexion

Le cadre de délimitation résultant serait défini par les coordonnées : (37.7749, -122.4194) , -122.4194) et (lat, lng).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal