c++

计算两个经纬度之间的距离

数据结构与算法

Posted by YiMiTuMi on July 6, 2024

计算两个经纬度之间的距离

这里用大圆算法进行计算。

double rad(double d)
{
    return d * PI / 180.0;
}


//获取两点间经纬度距离 单位米
double GetDistance(double lat,double lon ,double lat1, double lng1)
{
    double radLat1 = rad(lat1);
    double radLat2 = rad(lat);
    double a = radLat1 - radLat2;
    double b = rad(lng1) - rad(lon);
    double s = 2 * asin(sqrt(abs(pow(sin(a / 2), 2) + cos(radLat1) * cos(radLat2) * pow(sin(b / 2), 2))));
    s = s * 6371.393;
    s = s * 1000;
    return s;
}

GetDistance 函数接受一个起点经纬度与终点经纬度,返回的单位是米(m)。