1 private static double rads(double d)
2 {
3 return d*Math.PI/180.0;
4 }
5
6 private const double EarihRadius = 6378.137;
7
8 private static double GetDistances(double lat1, double lng1, double lat2, double lng2)
9 {
10 var radLat1 = rads(lat1);
11 var radLat2 = rads(lat2);
12 var lat = radLat1 - radLat2;
13 var lng = rads(lng1) - rads(lng2);
14 var s = 2*
15 Math.Asin(
16 Math.Sqrt(Math.Pow(Math.Sin(lat/2), 2) +
17 Math.Cos(radLat1)*Math.Cos(radLat2)*Math.Pow(Math.Sin(lng/2), 2)));
18 s = s*EarihRadius;
19 return Math.Round(s*10000)/10000;
20 }
21
22
23 ///
24 var c = GetDistances( 39.90408611111111,116.29571388888888, 39.9061185, 116.297728);
25 Console.WriteLine(c);