//计算两个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};
}
验证网址: