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); } }
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; } }