Calcul de la distance entre deux points à l'aide de la latitude et de la longitude
Pour calculer avec précision la distance entre deux points en fonction de leur latitude et de leur longitude, il est crucial considérer la courbure de la surface de la Terre. La méthode Haversine, une formule bien connue, corrige cette courbure et fournit des résultats précis.
Code de Dommer
Le code de Dommer utilise la formule Haversine pour calculer la distance. Cependant, il ne tient pas compte des différences de hauteur entre les deux points.
Mise en œuvre recommandée
Pour les traces GPS ou les applications où l'altitude est un facteur, considérez ceci modifié mise en œuvre :
public static double distance(double lat1, double lat2, double lon1,
double lon2, double el1, double el2) {
final int R = 6371; // Radius of the earth
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
double height = el1 - el2;
distance = Math.pow(distance, 2) Math.pow(height, 2);
return Math.sqrt(distance);
}
Ce code intègre à la fois la formule Haversine et les différences de hauteur pour calculer avec précision la distance entre deux points.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3