首页 > 代码库 > .NET资料之-根据两点经纬度计算直线距离

.NET资料之-根据两点经纬度计算直线距离

最近做东西碰到要根据两点经纬度计算之间的直线距离,就网上找了查了下资料。因为这类接触的比较少,就直接找现成的代码了,没怎么研究。代码如下,作为记录。

private const double EARTH_RADIUS = 6378.137;//地球半径private static double rad(double d){   return d * Math.PI / 180.0;}public static double GetDistance(double lat1, double lng1, double lat2, double lng2){   double radLat1 = rad(lat1);   double radLat2 = rad(lat2);   double a = radLat1 - radLat2;   double b = rad(lng1) - rad(lng2);   double s = 2 * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(a/2),2) +    Math.Cos(radLat1)*Math.Cos(radLat2)*Math.Pow(Math.Sin(b/2),2)));   s = s * EARTH_RADIUS;   s = Math.Round(s * 10000) / 10000;   return s;}

  注意:这里返回的是公里,如果需要精确到米的话自己修改下或者乘个1000即可,大家都懂的吧。