コード例 #1
0
 public void Check()
 {
     foreach (var className in ParameterManager.FeatureClassNames)
     {
         ArcGISManager.CheckCoordinate(className, RuleName);
     }
 }
コード例 #2
0
 public void Check()
 {
     foreach (var className in ParameterManager.TopoFeatures)
     {
         ArcGISManager.Topo(className);
         ArcGISManager.XZQ("XZQ_XZC", className);
     }
 }
コード例 #3
0
        public void Check()
        {
            Init();
            if (System.IO.File.Exists(MdbFilePath) == false)
            {
                return;
            }
            IWorkspace workspace = MdbFilePath.OpenAccessFileWorkSpace();

            if (workspace == null)
            {
                QuestionManager2.Add(new Question2
                {
                    Code         = ID,
                    Name         = RuleName,
                    CheckProject = CheckProject,
                    Folder       = "",
                    Description  = string.Format("无法打开矢量数据的workspace,故无法检查规则")
                });
                return;
            }
            var tables  = ParameterManager2.Tables.Where(e => e.IsSpace == true).Select(e => e.Name).ToList();
            var results = ArcGISManager.CheckCoordinate2(workspace, tables);

            if (results.Count > 0)
            {
                QuestionManager2.Add(new Question2
                {
                    Code         = ID,
                    Name         = RuleName,
                    CheckProject = CheckProject,
                    Description  = string.Format("【{0}】不符合坐标系", string.Join("、", results.ToArray())),
                    Folder       = ""
                });
            }
        }
コード例 #4
0
        private void LocationFeature(string className, string whereClause)
        {
            if (string.IsNullOrEmpty(whereClause))
            {
                return;
            }

            if (_spaceArray.Contains(className))
            {
                var featureClass = ParameterManager.Workspace.GetFeatureClass(className);
                if (featureClass == null)
                {
                    MessageBox.Show("获取要素类失败......");
                    return;
                }
                var feature = ArcGISManager.Search(featureClass, whereClause);
                if (feature != null)
                {
                    this.tabControl2.SelectedIndex = 0;
                    Center(feature);
                    Twinkle(feature);
                }
            }
        }
コード例 #5
0
        private bool Init()
        {
            OutputMessage("00", "正在初始化检查机制", ProgressResultTypeEnum.Other);
            if (!ReadXZQ())//分析读取行政区
            {
                OutputMessage("00", "未分析读取到行政区名称和行政区代码", ProgressResultTypeEnum.Fail);
                return(false);
            }
            if (!SearchFile())//查找单位代码表和数据库文件
            {
                OutputMessage("00", "未找到单位代码表或者数据库文件", ProgressResultTypeEnum.Fail);
                return(false);
            }

            OutputMessage("00", "参数管理器初始化完毕", ProgressResultTypeEnum.Other);
            ExcelManager.Init(ParameterManager.CodeFilePath);//初始化单位代码信息列表
            var tree = new CodeForm()
            {
                Dict = ExcelManager.Dict
            };

            if (tree.ShowDialog() == DialogResult.Cancel)
            {
                return(false);
            }
            if (ExcelManager.Dict.Count == 0)
            {
                QuestionManager.Add(new Question {
                    Code = "00", TableName = "单位代码表", Description = "未获取单位代码表中的相关数据信息"
                });
                OutputMessage("00", "未获取单位代码表中的相关数据信息", ProgressResultTypeEnum.Fail);
            }
            else
            {
                OutputMessage("00", string.Format("成功读取行政区(乡镇)单位代码表信息:{0}条", ExcelManager.Dict.Count), ProgressResultTypeEnum.Other);
            }
            if (ExcelManager.XZQ.Count == 0)
            {
                QuestionManager.Add(new Question {
                    Code = "00", TableName = "单位代码表", Description = "读取到的单位代码表中未填写行政区(乡镇)代码信息"
                });
                OutputMessage("00", "读取到的单位代码表中未填写行政区(乡镇)代码信息", ProgressResultTypeEnum.Fail);
            }
            if (ExcelManager.XZC.Count == 0)
            {
                QuestionManager.Add(new Question {
                    Code = "00", TableName = "单位代码表", Description = "读取到的单位代码表中未填写行政区(村级)代码信息"
                });
                OutputMessage("00", "读取到的单位代码表中未填写行政区(村级)代码信息", ProgressResultTypeEnum.Fail);
            }
            var list = ArcGISManager.GainDCDYTB(ParameterManager.Workspace, DCDYTBManager.ClassName) ?? new List <DCDYTB>();

            if (list.Count == 0)
            {
                OutputMessage("00", "未获取调查单元类型相关基础信息", ProgressResultTypeEnum.Fail);
            }
            QuestionManager.AddRange(list.Where(e => e.Right == false).Select(e =>
                                                                              new Question
            {
                Code        = "3401",
                Name        = "面积一致性",
                TableName   = DCDYTBManager.ClassName,
                Description = string.Format("行政区名称:【{0}】行政区代码:【{1}】图斑编号:【{2}】的MJ:【{3}】图斑实际面积:【{4}】容差超过1平方米", e.XZCMC, e.XZCDM, e.TBBH, e.MJ, e.Area),
                BSM         = e.BSM,
                ShowType    = ShowType.Space,
                WhereClause = string.Format("[BSM] = {0}", e.BSM)
            }).ToList());
            DCDYTBManager.List = list;

            OutputMessage("00", "成功读取调查单元图斑信息", ProgressResultTypeEnum.Other);
            InitRules();
            //ParameterManager.Folder = Folder;

            return(true);
        }