Пример #1
0
        public static BlhPoint Wgs72ToWgs84(BlhPoint pWgs72)
        {
            BlhPoint delta = GetDeltas(pWgs72.ɸ);

            BlhPoint res = new BlhPoint();
            res.Assign(pWgs72);

            res.Id = pWgs72.Id;
            res.B = pWgs72.B + delta.B;
            res.L = pWgs72.L + delta.L;
            res.H = pWgs72.H + delta.H;
            return res;
        }
Пример #2
0
        //Δφλ

        private static BlhPoint GetDeltas(double ɸ)
        {
            double Cosɸ = Math.Cos(ɸ);
            double Sinɸ = Math.Sin(ɸ);
            double Sin2ɸ = Math.Sin(2 * ɸ);

            BlhPoint deltas = new BlhPoint();
            deltas.ɸ = (4.5 * Cosɸ) / (a) + (Δf * Sin2ɸ);
            deltas.λ = Δλ;
            deltas.H = 4.5 * Sinɸ + a * Δf * Sinɸ * Sinɸ - Δa + Δr;

            return deltas;
        }
        public NehPoint GetNE(string Id, string B, string L, string H)
        {
            BlhPoint blhPoint = new BlhPoint();
            blhPoint.Id = Id;
            blhPoint.B = Angle.FromString(B, AngleUnits.Degrees);
            blhPoint.L = Angle.FromString(B, AngleUnits.Degrees);
            blhPoint.H = H.ToDouble();

            return GetNE(blhPoint);
        }
 public override PointBase FromWgs84(BlhPoint p)
 {
     double n, e;
     GetNE(p.B, p.L, out n, out e);
     var res = new NehPoint();
     res.Assign(p);
     res.N = n;
     res.E = e;
     return res;
 }
        public override BlhPoint ToWgs84(PointBase p)
        {
            double b, l;
            GetBL(p.Coord1.Value, p.Coord2.Value, out b, out l);

            var res = new BlhPoint();
            res.Assign(p);
            res.B = b;
            res.L = l;
            return res;
        }
        public NehPoint GetNE(BlhPoint pnt)
        {
            double n;
            double e;
            double b = pnt.B;
            double l = pnt.L;
            GetNE(b, l, out n, out e);

            NehPoint res = new NehPoint();
            res.Id = pnt.Id;
            res.N = n;
            res.E = e;
            res.H = pnt.H;

            return res;
        }
        public BlhPoint GetBL(NehPoint pnt)
        {
            double n = pnt.N;
            double e = pnt.E;
            double b;
            double l;
            GetBL(n, e, out b, out l);

            BlhPoint res = new BlhPoint();
            res.Id = pnt.Id;
            res.B = b;
            res.L = l;
            res.H = pnt.H;

            return res;
        }
Пример #8
0
        public BlhPoint GetBlh(XyzPoint p)
        {
            BlhPoint res = new BlhPoint();
            double rp = Calc.Dist(p.X, p.Y);


            res.Id = p.Id;

            double B0 = EstimateB(p.Z, rp, 0.0); //Przybliżona wartość B
            res.B = IterateB(p.Z, rp, B0); // B obliczone iteracyjnie - dokładne

            res.L = Math.Acos(p.X / rp);

            double sinB = Math.Sin(res.B);
            double rn = a / Math.Sqrt(1 - e2 * sinB * sinB);
            double DeltaR = rp - rn * Math.Cos(res.B);
            double DeltaZ = p.Z - rn * Math.Sin(res.B) + Delta(res.B);
            res.H = Calc.Dist(DeltaR, DeltaZ);
            if ((DeltaR < 0) || (DeltaZ < 0))
                res.H = -res.H;


            return res;
        }
Пример #9
0
        public XyzPoint GetXyz(BlhPoint p)
        {
            XyzPoint res = new XyzPoint();
            double rn = Rn(p.B);
            double rp = (rn + p.H) * Math.Cos(p.B);

            res.Id = p.Id;
            res.X = rp * Math.Cos(p.L);
            res.Y = rp * Math.Sin(p.L);
            res.Z = (rn * (1 - e2) + p.H) * Math.Sin(p.B);


            return res;
        }
Пример #10
0
        public static BlhPoint Wgs84ToWgs72(BlhPoint pWgs84)
        {
            BlhPoint delta = GetDeltas(pWgs84.ɸ);

            BlhPoint res = new BlhPoint();
            res.Assign(pWgs84);

            res.Id = pWgs84.Id;
            res.B = pWgs84.B - delta.B;
            res.L = pWgs84.L - delta.L;
            res.H = pWgs84.H - delta.H;
            return res;
        }
Пример #11
0
 public override PointBase FromWgs84(BlhPoint p)
 {
     return Wgs72ToWgs84(p);
 }
Пример #12
0
 public override PointBase FromWgs84(BlhPoint p)
 {
     var res = new BlhPoint();
     res.Assign(p);
     return res;
 }
Пример #13
0
 public override BlhPoint ToWgs84(PointBase p)
 {
     var res = new BlhPoint();
     res.Assign(p);
     return res;
 }
Пример #14
0
 public abstract PointBase FromWgs84(BlhPoint p);