/// <summary>
            /// 大地坐标到空间直角坐标
            /// </summary>
            /// <param name="BLH">大地坐标</param>
            /// <returns>直角坐标</returns>
            public _3D_Point Blh2Xyz(Geodetic_Point BLH)
            {
                double    W = Auxiliary.GetW(ep.data.e_2, BLH.Br);
                double    V = Auxiliary.GetV(ep.data.e2_2, BLH.Br);
                double    N = ep.data.a / W;
                _3D_Point p = new _3D_Point();

                p.X = (N + BLH.H) * Math.Cos(BLH.Br) * Math.Cos(BLH.Lr);
                p.Y = (N + BLH.H) * Math.Cos(BLH.Br) * Math.Sin(BLH.Lr);
                p.Z = (N * (1 - ep.data.e_2) + BLH.H) * Math.Sin(BLH.Br);
                return(p);
            }
Esempio n. 2
0
 /// <summary>
 /// 大地坐标到空间直角坐标
 /// </summary>
 /// <param name="BLH">大地坐标</param>
 /// <returns>直角坐标</returns>
 public _3D_Point Blh2Xyz(Geodetic_Point BLH)
 {
     double W = Auxiliary.GetW(ep.data.e_2, BLH.Br);
     double V = Auxiliary.GetV(ep.data.e2_2, BLH.Br);
     double N = ep.data.a / W;
     _3D_Point p = new _3D_Point();
     p.X = (N + BLH.H) * Math.Cos(BLH.Br) * Math.Cos(BLH.Lr);
     p.Y = (N + BLH.H) * Math.Cos(BLH.Br) * Math.Sin(BLH.Lr);
     p.Z = (N * (1 - ep.data.e_2) + BLH.H) * Math.Sin(BLH.Br);
     return p;
 }