//计算两个gps点间的间距
GPS getDistanceByGPS( const double &lng1,const double &lat1, const double &lng2, const double &lat2)
{        
        double R = 6367000; // 地球的半径
        double x = (lng2 - lng1)*pi * R * cos((lat2+lat1)/2*pi/180)/180;
        double y = (lat2 - lat1) * pi * R / 180;
        return {x,y};
}
 

//已知原点坐标和距离,求当前点坐标

GPS getGPSByDistance(const double &lng, const double &lat, const double &x, const double &y)
{
        double R = 6367000; // 地球的半径
        double lng2, lat2;
        lat2 = y*180/pi/R + lat;
        lng2 = x *180/cos((lat2+lat)/2*pi/180)/pi/R+lng;
        return {lng2,lat2};
}
验证网址:

开发工具箱 - 经纬度坐标计算距离 (box3.cn)

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐