コード例 #1
0
ファイル: XZDMCustom.cs プロジェクト: YB9527/CG
        /// <summary>
        /// 得到所有权 如果是村代码 只得到集体
        /// </summary>
        /// <param name="xzdm"></param>
        /// <returns></returns>
        public static IList <JTSYQ> GetSelectJTSYQ(XZDM xzdm)
        {
            string bm  = xzdm.DJZQDM;
            string sql = "";

            switch (bm.Length)
            {
            case 6:
                break;

            case 9:
                sql = " BM LIKE  '*" + bm + "*' And BM LIKE '*998'";
                break;

            case 12:
                sql = " BM LIKE  '*" + bm + "*' And BM LIKE '*00'";
                break;

            case 14:
                sql = " BM LIKE  '*" + bm.Insert(12, "JA000") + "*' ";
                break;
            }
            IList <JTSYQ> jtsyqs     = JTSYQCustom.GetMapJTSYQ(sql);
            IList <JTSYQ> jtsyqGroup = JTSYQCustom.GroupByZu(jtsyqs);

            if (Utils.CheckListExists(jtsyqGroup))
            {
                foreach (JTSYQ jtsyq in jtsyqGroup)
                {
                    jtsyq.XZDM = xzdm;
                }
            }
            return(jtsyqGroup);
        }
コード例 #2
0
ファイル: MapTablePagerPage.cs プロジェクト: YB9527/CG
        /// <summary>
        /// 表格单击
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public override void Table_SingleClick(object sender, MouseButtonEventArgs e)
        {
            GridControl         gridControl = sender as GridControl;
            GridColumn          column      = gridControl.CurrentColumn as GridColumn;
            MapTabDictoryCustom row         = gridControl.CurrentItem as MapTabDictoryCustom;

            if (column.VisibleIndex == objectIndex)
            {
            }
            //图形缩放
            var obj = gridControl.CurrentItem;

            if (obj == null)
            {
                return;
            }
            int      objectId = (int)row.Dic["OBJECTID"];
            IFeature feature  = featureDic[objectId];

            if (pLayer.Name == JTSYQCustom.JTSYQLayerName)
            {
                MapForm.CurrentJTSYQ = JTSYQCustom.FeaturesToJTSYQ(feature);
                MapForm.CurrentJTSYQ.MapTabDictoryCustom = row;
            }

            ArcGisUtils.axMapControl.Map.ClearSelection();
            ArcGisUtils.axMapControl.Map.SelectFeature(pLayer, feature);                          //第三个参数为是否只选中一个
            ArcGisUtils.axMapControl.Refresh(esriViewDrawPhase.esriViewGeoSelection, null, null); //选中要素高亮显示
            ArcGisUtils.axMapControl.ActiveView.Refresh();
        }
コード例 #3
0
        public void ExportZu_ZhiJieRenShenFengZhengMing(JTSYQ jtsyq, string saveDir)
        {
            //得到四至涉及单位

            /*string str = "510185047009JA00008".Replace("510185","");
             * var v = str.Insert(3, "-");
             * var v1 = v.Insert(7, "-");
             * var v2 = v1.Insert(10, "-");*/
            List <XZDM> xzdms = new List <XZDM>();

            foreach (JTSYQ tem in jtsyq.GroupJTSYQ)
            {
                xzdms.AddRange(JTSYQCustom.GetSZInXZDM(tem));
            }

            //得到行政代码表
            foreach (XZDM xzdm in xzdms)
            {
                Dictionary <string, XMLObject> ClazzDic = XMLRead.XmlToObjects(JTSYQCustom.XZDM_Reflect, true);
                var doc = WordRead.Read(JTSYQCustom.ZhiJieRenZhengMing);
                WordWrite.ReplaceText(doc, ClazzDic, xzdm);
                //查看是村不是组
                if (Utils.IsStrNull(xzdm.CunZu))
                {
                    WordWrite.SaveToFile(doc, saveDir + "/04指界人身份证明及指界委托书" + xzdm.Cun + ".doc");
                }
                else
                {
                    WordWrite.SaveToFile(doc, saveDir + "/04指界人身份证明及指界委托书/" + xzdm.CunZu + ".doc");
                }
            }
        }
コード例 #4
0
ファイル: JTSYQService.cs プロジェクト: YB9527/CG
        private List <MyAction> ExportCun_GongShiTuActions(IList <XZDM> cunXZDM, string bootDir)
        {
            List <MyAction> actions = new List <MyAction>();
            List <JTSYQ>    list    = new List <JTSYQ>();

            foreach (XZDM xzdm in cunXZDM)
            {
                Action action = new Action(() =>
                {
                    IList <JTSYQ> jtsyqs = JTSYQCustom.GetMapJTSYQ(" BM LIKE  '*" + xzdm.DJZQDM + "*'");
                    if (Utils.CheckListExists(jtsyqs))
                    {
                        xzdm.JTSYQS = jtsyqs;

                        string saveDir = bootDir + "/" + xzdm.Cun + "/";
                        JTSYQDao.ExportCun_GongShiTuActions(xzdm, saveDir);
                    }
                });
                MyAction myAction = new MyAction(action, xzdm.CunZu + "公示图");
                actions.Add(myAction);
            }


            return(actions);
        }
コード例 #5
0
ファイル: JTSYQService.cs プロジェクト: YB9527/CG
        public List <MyAction> ExportZu_ZhongDiTuActions(IList <XZDM> xzdms, string bootDir)
        {
            List <MyAction> actions = new List <MyAction>();
            List <JTSYQ>    list    = new List <JTSYQ>();

            foreach (XZDM xzdm in xzdms)
            {
                IList <JTSYQ> jtsyqs = XZDMCustom.GetSelectJTSYQ(xzdm);
                if (Utils.CheckListExists(jtsyqs))
                {
                    list.AddRange(jtsyqs);
                }
            }
            List <JTSYQ> list2 = new List <JTSYQ>();

            foreach (JTSYQ jtsyq in list)
            {
                list2.AddRange(jtsyq.GroupJTSYQ);
            }
            JTSYQCustom.SetJZD(list2);

            foreach (JTSYQ jtsyq in list)
            {
                XZDM   xzdm   = jtsyq.XZDM;
                Action action = new Action(() =>
                {
                    string saveDir = bootDir + xzdm.Cun + "/" + xzdm.Zu;
                    JTSYQDao.ExportZu_ZhongDiTu(jtsyq, saveDir);
                });
                MyAction myAction = new MyAction(action, xzdm.CunZu + "宗地图 ");
                actions.Add(myAction);
            }
            return(actions);
        }
コード例 #6
0
        public void ExportJZDTable(JTSYQ GroupJTSYQ, string dir)
        {
            JTSYQCustom.OrderByJZDH(GroupJTSYQ);

            List <JZD> jzds         = new List <JZD>();
            double     pingFangArea = 0;

            foreach (JTSYQ jtsyq in GroupJTSYQ.GroupJTSYQ)
            {
                pingFangArea += Decimal.ToSingle(decimal.Round(new decimal(jtsyq.Shape_Area), 2));
                IList <JZD> temp = jtsyq.JZDS;
                if (temp == null)
                {
                    return;
                }
                jzds.AddRange(temp);
            }
            double area = GroupJTSYQ.Area;

            GroupJTSYQ.Area = Math.Round(pingFangArea, 2);
            ISheet sheet = JZDCustom.CreateJZDSheet(jzds);

            sheet.Workbook.SetSheetName(0, GroupJTSYQ.BM);

            Dictionary <string, XMLObject> xmlobjectDic = XMLRead.XmlToObjects(JTSYQCustom.JZDXMLRelfect, false);

            ExcelWrite.ReplaceTextByXMLObject(sheet, GroupJTSYQ, xmlobjectDic);

            Dictionary <string, XMLObject> xmlobjectDic2 = XMLRead.XmlToObjects(JTSYQCustom.XZDM_Reflect, true);

            ExcelWrite.ReplaceTextByXMLObject(sheet, GroupJTSYQ.XZDM, xmlobjectDic2);

            ExcelWrite.Save(sheet.Workbook, dir + "\\06界址点成果表" + GroupJTSYQ.XZDM.Zu + ".xls");
            GroupJTSYQ.Area = area;
        }
コード例 #7
0
ファイル: XZDMCustom.cs プロジェクト: YB9527/CG
        /// <summary>
        /// 得到所有本村所有集体所有权
        /// </summary>
        /// <param name="xzdm">村</param>
        /// <returns></returns>
        public static IList <JTSYQ> GetCunZuAllJTSYQ(XZDM xzdm)
        {
            string bm  = xzdm.DJZQDM;
            string sql = " BM LIKE  '*" + bm + "*'";

            IList <JTSYQ> jtsyqs = JTSYQCustom.GetMapJTSYQ(sql);

            JTSYQCustom.OrderByBM(jtsyqs);


            IList <JTSYQ> jtsyqGroup = JTSYQCustom.GroupByZu(jtsyqs);

            return(jtsyqGroup);
        }
コード例 #8
0
ファイル: MapCommand.cs プロジェクト: YB9527/CG
        private void ok()
        {
            if (siziE == null || jtsyq == null)
            {
                return;
            }
            JTSYQCustom jTSYQCustom = new JTSYQCustom(jtsyq);
            Dictionary <string, IList <IFeature> > featuresDic = ArcGisUtils.GetFeatureDicByLayer(features);
            //其他集体所有权
            IList <IFeature> siziFeatures;

            if (featuresDic.TryGetValue(JTSYQCustom.JTSYQLayerName, out siziFeatures))
            {
                IList <JTSYQ> sizeJTSYQS = JTSYQCustom.FeaturesToJTSYQ(siziFeatures);
                jTSYQCustom.SetSiZi(siziE, sizeJTSYQS);
            }
            jTSYQCustom.ArcGisSave();
        }
コード例 #9
0
        /// <summary>
        /// 设置多个四至
        /// </summary>
        /// <param name="features"></param>
        private void SetJTSYQSiZi(PreviewKeyDownEventArgs e)
        {
            if (CurrentJTSYQ == null)
            {
                return;
            }
            IList <IFeature> features = ArcGisUtils.GetInstance().GetSelectFeature();

            if (!MyUtils.Utils.CheckListExists(features))
            {
                return;
            }
            JTSYQCustom jTSYQCustom = new JTSYQCustom(CurrentJTSYQ);
            Dictionary <string, IList <IFeature> > featuresDic = ArcGisUtils.GetFeatureDicByLayer(features);
            //其他集体所有权
            IList <IFeature> siziFeatures;

            if (featuresDic.TryGetValue(JTSYQCustom.JTSYQLayerName, out siziFeatures))
            {
                IList <JTSYQ> siziJTSYQS = JTSYQCustom.FeaturesToJTSYQ(siziFeatures);
                if (!MyUtils.Utils.CheckListExists(siziJTSYQS))
                {
                    return;
                }
                //移除自身地块
                int count = siziJTSYQS.Count;
                for (int a = 0; a < count; a++)
                {
                    JTSYQ round = siziJTSYQS[a];
                    if (round.Feature.OID == CurrentJTSYQ.Feature.OID)
                    {
                        siziJTSYQS.RemoveAt(a);
                        count--;
                        a--;
                    }
                }
                jTSYQCustom.SetSiZi(e, siziJTSYQS);
            }

            jTSYQCustom.ArcGisSave();

            //更新显示的table中 的josn数据
        }
コード例 #10
0
ファイル: XZDMCustom.cs プロジェクト: YB9527/CG
        /// <summary>
        /// 集体所有权转 行政代码
        /// </summary>
        /// <param name="jtsyqs"></param>
        /// <returns></returns>
        public static IList <XZDM> JTSYQToXZDM(IList <JTSYQ> jtsyqs)
        {
            IList <XZDM> xzdms = XZDMCustom.GetExcelXZDM();
            IList <XZDM> list  = new List <XZDM>();

            IList <JTSYQ> jtsqyGroups = JTSYQCustom.GroupByZu(jtsyqs);

            // Dictionary<string, IList<JTSYQ>> jtsyqDic = Utils.GetGroupDicToList("BM", jtsyqs);
            Dictionary <string, XZDM> xzdmsDic = Utils.GetGroupDic("DJZQDM", xzdms);
            XZDM xzdm;

            foreach (JTSYQ groupJTSYQ in jtsqyGroups)
            {
                string bm = groupJTSYQ.BM;
                if (bm.EndsWith("JA00998"))
                {
                }

                if (!xzdmsDic.TryGetValue(bm.Replace("JA000", ""), out xzdm))
                {
                    if (bm.Contains("99"))
                    {
                        bm = bm.Substring(0, 12);
                        if (!xzdmsDic.TryGetValue(bm, out xzdm))
                        {
                            if (!xzdmsDic.TryGetValue(bm.Substring(0, 9), out xzdm))
                            {
                                xzdm = null;
                            }
                        }
                    }
                }
                if (xzdm != null)
                {
                    xzdm.JTSYQS = groupJTSYQ.GroupJTSYQ;
                    xzdm.JTSYQ  = groupJTSYQ;
                    //list.Add(xzdm);
                }
            }

            return(xzdmsDic.Values.ToList());
        }
コード例 #11
0
ファイル: MapTablePagerPage.cs プロジェクト: YB9527/CG
        /// <summary>
        /// 表格双击
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public override void Table_Click(object sender, MouseButtonEventArgs e)
        {
            GridControl         gridControl = sender as GridControl;
            GridColumn          column      = gridControl.CurrentColumn as GridColumn;
            MapTabDictoryCustom row         = gridControl.CurrentItem as MapTabDictoryCustom;

            if (column.VisibleIndex == objectIndex)
            {
            }
            //图形缩放
            var      obj      = gridControl.CurrentItem;
            int      objectId = (int)row.Dic["OBJECTID"];
            IFeature feature  = featureDic[objectId];

            if (pLayer.Name == JTSYQCustom.JTSYQLayerName)
            {
                MapForm.CurrentJTSYQ = JTSYQCustom.FeaturesToJTSYQ(feature);
                MapForm.CurrentJTSYQ.MapTabDictoryCustom = row;
            }
            ArcGisUtils.ExtentShp(feature, pLayer, 2);
        }
コード例 #12
0
ファイル: JTSYQService.cs プロジェクト: YB9527/CG
        public List <MyAction> ExportZu_QuanJiDiaoChaBiaoActions(IList <XZDM> xzdms, string bootDir)
        {
            List <MyAction> actions = new List <MyAction>();
            List <JTSYQ>    list2   = new List <JTSYQ>();

            foreach (XZDM xzdm in xzdms)
            {
                IList <JTSYQ> jtsyqs = xzdm.JTSYQS;
                if (Utils.CheckListExists(jtsyqs))
                {
                    list2.AddRange(jtsyqs);
                }
            }

            JTSYQCustom.SetJZD(list2);
            JTSYQCustom.SetQZB(list2);
            string saveDir;

            foreach (XZDM xzdm in xzdms)
            {
                if (xzdm.JTSYQ != null)
                {
                    Action action = new Action(() =>
                    {
                        if (Utils.IsStrNull(xzdm.Zu))
                        {
                            saveDir = bootDir + xzdm.Cun + "//村集体";
                        }
                        else
                        {
                            saveDir = bootDir + xzdm.Cun + "//" + xzdm.Zu;
                        }
                        JTSYQDao.ExportZu_QuanJiDiaoChaBiao(xzdm.JTSYQ, saveDir);
                    });
                    MyAction myAction = new MyAction(action, xzdm.CunZu + "权籍调查表 ");
                    actions.Add(myAction);
                }
            }
            return(actions);
        }
コード例 #13
0
ファイル: MainWindow.xaml.cs プロジェクト: YB9527/CG
        private void OpenMxd2_Click(object sender, ItemClickEventArgs e)
        {
            //集体所有权添加行政代码view

            mapFormCustom = MapFormCustom.GetInstance();
            //添加地图文档
            AddDocument(mapFormCustom);
            MapTableCommand.dataPage    = dataPage;
            MapTableCommand.tabbedGroup = tabbedGroup;
            MapTableCustom.SetPageSource(pageView);

            try
            {
                tvProperty.ItemsSource = JTSYQCustom.GetXZDMTree();
                if (tvProperty.ItemsSource == null)
                {
                    MessageBox.Show("请重新配置工程文件!!!");
                    return;
                }
            }
            catch (Exception e1)
            {
                MessageBox.Show("行政代码表有问题:" + e1.Message);
            }


            AddDocument(MapFormCustom.GetInstance());

            UserControl map = mapFormCustom;
            int         index;

            if (DocumentGroupTitleDic.TryGetValue(map.Uid as string, out index))
            {
                documentGroup.SelectedTabIndex = index;
            }
            else
            {
                AddDocument(map);
            }
        }
コード例 #14
0
        private void Check_Click(object sender, RoutedEventArgs e)
        {
            List <MyAction> actions = new List <MyAction>();

            SoftwareConfig.SaveRedis(JTSYQCheckDataViewModel.RedisKey, model);
            IList <JTSYQ> jtsyqs = MainWindow.mainWindow.GetSelectJTSYQS();

            if (!MyUtils.Utils.CheckListExists(jtsyqs))
            {
                MessageBox.Show("你还没有选择行政区!!!");
                return;
            }

            if (model.BasicData)
            {
                actions.AddRange(JTSYQCustom.CheckDataActions(jtsyqs));
            }
            if (model.Angle)
            {
                actions.AddRange(JTSYQCustom.CheckAngle(jtsyqs, model.AngleValue));
            }
            SingleTaskForm taskForm = new SingleTaskForm(actions, "检查");
        }
コード例 #15
0
ファイル: JTSYQExportDataPage.xaml.cs プロジェクト: YB9527/CG
        private void Submit_Click(object sender, RoutedEventArgs e)
        {
            //保存缓存
            model.SaveRedis();
            if (MyUtils.Utils.IsStrNull(model.SaveDir))
            {
                MessageBox.Show("没有选择保存的位置");
            }
            else if (MyUtils.Utils.CheckDirExists(model.SaveDir))
            {
                if (MyUtils.Utils.MessageBoxShow("确定导出资料"))
                {
                    //输出文件
                    JTSYQCustom.ReflushJTSYQ(XZDMCustom.GetSelect(MainWindow.mainWindow.tvProperty.Items));

                    IList <XZDM> xzdms = XZDMCustom.GetSelect(MainWindow.mainWindow.tvProperty.Items);
                    JTSYQController.Export(model, xzdms);
                }
            }
            else
            {
                MessageBox.Show("保存的位置不存在,请重新选择!!!");
            }
        }
コード例 #16
0
        /// <summary>
        /// 设置周围的界址线
        /// </summary>
        /// <param name="jtsyqs"></param>
        public static List <JZX> SetJZX(IList <JTSYQ> jtsyqs)
        {
            List <JZX>    list        = new List <JZX>();
            IList <JTSYQ> otherJTSYQS = new List <JTSYQ>();

            foreach (JTSYQ jtsyq in jtsyqs)
            {
                IGeometry geometry = jtsyq.Feature.Shape;
                //相交的面
                IList <IFeature> intersectFeature = ArcGisUtils.GetSeartchFeatures(JTSYQCustom.GetLayer(), geometry.Envelope, esriSpatialRelEnum.esriSpatialRelIntersects);
                IList <JTSYQ>    interJTSYQS      = JTSYQCustom.FeaturesToJTSYQ(intersectFeature);
                IList <JZX>      jzxs             = new List <JZX>();
                foreach (JTSYQ inter in interJTSYQS)
                {
                    if (JTSYQHasObject(inter.OBJECTID, jtsyqs))
                    {
                        continue;
                    }
                    JZX jzx = new JZX();
                    jzx.BM            = inter.BM;
                    jzx.QLR           = inter.QLR;
                    jzx.JTSYQOBJECTID = inter.OBJECTID;
                    IEnvelope envelope = jtsyq.Feature.Shape.Envelope;

                    IPolyline pl2          = ArcGisUtils.PolygonToPolyline(inter.Feature.Shape as IPolygon);
                    IGeometry clipGeometry = ArcGisUtils.GeometryClip(pl2, ArcGisUtils.ScaleEnvelope(envelope, 1.2));
                    jzx.Polyline = clipGeometry as IPolyline;
                    jzxs.Add(jzx);
                    inter.SelfJZX = jzx;
                    otherJTSYQS.Add(inter);
                }
                jtsyq.JZXS = jzxs;
            }

            //移除重复的地块
            int count = otherJTSYQS.Count;

            /* for (int a =0; a < count; a++)
             * {
             *   JTSYQ j1 = otherJTSYQS[a];
             *
             *   for (int b= a+1; b < count;b++)
             *   {
             *       JTSYQ j2 = otherJTSYQS[b];
             *       if(j1.OBJECTID == j2.OBJECTID)
             *       {
             *           otherJTSYQS.RemoveAt(b);
             *           b--;
             *           count--;
             *       }
             *   }
             *
             * }*/

            //移除被大地块所包含的
            for (int a = 0; a < count; a++)
            {
                JTSYQ            j1 = otherJTSYQS[a];
                IList <IFeature> containsFeature = ArcGisUtils.GetSeartchFeatures(JTSYQCustom.GetLayer(), ArcGisUtils.ScaleEnvelope(j1.Feature.Shape.Envelope, 0.9), esriSpatialRelEnum.esriSpatialRelContains);
                IList <JTSYQ>    containsJTSYQS  = JTSYQCustom.FeaturesToJTSYQ(containsFeature);
                if (containsJTSYQS != null)
                {
                    for (int c = 0; c < containsJTSYQS.Count; c++)
                    {
                        for (int b = 0; b < count; b++)
                        {
                            if (a == b)
                            {  //除自己
                                continue;
                            }
                            JTSYQ j2 = otherJTSYQS[b];
                            if (containsJTSYQS[c].OBJECTID == j2.OBJECTID)
                            {
                                otherJTSYQS.RemoveAt(b);
                                b--;
                                count--;
                            }
                        }
                    }
                }
            }
            List <JZX> lastJZXS = new List <JZX>();

            foreach (JTSYQ jtsyq in otherJTSYQS)
            {
                lastJZXS.Add(jtsyq.SelfJZX);
            }
            //groupJTSYQ.JZXS = lastJZXS;
            return(lastJZXS);
        }
コード例 #17
0
 public IList <JTSYQ> GetJTSYQS(IList <IFeature> list)
 {
     return(JTSYQCustom.FeaturesToJTSYQ(list));
 }
コード例 #18
0
        public void ExportCun_GongShiTuActions(XZDM cunXZDM, string saveDir)
        {
            //IList<JTSYQ> jtsyqs = null;
            //得到所有界址短线
            IList <JZX> jzxs = JZXCustom.SetJZX(cunXZDM.JTSYQS);

            //从中删除本村的界址短线
            for (int a = 0; a < jzxs.Count; a++)
            {
                JZX    jzx = jzxs[a];
                string str = jzx.BM.Substring(0, 12);
                if (str == cunXZDM.DJZQDM)
                {
                    jzxs.RemoveAt(a);
                    a--;
                }
            }

            string mxdPath = saveDir + "\\" + System.IO.Path.GetFileName(JTSYQCustom.JTSYQGSTMxd);
            string mdbPath = saveDir + "\\" + System.IO.Path.GetFileName(JTSYQCustom.JTSYQGSTMDB);

            //1、复制maxd
            FileUtils.CopyFile(JTSYQCustom.JTSYQGSTMxd, mxdPath);
            //2、复制数据库
            FileUtils.CopyFile(JTSYQCustom.JTSYQZDTMdb, mdbPath);

            //打开工作文件
            MapDocumentClass mapDocument = new MapDocumentClass();

            mapDocument.Open(mxdPath, "");
            AxMapControl mapControl = ArcGisUtils.axMapControl;
            IMap         map        = mapDocument.Map[0];

            mapControl.Map = map;
            //3、设置数据源,数据源是相对路径,不需要设置
            //4、复制 本村的界址线shap
            JTSYQCustom.SaveMap(cunXZDM.JTSYQS);
            //设置本村的界址点标注
            JTSYQCustom.SaveJTSYQBZMap(map, cunXZDM.JTSYQS);


            JZXCustom.SaveJZXMap(jzxs);
            JZXCustom.SaveJZXBZMap(map, jzxs);

            double scale = 100.0;

            // mapControl.Extent = JTSYQCustom.SetExtent(cunXZDM.JTSYQS);
            ArcGisUtils.axMapControl.Extent = JTSYQCustom.GetLayer().AreaOfInterest;
            double num = (double)((int)((map.MapScale + 30.0) / scale) * scale + scale);

            //mapControl.MapScale = 329;
            ArcGisUtils.ChangeMapScale(mapDocument, num);
            //5、替换文字内容,
            Dictionary <string, XMLObject> xmlObjectDic = XMLRead.XmlToObjects(JTSYQCustom.XZDM_Reflect, true);
            XMLObject xmlObject = new XMLObject {
                Column = "BLC", Deafult = "1:" + num
            };

            xmlObjectDic.Add("BLC", xmlObject);
            ArcGisService.ReplaceText(cunXZDM, xmlObjectDic, mapDocument);
            //使用的xml缓存,必须移除
            xmlObjectDic.Remove("BLC");
            //6、工程文件保留
            mapDocument.Save();
            mapDocument.Close();
            ArcGisUtils.Refresh();
        }
コード例 #19
0
        public void ExportZu_ZhongDiTu(JTSYQ jtsyqGroup, string saveDir)
        {
            IList <JZX> jzxs    = JZXCustom.SetJZX(jtsyqGroup.GroupJTSYQ);
            string      mxdPath = saveDir + "\\" + System.IO.Path.GetFileName(JTSYQCustom.JTSYQZDTMxd);
            string      mdbPath = saveDir + "\\" + System.IO.Path.GetFileName(JTSYQCustom.JTSYQZDTMdb);

            //1、复制maxd
            FileUtils.CopyFile(JTSYQCustom.JTSYQZDTMxd, mxdPath);
            //2、复制数据库
            FileUtils.CopyFile(JTSYQCustom.JTSYQZDTMdb, mdbPath);
            //打开工作文件
            MapDocumentClass mapDocument = new MapDocumentClass();

            mapDocument.Open(mxdPath, "");
            AxMapControl mapControl = ArcGisUtils.axMapControl;
            IMap         map        = mapDocument.Map[0];

            mapControl.Map = map;
            //3、设置数据源,数据源是相对路径,不需要设置
            //4、复制shap

            JTSYQCustom.SaveMap(jtsyqGroup.GroupJTSYQ);
            JTSYQCustom.SaveJTSYQBZMap(map, jtsyqGroup.GroupJTSYQ);
            IList <JZD> jzds = JZDCustom.SaveMap(jtsyqGroup);

            JZXCustom.SaveJZXMap(jzxs);
            JZXCustom.SaveJZXBZMap(map, jzxs);
            JZDCustom.SaveJZDBZMap(map, jzds);

            double scale = 100.0;

            mapControl.Extent = JTSYQCustom.SetExtent(jtsyqGroup.GroupJTSYQ);

            double num = (double)((int)((map.MapScale + 30.0) / scale) * scale + scale);

            //mapControl.MapScale = 329;
            ArcGisUtils.ChangeMapScale(mapDocument, num);
            //5、替换文字内容,
            int index = 0;

            for (int a = 0; a > -1; a++)
            {
                string tufu = jtsyqGroup.TuFu;
                if (Utils.IsStrNull(tufu))
                {
                    MessageBox.Show("你还没有生成图幅号!!!:" + jtsyqGroup.QLR);
                    ArcGisUtils.Refresh();
                    return;
                }
                index = tufu.IndexOf("、", index + 1);
                if (index == -1)
                {
                    break;
                }
                if (a % 2 != 0)
                {
                    jtsyqGroup.TuFu = tufu.Insert(index + 1, "\n");
                }
            }
            Dictionary <string, XMLObject> xmlObjectDic = XMLRead.XmlToObjects(JTSYQCustom.JTSYQ_Reflect, true);
            XMLObject xmlObject = new XMLObject {
                Column = "BLC", Deafult = "1:" + num
            };

            xmlObjectDic.Add("BLC", xmlObject);
            ArcGisService.ReplaceText(jtsyqGroup, xmlObjectDic, mapDocument);
            //使用的xml缓存,必须移除
            xmlObjectDic.Remove("BLC");
            //6、工程文件保留
            mapDocument.Save();
            mapDocument.Close();
            ArcGisUtils.Refresh();
        }
コード例 #20
0
ファイル: MainWindow.xaml.cs プロジェクト: YB9527/CG
 /// <summary>
 /// 多部件是合并的,指向同一个行政代码
 /// </summary>
 /// <returns></returns>
 public IList <JTSYQ> GetSelectJTSYQS()
 {
     return(JTSYQCustom.GetSelectJTSYQ(PropertyNodeItem.FindSelect(tvProperty.Items)));
 }
コード例 #21
0
ファイル: JTSYQService.cs プロジェクト: YB9527/CG
        /// <summary>
        /// 导出checkbox 中的资料
        /// </summary>
        /// <param name="model"></param>
        /// <param name="xzdms"></param>
        public void Export(ExportDataPageViewModel model, IList <XZDM> xzdms)
        {
            //更新数据
            IList <XZDM>  cunXZDM    = new List <XZDM>();
            IList <XZDM>  zuXZDM     = new List <XZDM>();
            IList <JTSYQ> groupJTSYQ = new List <JTSYQ>();



            //IList<JTSYQ>
            foreach (XZDM xzdm in xzdms)
            {
                string bm = xzdm.DJZQDM;
                if (bm.Length == 14)
                {
                    zuXZDM.Add(xzdm);
                }
                else
                {
                    cunXZDM.Add(xzdm);
                }

                if (xzdm.JTSYQ != null)
                {
                    Dictionary <string, IList <JZD> > jzdDic = MyUtils.Utils.GetGroupDicToList("JTSYQOBJECTID", JZDCustom.GetMapJZD());
                    IList <JZD> jzds;
                    groupJTSYQ.Add(xzdm.JTSYQ);
                    foreach (JTSYQ child in xzdm.JTSYQ.GroupJTSYQ)
                    {
                        if (jzdDic.TryGetValue(child.OBJECTID + "", out jzds))
                        {
                            if (jzdDic.TryGetValue(child.OBJECTID + "", out jzds))
                            {
                                //注入界址点
                                child.JZDS = jzds;
                            }
                        }
                    }
                    //设置包含的面积
                }
            }
            List <MyAction> actions = new List <MyAction>();

            if (model.Cun_JiTiTuDiDiaoChaBiao || model.Zu_QuanJiDiaoChaBiao || model.Zu_ShengPiBiao)
            {
                actions.Add(new MyAction(new Action(() =>
                {
                    foreach (JTSYQ jtsyq in groupJTSYQ)
                    {
                        JTSYQCustom.SetContainsFeatureArea(jtsyq);
                    }
                }), "刷新包含的二调面积"));
            }



            string saveDir = model.SaveDir + "\\";

            if (model.Zu_DangAnDai)
            {
                actions.AddRange(ExportZu_DangAnDaiActions(groupJTSYQ, saveDir));
            }
            if (model.Zu_TuDiQuanShuZhengMing)
            {
                actions.AddRange(ExportZu_TuDiQuanShuLaiYuanZhengMingActions(xzdms, saveDir));
            }
            if (model.Zu_FaRenDaiBiaoZhengMing)
            {
                actions.AddRange(ExportZu_FaRenDaiBiaoShenFengZhengMingActions(xzdms, saveDir));
            }
            if (model.Zu_FaRenDaiBiaoWeiTuoShu)
            {
                actions.AddRange(ExportZu_FaRenDaiBiaoWeiTuoShuActions(xzdms, saveDir));
            }
            if (model.Zu_ZhiJieRenZhengMing)
            {
                actions.AddRange(ExportZu_ZhiJieRenShenFengZhengMingActions(xzdms, saveDir));
            }
            if (model.Zu_ShengPiBiao)
            {
                actions.AddRange(ExportZu_ShenPiBiaoActions(xzdms, saveDir));
            }
            if (model.Zu_JieZhiDianChengGuoBiao)
            {
                actions.AddRange(ExportJZDTableActions(groupJTSYQ, saveDir));
            }

            if (model.Zu_QuanJiDiaoChaBiao)
            {
                actions.AddRange(ExportZu_QuanJiDiaoChaBiaoActions(xzdms, saveDir));
            }
            if (model.Zu_RuKuDanZhongDiBiao)
            {
                actions.AddRange(ExportZu_ZhongDiBiaoActions(xzdms, saveDir));
            }
            if (model.Zu_ZhongDiTu)
            {
                actions.AddRange(ExportZu_ZhongDiTuActions(xzdms, saveDir));
            }
            if (model.Cun_DangAnDai)
            {
                actions.AddRange(ExportCunDangAnDaiActions(cunXZDM, saveDir));
            }
            if (model.Cun_GongGaoFanKuiYiJianShu)
            {
                actions.AddRange(ExportCunYiJianFanKuaiShuActions(cunXZDM, saveDir));
            }
            if (model.Cun_GongShiFanKuiYiJianShu)
            {
                actions.AddRange(ExportCunYiJianFanKuaiShu_GongShiActions(cunXZDM, saveDir));
            }
            if (model.Cun_QueQuanJieGuoGongGao)
            {
                actions.AddRange(ExportCunJieGuo_GongGaoActions(cunXZDM, saveDir));
            }
            if (model.Cun_QueQuanJieGuoGongShi)
            {
                actions.AddRange(ExportCunJieGuo_GongShiActions(cunXZDM, saveDir));
            }
            if (model.Cun_GongGaoBiao)
            {
                actions.AddRange(ExportCun_GongShiActions(cunXZDM, saveDir));
            }
            if (model.Cun_GongShiBiao)
            {
                actions.AddRange(ExportCun_GongGaoActions(cunXZDM, saveDir));
            }
            if (model.Cun_JiTiTuDiDiaoChaBiao)
            {
                actions.AddRange(ExportCun_JiTiTuDiDiaoChaBiaoActions(cunXZDM, zuXZDM, saveDir));
            }
            if (model.Cun_GongShiTu)
            {
                actions.AddRange(ExportCun_GongShiTuActions(cunXZDM, saveDir));
            }
            SingleTaskForm task = new SingleTaskForm(actions, "导表");
        }
コード例 #22
0
        private IList <JZD> ExtractJzd(JTSYQ dk, IFeatureLayer dkLayer, IFeatureLayer jzdLayer)
        {
            IFeature         feature         = dk.Feature;
            IPolygon         polygon         = feature.Shape as IPolygon;
            IPointCollection pointCollection = polygon as IPointCollection;
            IList <JZD>      list            = new List <JZD>();

            int    num   = pointCollection.PointCount - 2;
            IPoint point = new PointClass();

            point.X = 0.0;
            point.Y = 0.0;
            IList <JTSYQ> list2  = JTSYQCustom.FeaturesToJTSYQ(ArcGisUtils.CircleSelect(pointCollection.get_Point(num), dkLayer));
            IList <JTSYQ> list3  = JTSYQCustom.FeaturesToJTSYQ(ArcGisUtils.CircleSelect(pointCollection.get_Point(0), dkLayer));
            IList <JTSYQ> entity = JTSYQCustom.FeaturesToJTSYQ(ArcGisUtils.CircleSelect(pointCollection.get_Point(1), dkLayer));

            for (int i = 0; i <= num; i++)
            {
                IPoint point2 = pointCollection.get_Point(i);
                int    num2   = list3.Count <JTSYQ>();
                bool   flag2  = num2 > list2.Count || num2 > entity.Count;
                if (flag2)
                {
                    JZD JZD = new JZD();
                    JZD.JZDIndex = i;
                    JZD.Point    = point2;
                    list.Add(JZD);
                    point = point2;
                }
                else
                {
                    bool flag3 = num2 != 1 && this.DifferentDks(list3, list2);
                    if (flag3)
                    {
                        JZD JZD = new JZD();
                        JZD.JZDIndex = i;
                        JZD.Point    = point2;
                        list.Add(JZD);
                        point = point2;
                    }
                    else
                    {
                        double num3  = ArcGisUtils.CalculateTwoPt(point2, point);
                        bool   flag4 = i == 0;
                        double num4  = -1;

                        if (flag4)
                        {
                            num4 = ArcGisUtils.Angle(point2, pointCollection.get_Point(num), pointCollection.get_Point(1));
                        }
                        else
                        {
                            bool flag5 = i == num;
                            if (flag5)
                            {
                                num4 = ArcGisUtils.Angle(point2, pointCollection.get_Point(i - 1), pointCollection.get_Point(0));
                                double num5  = ArcGisUtils.CalculateTwoPt(point2, pointCollection.get_Point(0));
                                bool   flag6 = num5 < num3;
                                if (flag6)
                                {
                                    num3 = num5;
                                }
                            }
                            else
                            {
                                num4 = ArcGisUtils.Angle(point2, pointCollection.get_Point(i - 1), pointCollection.get_Point(i + 1));
                            }
                        }

                        bool flag7 = num4 < 150;
                        if (flag7)
                        {
                            bool flag8 = num4 <130.0 || num3> 2.0;
                            if (flag8)
                            {
                                //检查与上一个
                                int count = list.Count - 1;
                                if (count >= 0)
                                {
                                    double di = ArcGisUtils.CalculateTwoPt(point2, list[count].Point);
                                    if (di > 1)

                                    {
                                        //有上一个点的话,要大于50距离才增加
                                        JZD JZD = new JZD();
                                        JZD.JZDIndex = i;
                                        JZD.Point    = point2;
                                        list.Add(JZD);
                                        point = point2;
                                    }
                                }
                                else
                                {
                                    JZD JZD = new JZD();
                                    JZD.JZDIndex = i;
                                    JZD.Point    = point2;
                                    list.Add(JZD);
                                    point = point2;
                                }
                            }
                            else
                            {
                                IList <IFeature> featureCursor = ArcGisUtils.CircleSelect(point2, jzdLayer);

                                if (Utils.CheckListExists(featureCursor))
                                {
                                    JZD JZD = new JZD();
                                    JZD.JZDIndex = i;
                                    JZD.Point    = point2;
                                    list.Add(JZD);
                                    point = point2;
                                }
                            }
                        }
                    }
                }
                list2 = list3;
                list3 = entity;
                bool flag10 = i != num;
                if (flag10)
                {
                    entity = JTSYQCustom.FeaturesToJTSYQ(ArcGisUtils.CircleSelect(pointCollection.get_Point(i + 2), dkLayer));
                }
                else
                {
                    entity = JTSYQCustom.FeaturesToJTSYQ(ArcGisUtils.CircleSelect(pointCollection.get_Point(0), dkLayer));
                }
            }

            return(list);
        }