La formule de calcul est la suivante :
illustrer:
1. La longitude et la latitude dans la formule sont exprimées en radians ;
2. Lat1 Lng1 représente respectivement la longitude et la latitude du point A, Lat2 Lng2 représente respectivement la longitude et la latitude du point B ;
3. a=Lng1 -Lng2 est la différence de latitude de deux points ; b=Lat1 - Lat2 est la différence de longitude de deux points ;
4. 6378,137 est le rayon de la Terre en kilomètres ;
La fonction d'implémentation c# est la suivante :
public double DistanceOfTwoPoints (double lat1, double lng1, double lat2, double lng2)
{
double radLng1 = lng1 * Math.PI / 180,0 ;
double radLng2 = lng2 * Math.PI / 180,0 ;
double a = radLng1 - radLng2 ;
double b = (lat1-lat2) * Math.PI / 180,0 ;
double s = 2 * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(a/2), 2) +
Math.Cos(radLng1) * Math.Cos(radLng2) * Math.Pow(Math.Sin(b/2), 2)))* 6378,137 ;
s = Math.Round(s * 10000) / 10000 ;
retourner s ;
}
Il a été réussi après vérification réelle (l'unité du résultat renvoyé est : kilomètres).