拓扑规则翻译函数

把拓扑规则翻译成中文的函数:

  private string PRV_Translate(string IN_RuleName)
        {
            switch (IN_RuleName)
            {
                case "esriTRTAreaNoGaps" :
                    return "面要素之间无空隙";
                    

                case "esriTRTAreaNoOverlap":
                    return "面要素间无重叠";
                    
                case "esriTRTAreaCoveredByAreaClass":
                    return "第二个图层面要素必须被第一个图层任一面要素覆盖";
                    
                case "esriTRTAreaContainOnePoint":
                    return "面要素必须只包含一个点要素";
                    
                case "esriTRTAreaAreaCoverEachOther":
                    return "两图层面要素必须互相覆盖";
                    
                case "esriTRTAreaCoveredByArea":
                    return "第一个图层面要素必须被第一个图层任一面要素包含";
                    
                case "esriTRTAreaNoOverlapArea":
                    return "图层间面要素不能相互覆盖";
                    
                case "esriTRTLineCoveredByAreaBoundary":
                    return "线要素必须跟面图层边界的一部分或全部重叠";
                    
                case "esriTRTPointCoveredByAreaBoundary":
                    return "点要素必须落在面要素边界上";
                    
                case "esriTRTPointProperlyInsideArea":
                    return "点要素必须落在面要素内";
                    
                case "esriTRTLineNoOverlap":
                    return "线要素间不能有相互重叠部分";
                    
                case "esriTRTLineNoIntersection":
                    return "线要素之间不能相交";
                    
                case "esriTRTLineNoDangles":
                    return "线要素不允许有悬挂点";
                    
                case "esriTRTLineNoPseudos":
                    return "线要素不允许有假节点";
                    
                case "esriTRTLineCoveredByLineClass":
                    return "第一个图层线要素应被第二个线图层线要素覆盖";
                    
                case "esriTRTLineNoOverlapLine":
                    return "第一个图层线要素不被第二个线图层线要素覆盖";
                    
                case "esriTRTPointCoveredByLine":
                    return "点要素应被线要素覆盖";
                    
                case "esriTRTPointCoveredByLineEndpoint":
                    return "点要素应在线要素的端点上";
                    
                case "esriTRTAreaBoundaryCoveredByLine":
                    return "面要素边界必须被线要素覆盖";
                    
                case "esriTRTAreaBoundaryCoveredByAreaBoundary":
                    return "面要素的边界必须被另一面要素边界覆盖";
                    
                case "esriTRTLineNoSelfOverlap":
                    return "线要素不能自重叠";
                    
                case "esriTRTLineNoSelfIntersect":
                    return "线要素不能自相交";
                    
                case "esriTRTLineNoIntersectOrInteriorTouch":
                    return "线要素间不能重叠和相交";
                    
                case "esriTRTLineEndpointCoveredByPoint":
                    return "线要素端点必须被点要素覆盖";
                    
                case "esriTRTAreaContainPoint":
                    return "面要素内必须包含至少一个点要素";
                    
                case "esriTRTLineNoMultipart":
                    return "线不能是多段";
                    
                case "esriTRTPointDisjoint":
                    return "点要素之间不相交";
                    
                case "esriTRTLineNoIntersectLine":
                    return "线要素必须不相交";
                    
                case "esriTRTLineNoIntersectOrInteriorTouchLine":
                    return "线必须不相交或内部接触";
                    
                default:
                    return "其他规则";
                    
            }
        }

从中文翻译到拓扑规则的函数:

  //根据错误的中文描述转换成esri拓扑枚举
        private esriTopologyRuleType PRV_ConvertTopologyRuleType(TopoErroType IN_TopoRuleType)
        {
            esriTopologyRuleType Temp_TopoRuleType;
            switch (IN_TopoRuleType)
            {
                case TopoErroType.面要素之间无空隙:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTAreaNoGaps;
                    break;
                case TopoErroType.任何规则:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTAny;
                    break;
                case TopoErroType.要素大于最小容差:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTFeatureLargerThanClusterTolerance;
                    break;
                case TopoErroType.面要素间无重叠:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTAreaNoOverlap;
                    break;
                case TopoErroType.第二个图层面要素必须被第一个图层任一面要素覆盖:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTAreaCoveredByAreaClass;
                    break;
                case TopoErroType.面要素必须只包含一个点要素:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTAreaContainOnePoint;
                    break;
                case TopoErroType.两图层面要素必须互相覆盖:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTAreaAreaCoverEachOther;
                    break;
                case TopoErroType.第一个图层面要素必须被第一个图层任一面要素包含:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTAreaCoveredByArea;
                    break;
                case TopoErroType.图层间面要素不能相互覆盖:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTAreaNoOverlapArea;
                    break;
                case TopoErroType.线要素必须跟面图层边界的一部分或全部重叠:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTLineCoveredByAreaBoundary;
                    break;
                case TopoErroType.点要素必须落在面要素边界上:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTPointCoveredByAreaBoundary;
                    break;
                case TopoErroType.点要素必须落在面要素内:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTPointProperlyInsideArea;
                    break;
                case TopoErroType.线要素间不能有相互重叠部分:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTLineNoOverlap;
                    break;
                case TopoErroType.线要素之间不能相交:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTLineNoIntersection;
                    break;
                case TopoErroType.线要素不允许有悬挂点:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTLineNoDangles;
                    break;
                case TopoErroType.线要素不允许有假节点:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTLineNoPseudos;
                    break;
                case TopoErroType.第一个图层线要素应被第二个线图层线要素覆盖:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTLineCoveredByLineClass;
                    break;
                case TopoErroType.第一个图层线要素不被第二个线图层线要素覆盖:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTLineNoOverlapLine;
                    break;
                case TopoErroType.点要素应被线要素覆盖:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTPointCoveredByLine;
                    break;
                case TopoErroType.点要素应在线要素的端点上:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTPointCoveredByLineEndpoint;
                    break;
                case TopoErroType.面要素边界必须被线要素覆盖:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTAreaBoundaryCoveredByLine;
                    break;
                case TopoErroType.面要素的边界必须被另一面要素边界覆盖:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTAreaBoundaryCoveredByAreaBoundary;
                    break;
                case TopoErroType.线要素不能自重叠:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTLineNoSelfOverlap;
                    break;
                case TopoErroType.线要素不能自相交:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTLineNoSelfIntersect;
                    break;
                case TopoErroType.线要素间不能重叠和相交:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTLineNoIntersectOrInteriorTouch;
                    break;
                case TopoErroType.线要素端点必须被点要素覆盖:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTLineEndpointCoveredByPoint;
                    break;
                case TopoErroType.面要素内必须包含至少一个点要素:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTAreaContainPoint;
                    break;
                case TopoErroType.线不能是多段:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTLineNoMultipart;
                    break;
                case TopoErroType.点要素之间不相交:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTPointDisjoint;
                    break;
                case TopoErroType.线要素必须不相交:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTLineNoIntersectLine;
                    break;
                case TopoErroType.线必须不相交或内部接触:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTLineNoIntersectOrInteriorTouchLine;
                    break;
                default:
                    Temp_TopoRuleType = esriTopologyRuleType.esriTRTAny;//将此规则赋予拓扑会直接报错
                    break;
            }
            return Temp_TopoRuleType;
        }

        public enum TopoErroType
        {
            任何规则=-1,
            要素大于最小容差 = 0,
            面要素之间无空隙 = 1,
            面要素间无重叠 = 3,
            第二个图层面要素必须被第一个图层任一面要素覆盖 = 4,
            两图层面要素必须互相覆盖 = 5,
            第一个图层面要素必须被第一个图层任一面要素包含 = 7,
            图层间面要素不能相互覆盖 = 8,
            线要素必须跟面图层边界的一部分或全部重叠 = 10,
            线要素必须在面内=11,
            点要素必须落在面要素边界上 = 13,
            点要素必须落在面要素内 = 15,
            面要素必须只包含一个点要素=16,
            线要素间不能有相互重叠部分 = 19,
            线要素之间不能相交 = 20,
            线要素不允许有悬挂点 = 21,
            线要素不允许有假节点 = 22,
            第一个图层线要素应被第二个线图层线要素覆盖 = 26,
            第一个图层线要素不被第二个线图层线要素覆盖 = 28,
            点要素应被线要素覆盖 = 29,
            点要素应在线要素的端点上 = 31,
            点要素之间不相交=34,
            点要素重合点要素=35,
            面要素边界必须被线要素覆盖 = 37,
            面要素的边界必须被另一面要素边界覆盖 = 38,
            线要素不能自重叠 = 39,
            线要素不能自相交 = 40,
            线要素间不能重叠和相交 = 41,
            线要素端点必须被点要素覆盖 = 42,
            面要素内必须包含至少一个点要素 = 43,
            线不能是多段 = 44,
            线要素必须不相交=45,
            线必须不相交或内部接触=46
        };


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值