基本信息
源码名称:计算两组经纬度之间的距离,精确到米
源码大小:0.95KB
文件格式:.c
开发语言:C/C++
更新时间:2021-06-02
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 5 元 
   源码介绍

计算两点位置的距离,返回两点的距离,单位:米,误差小于0.2米
<param name="lat1">第一点纬度</param>
<param name="lng1">第一点经度</param>
<param name="lat2">第二点纬度</param>
<param name="lng2">第二点经度</param>
double GetDistanceByLatLng(double lat1, double lng1, double lat2, double lng2)


#define MATH_PI                 3.1415926
#define EARTH_RADIUS            6378137        /*地球近似半径m*/

static double math_radian(double d)
{
    return d * MATH_PI / 180.0;
}

double GetDistanceByLatLng(double lat1, double lng1, double lat2, double lng2)
{
    double radLat1 = math_radian(lat1);
    double radLng1 = math_radian(lng1);
    double radLat2 = math_radian(lat2);
    double radLng2 = math_radian(lng2);
    double a = radLat1 - radLat2;
    double b = radLng1 - radLng2;
    double result = 2 * asin(sqrt(pow(sin(a / 2), 2) cos(radLat1) * cos(radLat2) * pow(sin(b / 2), 2))) * EARTH_RADIUS;
    return result;
}