예제 #1
0
        public override bool Check(ref List <Error> checkResult)
        {
            try
            {
                if (m_TopologylRule == null)
                {
                    SendMessage(enumMessageType.RuleError, "拓扑规则未创建成功");
                    return(false);
                }

                checkResult = new List <Error>();
                IEnumTopologyErrorFeature enErrorFeature = (m_Topology as IErrorFeatureContainer).get_ErrorFeatures((m_Topology.FeatureDataset as IGeoDataset).SpatialReference, this.m_TopologylRule, (m_Topology.FeatureDataset as IGeoDataset).Extent, true, true);
                ITopologyErrorFeature     errFeature     = enErrorFeature.Next();
                while (errFeature != null)
                {
                    TopoError err = new TopoError();
                    err.DefectLevel = this.DefectLevel;
                    err.ErrorType   = enumErrorType.Topology;
                    err.LayerName   = this.m_psRuleParas.arraySeledLayers[0];
                    err.LayerID     = m_TopologylRule.OriginClassID;
                    if (this.m_psRuleParas.arraySeledLayers.Count > 1)
                    {
                        err.ReferLayerName = this.m_psRuleParas.arraySeledLayers[1];
                    }

                    err.ReferLayerID = m_TopologylRule.DestinationClassID;
                    err.RuleType     = (int)m_TopologylRule.TopologyRuleType;
                    err.RuleID       = this.m_InstanceID;
                    err.Description  = this.InstanceName;
                    err.OID          = errFeature.OriginOID;
                    err.ReferOID     = errFeature.DestinationOID.ToString();
                    err.JHLX         = errFeature.ShapeType;

                    checkResult.Add(err);

                    errFeature = enErrorFeature.Next();
                }

                return(true);
            }
            catch (Exception exp)
            {
                SendMessage(enumMessageType.RuleError, "获取拓扑结果失败");
                SendMessage(enumMessageType.OperationalLog, exp.ToString());
                return(false);
            }
        }
예제 #2
0
파일: RuleTopo.cs 프로젝트: hy1314200/HyDM
        public override bool Check(ref List<Error> checkResult)
        {
            try
            {
                if (m_TopologylRule == null)
                {
                    SendMessage(enumMessageType.RuleError, "���˹���δ�����ɹ�");
                    return false;
                }

                checkResult = new List<Error>();
                IEnumTopologyErrorFeature enErrorFeature = (m_Topology as IErrorFeatureContainer).get_ErrorFeatures((m_Topology.FeatureDataset as IGeoDataset).SpatialReference, this.m_TopologylRule, (m_Topology.FeatureDataset as IGeoDataset).Extent, true, true);
                ITopologyErrorFeature errFeature= enErrorFeature.Next();
                while (errFeature != null)
                {
                    TopoError err = new TopoError();
                    err.DefectLevel = this.DefectLevel;
                    err.ErrorType = enumErrorType.Topology;
                    err.LayerName = this.m_psRuleParas.arraySeledLayers[0];
                    err.LayerID= m_TopologylRule.OriginClassID;
                    if (this.m_psRuleParas.arraySeledLayers.Count > 1)
                        err.ReferLayerName = this.m_psRuleParas.arraySeledLayers[1];

                    err.ReferLayerID = m_TopologylRule.DestinationClassID;
                    err.RuleType = (int)m_TopologylRule.TopologyRuleType;
                    err.RuleID = this.m_InstanceID;
                    err.Description = this.InstanceName;
                    err.OID = errFeature.OriginOID;
                    err.ReferOID = errFeature.DestinationOID.ToString();
                    err.JHLX = errFeature.ShapeType;

                    checkResult.Add(err);

                    errFeature = enErrorFeature.Next();
                }

                return true;
            }
            catch(Exception exp)
            {
                SendMessage(enumMessageType.RuleError, "��ȡ���˽��ʧ��");
                SendMessage(enumMessageType.OperationalLog, exp.ToString());
                return false;
            }
        }