关闭

计算两个坐标之间的距离

标签: 经度维度坐标距离
154人阅读 评论(0) 收藏 举报
分类:
private const double EARTH_RADIUS = 6378.137;  
private static double rad(double d)  
{  
   return d * Math.PI / 180.0;  
}  

  

/**

*double lat1, 第一个坐标纬度

*double lng1第一个坐标经度

*double lat2, 第二个坐标纬度

*double lng2第二个坐标经度

*/

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;  
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:64745次
    • 积分:2278
    • 等级:
    • 排名:第16472名
    • 原创:161篇
    • 转载:29篇
    • 译文:0篇
    • 评论:13条
    最新评论