由于地球是圆形的当纬度升高.经纬度的格子会变小,距离也会变小, 这里计算可能会存在误差
// 将经纬度转换为米
double degreesToDistance(const double& degrees, const double& latitude)
{
const double metersPerDegree = 111320; // 赤道上每度的米数
double latitudeConversionFactor = std::cos(latitude * PI / 180.0); // 转换系数,纬度越大越小
return degrees * metersPerDegree * latitudeConversionFactor; // 转换后的距离(米)
}
// 米 转为经纬度
double distancdToDegrees(const double& distanceInMeters, const double& latitude)
{
// 纬度越大,转换系数会越小
const double metersPerDegree = 111320; // 赤道上每度的米数
double latitudeConversionFactor = std::cos(latitude * PI / 180.0); // 转换系数,纬度越大越小
return distanceInMeters / (metersPerDegree * latitudeConversionFactor); // 转换后的度数
}
2240

被折叠的 条评论
为什么被折叠?



