Maison >Java >javaDidacticiel >Comment calculer la distance entre deux points en utilisant la latitude et la 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!