/// <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); }
/// <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; }