大地坐标系转换为地心空间直角坐标系

void Blh2XYZ(double B, double L, double H, double *x, double *y, double *z)//B,L,H 大地坐标,单位是:度;X,Y,Z 地心空间直角坐标系,单位为:米
{  /*****大地坐标系转换为WGS84地心空间直角坐标系*****/
//大地坐标系转换为WGS84坐标系
B = B*PI / 180;
L = L*PI / 180;
double a = 6378137.0;
double b = 6356752.314;                  //a:长轴,b:短轴
double ee = (a*a - b*b) / (a*a);             // ee:e平方,e:偏心率
double w = sqrt(1 - ee*sin(B)*sin(B));
double N = a / w;


*x = (N + H)*cos(B)*cos(L);
*y = (N + H)*cos(B)*sin(L);
*z = (N - N*ee + H)*sin(B);
}

你可能感兴趣的:(算法)