Calcul de l'écart de distance entre les géocoordonnées
En essayant de calculer la distance entre les géocoordonnées, il a été observé que les résultats obtenus diffèrent de ceux générés par d'autres applications. La méthode de calcul employée en C# :
public static double Calculate(double sLatitude,double sLongitude, double eLatitude, double eLongitude) { ... }
est basée sur la formule Haversine. Cependant, les résultats donnent une moyenne de 3,3 milles contre les 3,5 milles obtenus par d'autres applications.
Cause fondamentale de l'écart
Il est postulé que l'écart ne peut pas être attribué à la méthode de calcul elle-même mais plutôt aux détails de mise en œuvre.
Potentiel Solution
Pour un calcul de distance plus précis, envisagez d'utiliser la classe GeoCoordonnée introduite dans .NET Framework 4. Cette classe fournit la méthode GetDistanceTo, qui calcule directement la distance entre deux objets GeoCoordonnée :
// Create GeoCoordinate objects var sCoord = new GeoCoordinate(sLatitude, sLongitude); var eCoord = new GeoCoordinate(eLatitude, eLongitude); // Calculate distance in meters using GetDistanceTo method var distanceMeters = sCoord.GetDistanceTo(eCoord); // Convert distance from meters to miles (if desired) var distanceMiles = distanceMeters / 1609.34;
Remarque : N'oubliez pas d'ajouter une référence à l'espace de noms System.Device.
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!