Maison >Java >javaDidacticiel >Comment calculer la distance entre deux points en utilisant la latitude et la longitude ?

Comment calculer la distance entre deux points en utilisant la latitude et la longitude ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-31 13:09:041038parcourir

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

Calcul de la distance entre deux points à l'aide de la latitude et de la longitude

Déterminer la distance entre deux points sur une carte est une tâche courante dans divers domaines, de la navigation au SIG. Une méthode pour calculer cette distance avec précision consiste à utiliser la formule Haversine, conçue spécifiquement pour travailler avec les coordonnées de latitude et de longitude.

Implémentation de la formule Haversine en Java

A l'implémentation précise de la formule Haversine en Java est présentée ci-dessous :

<code class="java">public static double distance(double lat1, double lon1, double lat2, double lon2) {
    final int R = 6371; // Radius of the earth in kilometers
    
    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
    
    return distance;
}</code>

Utilisation de la formule

Pour calculer la distance entre deux points de coordonnées (lat1, lon1 ) et (lat2, lon2), transmettez simplement ces valeurs comme paramètres à la méthode de distance. Le résultat est renvoyé en mètres.

Exemple :

<code class="java">double lat1 = 41.881832;
double lon1 = -87.623177;
double lat2 = 41.889809;
double lon2 = -87.621882;

double distance = distance(lat1, lon1, lat2, lon2);
System.out.println("Distance between the points: " + distance + " meters");</code>

Considérations sur l'exactitude

La précision du résultat dépend de la précision des coordonnées d’entrée. Il est essentiel de s'assurer que les valeurs de latitude et de longitude sont fournies dans le format correct et avec les unités appropriées (par exemple, degrés décimaux).

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!

Déclaration:
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