コード例 #1
0
ファイル: GeoPoint.cs プロジェクト: yxw027/GNSSer
        public GeoPoint(GaussCoordinate xyh, double a, double f)
        {
            try
            {
                //读取高斯平面坐标值,如果是未赋值对象则产生异常
                double x = xyh.x;
                double y = xyh.y;

                ellipsoid  = new ReferenceEllipsoid(a, f);
                gaussCoord = xyh;

                double B, L;
                Geodetic.xy_BL(x, y, out B, out L, xyh.BeltWidth, 0, ellipsoid.a, ellipsoid.f);
                geodeticCoord = new GeodeticCoordinate(B, L);

                dimension = 2;

                try
                {
                    //如果存在高程异常和正常高,则按此式计算大地高
                    double h = xyh.h;
                    if (!dHlIsNull)
                    {
                        geodeticCoord.H = h + dH;
                        double X, Y, Z;
                        Geodetic.BLH_XYZ(B, L, h + dH, out X, out Y, out Z, ellipsoid.a, ellipsoid.f);
                        spatialCoord = new SpatialRectCoordinate(X, Y, Z);
                        dimension    = 3;
                    }
                }
                catch { }
            }
            catch { }
        }
コード例 #2
0
ファイル: GeoPoint.cs プロジェクト: yxw027/GNSSer
        public GeoPoint(SpatialRectCoordinate XYZ, double a, double f)
        {
            try
            {
                //读取空间直角坐标值,如果未赋值则产生异常
                double X = XYZ.X;
                double Y = XYZ.Y;
                double Z = XYZ.Z;

                ellipsoid    = new ReferenceEllipsoid(a, f);
                spatialCoord = XYZ;

                double B, L, H;
                Geodetic.XYZ_BLH(X, Y, Z, out B, out L, out H, ellipsoid.a, ellipsoid.f);
                geodeticCoord = new GeodeticCoordinate(B, L, H);

                double x, y;
                Geodetic.BL_xy(geodeticCoord.B, geodeticCoord.L, out x, out y, ellipsoid.a, ellipsoid.f);
                gaussCoord = new GaussCoordinate(x, y);

                if (!dHlIsNull)
                {
                    gaussCoord.h = H - dH;
                }

                dimension = 3;
            }
            catch { }
        }
コード例 #3
0
ファイル: GeoPoint.cs プロジェクト: yxw027/GNSSer
        public GeoPoint(GeodeticCoordinate BLH, double a, double f)
        {
            try
            {
                //获取大地坐标,如果赋的值是空对象则会产生异常
                double B = BLH.B;
                double L = BLH.L;

                geodeticCoord = BLH;
                ellipsoid     = new ReferenceEllipsoid(a, f);

                double x, y;
                Geodetic.BL_xy(B, L, out x, out y, ellipsoid.a, ellipsoid.f);
                gaussCoord = new GaussCoordinate(x, y);

                dimension = 2;

                try
                {
                    //获取大地高,如果没有大地高,则产生异常,只取二维坐标
                    double H = BLH.H;

                    double X, Y, Z;

                    Geodetic.BLH_XYZ(B, L, H, out X, out Y, out Z, ellipsoid.a, ellipsoid.f);
                    spatialCoord = new SpatialRectCoordinate(X, Y, Z);

                    dimension = 3;
                }
                catch { }
            }
            catch { }
        }
コード例 #4
0
ファイル: GeoPoint.cs プロジェクト: yxw027/GNSSer
        public GeoPoint(double B, double L, double a, double f)
        {
            ellipsoid     = new ReferenceEllipsoid(a, f);
            geodeticCoord = new GeodeticCoordinate(B, L);

            double x, y;

            Geodetic.BL_xy(B, L, out x, out y, ellipsoid.a, ellipsoid.f);
            gaussCoord = new GaussCoordinate(x, y);

            dimension = 2;
        }
コード例 #5
0
ファイル: GeoPoints.cs プロジェクト: yxw027/GNSSer
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="xyh"></param>
        public void Add(GaussCoordinate xyh)
        {
            GeoPoint point = new GeoPoint(xyh);

            this.Add(point);
        }
コード例 #6
0
ファイル: GeoPoint.cs プロジェクト: yxw027/GNSSer
 public GeoPoint(GaussCoordinate xyh)
     : this(xyh, Default_a, Default_f)
 {
 }
コード例 #7
0
ファイル: GeoPoint.cs プロジェクト: yxw027/GNSSer
 public GeoPoint(GaussCoordinate xyh, ReferenceEllipsoid e)
     : this(xyh, e.a, e.f)
 {
 }