public final class TopologyRule extends Enum
该类主要用于对点、线和面数据进行拓扑检查,是拓扑检查的一个参数。根据相应的拓扑规则,返回不符合规则的对象。目前已有部分拓扑规则支持三维矢量数据集。
public static final TopologyRule REGION_NO_OVERLAP
检查一个面数据集(或者面记录集)中相互有重叠的面对象。此规则多用于一个区域不能同时属于两个对象的情况。如行政区划面,相邻的区划之间要求不能有任何重叠,行政区划数据上必须是每个区域都有明确的地域定义。此类数据还包括:土地利用图斑、邮政编码覆盖区划、公民投票选区区划等。
重叠部分作为错误生成到结果数据集中,错误数据集类型:面。
注意:只对一个数据集或记录集本身进行检查。
检查后: |
public static final TopologyRule REGION_NO_GAPS
返回一个面数据集(或者面记录集)中相邻面之间有空隙的面对象。此规则多用于检查一个面数据中,单个区域或相邻区域之间有空隙的情况。一般对于如土地利用图斑这样的数据,要求不能有未定义土地利用类型的斑块,可使用此规则进行检查。
注意:
检查后: |
public static final TopologyRule REGION_NO_OVERLAP_WITH
检查两个面数据集中重叠的所有对象。此规则检查第一个面数据中,与第二个面数据有重叠的所有对象。如将水域数据与旱地数据叠加,可用此规则检查。
重叠部分作为错误生成到结果数据集中,错误数据集类型:面。
检查后: |
public static final TopologyRule REGION_COVERED_BY_REGION_CLASS
检查第一个面数据集(或者面记录集)中没有被第二个面数据集(或者面记录集)覆盖的对象。如:省界 Area1 中每一个省域都必须完全被县界 Area2 中属于该省的面域所覆盖。
未覆盖的部分将作为错误生成到结果数据集中,错误数据集类型:面。
检查后: |
public static final TopologyRule REGION_COVERED_BY_REGION
检查第一个面数据集(或者面记录集)中没有被第二个面数据集(或者面记录集)中任何对象包含的对象。即面数据 1 的区域都必须被面数据 2 的某一个区域完全包含。
未被包含的面对象整个将作为错误生成到结果数据集中,错误数据集类型:面。
检查后: |
public static final TopologyRule REGION_BOUNDARY_COVERED_BY_LINE
检查面数据集(或者面记录集)中对象的边界没有被线数据集(或者线记录集)中的线覆盖的对象。通常用于行政区界或地块和存储有边界线属性的线数据进行检查。面数据中不能存储一些边界线的属性,此时需要专门的边界线数据,存储区域边界的不同属性,要求边界线与区域边界线完全重合。
未被覆盖的边界将作为错误生成到结果数据集中,错误数据集类型:线。
检查后: |
public static final TopologyRule REGION_BOUNDARY_COVERED_BY_REGION_BOUNDARY
检查面数据集(或者面记录集)中边界没有被另一面数据集(或者面记录集)中对象(可以为多个)的边界覆盖的对象。
未被覆盖的边界将作为错误生成到结果数据集中,错误数据集类型:线。
检查后: |
public static final TopologyRule REGION_CONTAIN_POINT
检查面数据集(或者面记录集)中没有包含任何点数据集(或者点记录集)中点的对象。例如省域数据与省会数据进行检查,每个省内都必须有一个省会城市,不包含任何点数据的面对象,都将被检查出来。
未包含点的面对象将作为错误生成到结果数据集中,错误数据集类型:面。
检查后: |
public static final TopologyRule LINE_NO_INTERSECTION
检查一个线数据集(或者线记录集)中相互有相交(不包括端点和内部接触及端点和端点接触)的线对象。
交点将作为错误生成到结果数据集中,错误数据集类型:点。
注意:只对一个数据集或记录集本身进行检查。
检查后: |
public static final TopologyRule LINE_NO_OVERLAP
检查一个线数据集(或者线记录集)中相互有重叠的线对象。
对象之间重叠的部分将作为错误生成到结果数据集中,错误数据集类型:线。
注意:只对一个数据集或记录集本身进行检查。
检查后: |
public static final TopologyRule LINE_NO_DANGLES
检查一个线数据集(或者线记录集)中被定义为悬线的对象,包括过头线和长悬线。一条悬线的外侧端点到最近节点的距离大于(节点捕捉)容限即为悬线,距离小于容限时会被捕捉到最近节点,则不判定为悬线。
悬点将作为错误生成到结果数据集中,错误数据集类型:点。
注意:只对一个数据集或记录集本身进行检查。
检查后: |
public static final TopologyRule LINE_NO_PSEUDO_NODES
返回一个线数据集(或者线记录集)中包含假结点的线对象。
假结点将作为错误生成到结果数据集中,错误数据集类型:点。
注意:只对一个数据集或记录集本身进行检查。
检查后: |
public static final TopologyRule LINE_NO_OVERLAP_WITH
检查第一个线数据集(或者线记录集)中和第二个线数据集(或者线记录集)中的对象有重叠的所有对象。如交通路线中的公路和铁路不能出现重叠。
重叠部分作为错误生成到结果数据集中,错误数据集类型:线。
检查后: |
public static final TopologyRule LINE_NO_INTERSECT_OR_INTERIOR_TOUCH
返回一个线数据集(或者线记录集)中和其它线对象相交的线对象,即除端点之间接触外其它所有的相交或内部接触的线对象。
交点作为错误生成到结果数据集中,错误数据集类型:点。
注意:线数据集(或者线记录集)中所有交点必须是线的端点,即相交的弧段必须被打断,否则就违反此规则(自交不检查)。
检查后: |
public static final TopologyRule LINE_NO_SELF_OVERLAP
检查一个线数据集(或者线记录集)内相互有交叠(交集是线)的线对象。
自交叠部分(线)将作为错误生成到结果数据集中,错误数据集类型:线。
注意:只对一个数据集或记录集本身进行检查。
检查后: |
public static final TopologyRule LINE_NO_SELF_INTERSECT
检查一个线数据集(或者线记录集)内自相交的线对象(包括自交叠的情况)。
交点将作为错误生成到结果数据集中,错误数据集类型:点。
注意:只对一个数据集或记录集本身进行检查。
检查后: |
public static final TopologyRule LINE_BE_COVERED_BY_LINE_CLASS
检查第一个线数据集(或者线记录集)中没有与第二个线数据集(或者线记录集)中的对象有重合的对象。
未被覆盖的部分将作为错误生成到结果数据集中,错误数据集类型:线。
注意:线数据集(或线记录集)中每一个对象,都必须被另一个线数据集(或者线记录集)中的一个或多个线对象覆盖。如Line1中的某条公交路线必须被Line2中的一系列相连的街道覆盖。
检查后: |
public static final TopologyRule LINE_COVERED_BY_REGION_BOUNDARY
检查线数据集(或者线记录集)中没有与面数据集(或者面记录集)中某个对象的边界重合的对象。(可被多个面的边界覆盖)。
未被边界覆盖的部分将作为错误生成到结果数据集中,错误数据集类型:线。
检查后: |
public static final TopologyRule LINE_END_POINT_COVERED_BY_POINT
检查线数据集(或者线记录集)中的端点没有与点数据集(或者点记录集)中任何一个点重合的对象。
未被覆盖的端点将作为错误生成到结果数据集中,错误数据集类型:点。
检查后: |
public static final TopologyRule POINT_COVERED_BY_LINE
返回点数据集(或者点记录集)中没有被线数据集(或者线记录集)中的某个对象覆盖的对象。如高速公路上的收费站。
未被覆盖的点将作为错误生成到结果数据集中,错误数据集类型:点。
检查后: |
public static final TopologyRule POINT_COVERED_BY_REGION_BOUNDARY
检查点数据集(或者点记录集)中没有在面数据集(或者面记录集)中某个对象的边界上的对象。
不在面边界上的点将作为错误生成到结果数据集中,错误数据集类型:点。
检查后: |
public static final TopologyRule POINT_CONTAINED_BY_REGION
检查点数据集(或者点记录集)中没有被面数据集(或者面记录集)中任何一个对象内部包含的点对象。
不在面内的点将作为错误生成到结果数据集中,错误数据集类型:点。
检查后: |
public static final TopologyRule POINT_BECOVERED_BY_LINE_END_POINT
返回点数据集(或者点记录集)中没有被线数据集(或者线记录集)中任意对象的端点覆盖的对象。
检查后: |
public static final TopologyRule NO_MULTIPART
检查一个数据集或记录集内包含子对象的复杂对象,适用于面和线。
复杂对象将作为错误生成到结果数据集中,错误数据集类型:线或面。
含复杂对象的线数据:
检查后: |
含复杂对象的面数据:
检查后: |
public static final TopologyRule POINT_NO_IDENTICAL
检查点数据集中的重复点对象。点数据集内发生重叠的对象都将作为拓扑错误生成。
所有重复的点将作为错误生成到结果数据集中,错误数据集类型:点。
注意:只对一个数据集或记录集本身进行检查。
检查后: |
public static final TopologyRule POINT_NO_CONTAINED_BY_REGION
检查点数据集(或者点记录集)中被面数据集(或者面记录集)中某一个对象内部包含的点对象。
被面包含的点将作为错误生成到结果数据集中,错误数据集类型:点。
注意:点若位于面边界上,则不违背此规则。
检查后: |
public static final TopologyRule LINE_NO_INTERSECTION_WITH_REGION
检查线数据集(或者线记录集)中和面数据集(或者面记录集)中的面对象相交或者被面对象包含的线对象。
线面交集部分将作为错误生成到结果数据集中,错误数据集类型:线。
检查后: |
public static final TopologyRule REGION_NO_OVERLAP_ON_BOUNDARY
检查面数据集或记录集中的面对象的边界与另一面数据集或记录集中的对象边界有交叠的部分。
边界重叠的部分将作为错误生成到结果数据集中,错误数据集类型:线。
检查后: |
public static final TopologyRule REGION_NO_SELF_INTERSECTION
检查面数据中是否存在自相交的对象。
面对象自相交的交点将作为错误生成到结果数据集中,错误数据集类型:点。
检查后: |
public static final TopologyRule LINE_NO_INTERSECTION_WITH
检查第一个线数据集(或者线记录集)中没有与第二个线数据集(或者线记录集)中的对象有相交的对象。
交点将作为错误生成到结果数据集中,错误数据集类型:点。
检查后: |
public static final TopologyRule VERTEX_DISTANCE_GREATER_THAN_TOLERANCE
检查点、线、面类型的两个数据集内部或者两个数据集之间对象的节点距离是否小于容限。
不大于容限的节点将作为错误生成到结果数据集中,错误数据集类型:点。
注意:如果两节点重合,即距离为0,则不视为拓扑错误。
检查后: |
public static final TopologyRule LINE_EXIST_INTERSECT_VERTEX
线、面类型的数据集内部或两个数据集之间,线段与线段十字相交处必须存在节点,且此节点至少存在于两个相交线段中的一个。
如不满足则将此交点计算出来作为错误生成到结果数据集中,错误数据集类型:点。
注意:两条线段端点相接的情况不违反规则。
检查后: |
public static final TopologyRule VERTEX_MATCH_WITH_EACH_OTHER
检查线、面类型数据集内部或两个数据集之间,点数据集和线数据集、点数据集和面数据之间,在当前节点 P 的容限范围内,线段 L 上应存在一个节点 Q 在与之匹配,即 Q 在 P 的容限范围内。
如不满足,则计算 P 到 L 的“垂足” A 点(即 A 与 P 匹配)作为错误生成到结果数据集中,错误数据集类型:点。
检查后: |
public static final TopologyRule NO_REDUNDANT_VERTEX
检查线数据集或面数据集中是否存在有冗余节点的对象。线对象或面对象边界上的两节点之间如果存在其他共线节点,则这些共线节点为冗余节点。
冗余节点将作为错误生成到结果数据集中,错误数据类型:点。
检查后: |
public static final TopologyRule LINE_NO_SHARP_ANGLE
检查线数据集(或记录集)中线对象存在连续两个小于容限的夹角则作为打折检出,可用于检查道路因编辑错误导致的重复线段。
产生打折的所有尖角点作为错误生成到结果数据集中,错误数据类型:点。
注意:在使用 TopologyValidator.validate
方法对该规则检查时,通过该方法的 tolerance 参数设置尖角容限。
检查后: |
public static final TopologyRule LINE_NO_SMALL_DANGLES
检查线数据集(或记录集)中线对象是否是短悬线。一条悬线的长度小于悬线容限的线对象即为短悬线
短悬线的端点作为错误生成到结果数据集中,错误数据类型:点。
注意:在使用 TopologyValidator.validate
方法对该规则检查时,通过该方法的 tolerance 参数设置短悬线容限。
检查后: |
public static final TopologyRule LINE_NO_EXTENDED_DANGLES
检查线数据集(或记录集)中线对象是否是长悬线。一条悬线按其行进方向延伸了指定的长度(悬线容限)之后与某弧段有交点,则该线对象为长悬线。
长悬线需要延长一端的端点作为错误生成到结果数据集中,错误数据类型:点。
注意:在使用 TopologyValidator.validate
方法对该规则检查时,通过该方法的 tolerance 参数设置长悬线容限。
检查后: |
public static final TopologyRule REGION_NO_ACUTE_ANGLE
检查面数据集(或记录集)中面对象是否存在锐角。若面边界线上连续三个节点形成的夹角小于所给的锐角角度容限,则认为此夹角为锐角。
产生锐角的第二个节点作为错误生成到结果数据集中,错误数据类型:点。
注意:在使用 TopologyValidator.validate
方法对该规则检查时,通过该方法的 tolerance 参数设置锐角容限。
检查后: |
public static final TopologyRule POINT_NO_COVERED_BY_REGION
检查点数据集(或者点记录集)中被面数据集(或者面记录集)中某一个对象覆盖(位于面对象边界及内部)的点对象。例如需要检查房屋与水面高程点,高程点不能位于房屋面内部及边界。
被面覆盖(位于面对象边界及内部)的点将作为错误生成到结果数据集中,错误数据集类型:点。
检查后: |
public static final TopologyRule LINE_NO_ACUTE_ANGLE
检查线数据集(或记录集)中线对象是否存在锐角。若线上连续三个节点形成的夹角小于所给的锐角角度容限,则认为此夹角为锐角。
产生锐角的第二个节点作为错误生成到结果数据集中,错误数据类型:点。
注意:在使用 TopologyValidator.validate
方法对该规则检查时,通过该方法的 tolerance 参数设置锐角容限。
检查后: |
Copyright © 2021–2024 SuperMap. All rights reserved.