Beispiel #1
0
        /// <summary>
        /// 向数据库添加点数据
        /// </summary>
        public static bool ImportSFCLSData(DataTable dataTable, string className)
        {
            DataBase gdb = DataBase.OpenByURL("GDBP://MapGisLocal/Templates");
            //打开简单要素类
            SFeatureCls sfcls = gdb.GetXClass(XClsType.SFCls) as SFeatureCls;
            bool        op    = sfcls.Open(className, 0);

            GeoPoints pnts   = null;
            Dot3D     newdot = new Dot3D();
            //PntInfo pntInfo = new PntInfo();

            int i = 0;

            foreach (DataRow dr in dataTable.Rows)
            {
                double.TryParse(dr["x 坐标"].ToString(), out double x);
                double.TryParse(dr["y 坐标"].ToString(), out double y);
                //点要素坐标
                newdot.X = y;
                newdot.Y = x;
                newdot.Z = 0;
                pnts     = new GeoPoints();
                pnts.Append(newdot);

                Record rcd  = new Record();
                Fields Flds = sfcls.Fields;
                if (Flds == null)
                {
                    return(false);
                }

                PntInfo pntInfo = new PntInfo();
                //点参数
                pntInfo.LibID  = 0;
                pntInfo.SymID  = 1;
                pntInfo.Width  = 10;
                pntInfo.Height = 10;


                rcd.Fields = Flds;

                //设置属性字段的值
                rcd.set_FldVal(1, (i++).ToString());
                rcd.set_FldVal(2, dr["车牌"].ToString());
                string time = dr["时间"].ToString().Replace('T', ' ');
                rcd.set_FldVal(3, time);
                rcd.set_FldVal(4, time);
                rcd.set_FldVal(5, x);
                rcd.set_FldVal(6, y);

                //添加点要素
                long oid = sfcls.Append(pnts, rcd, pntInfo);
            }

            Debug.WriteLine("Done.");
            return(true);
        }
        public void DefineMatrix(Dot3D middle)
        {
            var sign = middle.X * A + middle.Y * B + middle.LocalZ * C + D;

            if (sign < 0)
            {
                A = 0 - A;
                B = 0 - B;
                C = 0 - C;
                D = 0 - D;
            }
        }
Beispiel #3
0
        static void Main()
        {
            Dot2D dot2D_1 = new Dot2D();

            dot2D_1.ShowCoordinates();

            Dot2D dot2D_2 = new Dot2D(2, -5);

            dot2D_2.ShowCoordinates();

            Dot3D dot3D_1 = new Dot3D();

            dot3D_1.ShowCoordinates();

            Dot2D dot3D_2 = new Dot3D(7, -2.5, -3.6);

            dot3D_2.ShowCoordinates();
        }
 public Cube3D InstantiateFromOppositeVertices(Dot3D a, Dot3D b)
 {
     throw new System.NotImplementedException();
 }
        public bool ShouldBeDraw(float source, Dot3D point)
        {
            var sign = point.X * A + point.Y * B + (point.LocalZ - source) * C;

            return(sign >= 0);
        }