通过地球上的两点经纬度计算物理距离,单位是米

double rad(double d)
{
   return d * M_PI / 180.0;
}
/**
 * 获取距离
 * @param lon1
 * @param lat1
 * @param lon2
 * @param lat2
 * @return
 */
double distance(double lon1,double lat1,double lon2, double lat2)
{
   double radLat1 = rad(lat1);
   double radLat2 = rad(lat2);
   double a = radLat1 - radLat2;
   double b = rad(lon1) - rad(lon2);
   double s = 2 * asin(sqrt(pow(sin(a/2),2)+cos(radLat1)*cos(radLat2)*pow(sin(b/2),2)));
   s = s * 6378137;   
   return s;
}
打赏
根据两点的经纬度计算距离C
Tagged on:     

发表评论