该枚举定义了拓扑规则类型常量,主要用于对点、线和面数据进行拓扑检查,是拓扑检查的一个参数。根据相应的拓扑规则,检查出不符合规则的对象,并将错误结果保存到简单数据集或者 CAD 数据集中。目前已有部分拓扑规则支持三维矢量数据集。

命名空间:  SuperMap.Data
程序集:  SuperMap.Data (in SuperMap.Data)
版本: dll

语法

C#
public enum TopologyRule

成员

成员名称描述
RegionNoOverlap

面内无重叠,用于对面数据进行拓扑检查。支持三维空间矢量数据。

检查一个面数据集(或者面记录集)中相互有重叠的面对象。此规则多用于一个区域不能同时属于两个对象的情况。如行政区划面,相邻的区划之间要求不能有任何重叠,行政区划数据上必须是每个区域都有明确的地域定义。此类数据还包括:土地利用图斑、邮政编码覆盖区划、公民投票选区区划等。

重叠部分作为错误生成到结果数据集中,错误数据集类型:面。

注意:只对一个数据集或记录集本身进行检查。

RegionNoGaps

面内无缝隙,用于对面数据进行拓扑检查。支持三维空间矢量数据。

检查一个面数据集(或者面记录集)中相邻面之间有空隙的面对象。此规则多用于检查一个面数据中,单个区域或相邻区域之间有空隙的情况。一般对于如土地利用图斑这样的数据,要求不能有未定义土地利用类型的斑块,可使用此规则进行检查。

空隙部分作为错误生成到结果数据集中,错误数据集类型:面。

注意:

  1. 只对一个数据集或记录集本身进行检查。
  2. 若被检查的面数据集(或记录集)中存在自相交面对象,则检查可能失败或结果错误。建议检查时,先进行“面内无自相交”(RegionNoSelfIntersection)规则检查,或自行对自相交面进行修改,确认无自相交对象后再进行“面内无缝隙”规则检查。
RegionNoOverlapWith

面与面无重叠,用于对面数据进行拓扑检查。支持三维空间矢量数据。

检查两个面数据集中重叠的所有对象。此规则检查第一个面数据集中,与第二个面数据有重叠的所有对象。如将水域数据与旱地数据叠加,可用此规则检查。

重叠部分作为错误生成到结果数据集中,错误数据集类型:面。

RegionCoveredByRegionClass

面被多个面覆盖,用于对面数据进行拓扑检查。

检查第一个面数据集(或者面记录集)中没有被第二个面数据集(或者面记录集)中的面对象覆盖的对象。如:省界 Area1 中每一个省域都必须完全被县界 Area2 属于该省的面域覆盖。

未覆盖的部分将作为错误生成到结果数据集中,错误数据集类型:面。

RegionCoveredByRegion

面被面包含,用于对面数据进行拓扑检查。

检查第一个面数据集(或者面记录集)中没有被第二个面数据集(或者面记录集)中任何对象包含的对象。即面数据 1 的区域都必须被面数据 2 的某一个区域完全包含。

未被包含的面对象整个将作为错误生成到结果数据集中,错误数据集类型:面。

RegionBoundaryCoveredByLine

面边界被多条线覆盖,用于对面数据进行拓扑检查。

检查面数据集(或者面记录集)中对象的边界没有被线数据集(或者线记录集)中的线覆盖的对象。通常用于行政区界或地块和存储有边界线属性的线数据进行检查。面数据中不能存储一些边界线的属性,此时需要专门的边界线数据,存储区域边界的不同属性,要求边界线与区域边界线完全重合。

未被覆盖的边界将作为错误生成到结果数据集中,错误数据集类型:线。

RegionBoundaryCoveredByRegionBoundary

面边界被边界覆盖,用于对面数据进行拓扑检查。

检查面数据集(或者面记录集)中边界没有被另一面数据集(或者面记录集)中对象(可以是多个)的边界覆盖的对象。

未被覆盖的边界将作为错误生成到结果数据集中,错误数据集类型:线。

RegionContainPoint

面包含点,用于对面数据进行拓扑检查。

检查面数据集(或者面记录集)中没有包含任何点数据集(或者点记录集)中点的对象。例如省域数据与省会数据进行检查,每个省内都必须有一个省会城市,不包含任何点数据的面对象,都将被检查出来。

未包含点的面对象将作为错误生成到结果数据集中,错误数据集类型:面。

RegionNoOverlapOnBoundary

面边界无交叠,用于对面数据进行拓扑检查。

检查面数据集或记录集中的面对象的边界与另一面数据集或记录集中的对象边界有交叠的部分。

边界重叠的部分将作为错误生成到结果数据集中,错误数据集类型:线。

RegionNoSelfIntersection

面内无自相交,用于对面数据进行拓扑检查。

检查面数据中是否存在自相交的对象。

面对象自相交的交点将作为错误生成到结果数据集中,错误数据集类型:点。

LineNoIntersection

线内无相交,用于对线数据进行拓扑检查。

检查一个线数据集(或者线记录集)中相互有相交(不包括端点和内部接触及端点和端点接触)的线对象。

交点将作为错误生成到结果数据集中,错误数据集类型:点。

注意:只对一个数据集或记录集本身进行检查。

LineNoOverlap

线内无重叠,用于对线数据进行拓扑检查。

检查一个线数据集(或者线记录集)中相互有重叠的线对象。

对象之间重叠的部分将作为错误生成到结果数据集中,错误数据集类型:线。

注意:只对一个数据集或记录集本身进行检查。

LineNoDangles

线内无悬线,用于对线数据进行拓扑检查。支持三维空间矢量数据。

检查一个线数据集(或者线记录集)中被定义为悬线的对象,包括过头线和长悬线。一条悬线的外侧端点到最近节点的距离大于(节点捕捉)容限即为悬线,距离小于容限时会被捕捉到最近节点,则不判定为悬线。

悬点将作为错误生成到结果数据集中,错误数据集类型:点。

注意:只对一个数据集或记录集本身进行检查。

LineNoPseudonodes

线内无假结点,用于对线数据进行拓扑检查。

检查一个线数据集(或者线记录集)中包含假结点的线对象。

假结点将作为错误生成到结果数据集中,错误数据集类型:点。

注意:只对一个数据集或记录集本身进行检查。

LineNoOverlapWith

线与线无重叠,用于对线数据进行拓扑检查。支持三维空间矢量数据。

检查第一个线数据集(或者线记录集)中和第二个线数据集(或者线记录集)中的对象有重叠的所有对象。如交通路线中的公路和铁路不能出现重叠。

重叠部分作为错误生成到结果数据集中,错误数据集类型:线。

LineNoIntersectOrInteriorTouch

线内无相交或无内部接触,用于对线数据进行拓扑检查。

检查一个线数据集(或者线记录集)中和其它线对象相交的线对象,即除端点之间接触外其它所有的相交或内部接触的线对象。

交点作为错误生成到结果数据集中,错误数据集类型:点。

注意:线数据集(或者线记录集)中所有交点必须是线的端点,即相交的弧段必须被打断,否则就违反此规则。(自交不检查)

LineNoSelfOverlap

线内无自交叠,用于对线数据进行拓扑检查。

检查一个线数据集(或者线记录集)内相互有交叠(交集是线)的线对象。

自交叠部分(线)将作为错误生成到结果数据集中,错误数据集类型:线。

注意:只对一个数据集或记录集本身进行检查。

LineNoSelfIntersect

线内无自相交,用于对线数据进行拓扑检查。支持三维空间矢量数据。

检查一个线数据集(或者线记录集)内自相交的线对象(包括自交叠的情况)。

交点将作为错误生成到结果数据集中,错误数据集类型:点。

注意:只对一个数据集或记录集本身进行检查。

LineBeCoveredByLineClass

线被多条线完全覆盖,用于对线数据进行拓扑检查。

检查第一个线数据集(或者线记录集)中没有与第二个线数据集(或者线记录集)中的对象有重合的对象。

未被覆盖的部分将作为错误生成到结果数据集中,错误数据集类型:线。

注意:线数据集(或线记录集)中每一个对象,都必须被另一个线数据集(或者线记录集)中的一个或多个线对象覆盖。如Line1中的某条公交路线必须被Line2中的一系列相连的街道覆盖。

LineCoveredByRegionBoundary

线被面边界覆盖,用于对线数据进行拓扑检查。

检查线数据集(或者线记录集)中没有与面数据集(或者面记录集)中某个对象的边界重合的对象。(可被多个面的边界覆盖)。

未被边界覆盖的部分将作为错误生成到结果数据集中,错误数据集类型:线。

LineEndpointCoveredByPoint

线端点必须被点覆盖,用于对线数据进行拓扑检查。

检查线数据集(或者线记录集)中的端点没有与点数据集(或者点记录集)中任何一个点重合的对象。

未被覆盖的端点将作为错误生成到结果数据集中,错误数据集类型:点。

LineNoIntersectionWith
线与线无相交,即线对象和线对象不能相交。支持三维空间矢量数据。

检查第一个线数据集(或者线记录集)中没有与第二个线数据集(或者线记录集)中的对象有相交的对象。

交点将作为错误生成到结果数据集中,错误数据集类型:点。

LineNoIntersectionWithRegion

线不能和面相交或被包含。

检查线数据集(或者线记录集)中和面数据集(或者面记录集)中的面对象相交或者被面对象包含的线对象。

线面交集部分将作为错误生成到结果数据集中,错误数据集类型:线。

PointNoIdentical

无重复点,用于对点数据进行拓扑检查。支持三维空间矢量数据。

返回点数据集中的重复点对象。点数据集内发生重叠的对象都将作为拓扑错误生成。

所有重复的点将作为错误生成到结果数据集中,错误数据集类型:点。

注意:只对一个数据集或记录集本身进行检查。

PointNoContainedByRegion

点不被面包含。支持三维空间矢量数据。

检查点数据集(或者点记录集)中被面数据集(或者面记录集)中某一个对象内部包含的点对象。

被面包含的点将作为错误生成到结果数据集中,错误数据集类型:点。

注意:点若位于面边界上,则不违背此规则。

PointCoveredByLine

点必须在线上,用于对点数据进行拓扑检查。

检查点数据集(或者点记录集)中没有被线数据集(或者线记录集)中的某个对象覆盖的对象。如高速公路上的收费站。

未被覆盖的点将作为错误生成到结果数据集中,错误数据集类型:点。

PointCoveredByRegionBoundary

点必须在面的边界上,用于对点数据进行拓扑检查。

检查点数据集(或者点记录集)中没有在面数据集(或者面记录集)中某个对象的边界上的对象。

不在面边界上的点将作为错误生成到结果数据集中,错误数据集类型:点。

PointContainedByRegion

点被面完全包含,用于对点数据进行拓扑检查。支持三维空间矢量数据。

检查点数据集(或者点记录集)中没有被面数据集(或者面记录集)中任何一个对象内部包含的点对象。

不在面内的点将作为错误生成到结果数据集中,错误数据集类型:点。

PointBeCoveredByLineEndpoint

点必须被线端点覆盖,用于对点数据进行拓扑检查。

检查点数据集(或者点记录集)中没有被线数据集(或者线记录集)中任意对象的端点覆盖的对象。

未被覆盖的点将作为错误生成到结果数据集中,错误数据集类型:点。

NoMultipart

无复杂对象。

检查一个数据集或记录集内包含子对象的复杂对象,适用于面和线。

复杂对象将作为错误生成到结果数据集中,错误数据集类型:线或面。

含复杂对象的线数据:
含复杂对象的面数据:
VertexDistanceGreaterThanTolerance
节点距离必须大于容限。

检查点、线、面类型的两个数据集内部或者两个数据集之间对象的节点距离是否小于容限。

不大于容限的节点将作为错误生成到结果数据集中,错误数据集类型:点。

注意:如果两节点重合,即距离为0,则不视为拓扑错误。

VertexMatchWithEachOther
节点之间必须互相匹配。

检查线、面类型数据集内部或两个数据集之间,点数据集和线数据集、点数据集和面数据之间,在当前节点 P 的容限范围内,线段 L 上应存在一个节点 Q 与之匹配,即 Q 在 P 的容限范围内。

如不满足,则计算 P 到 L 的“垂足” A 点(即 A 与 P 匹配)作为错误生成到结果数据集中,错误数据集类型:点。

LineExistIntersectVertex
线段相交处必须存在交点。

线、面类型的数据集内部或两个数据集之间,线段与线段十字相交处必须存在节点,且此节点至少存在于两个相交线段中的一个。

如不满足则将此交点计算出来作为错误生成到结果数据集中,错误数据集类型:点。

注意:两条线段端点相接的情况不违反规则。

NoRedundantVertex
线或面边界无冗余节点。

检查线数据集或面数据集中是否存在有冗余节点的对象。线对象或面对象边界上的两节点之间如果存在其他共线节点,则这些共线节点为冗余节点。

冗余节点将作为错误生成到结果数据集中,错误数据类型:点。

LineNoSharpAngle
线内无打折。

检查线数据集(或记录集)中线对象是否存在打折。若一条线上连续四个节点形成的两个夹角均小于所给的尖角角度容限,则认为线段在此处打折。

产生尖角的第一个折点作为错误生成到结果数据集中,错误数据类型:点。

注意:在使用 TopologyValidator.Validate 方法对该规则检查时,通过该方法的 tolerance 参数设置尖角容限。

LineNoSmallDangles
线内无短悬线,用于对线数据进行拓扑检查。

检查线数据集(或记录集)中线对象是否是短悬线。一条悬线的长度小于悬线容限的线对象即为短悬线。

短悬线的端点作为错误生成到结果数据集中,错误数据类型:点。

注意:在使用 TopologyValidator.Validate 方法对该规则检查时,通过该方法的 tolerance 参数设置短悬线容限。

LineNoExtendedDangles
线内无长悬线,用于对线数据进行拓扑检查。

检查线数据集(或记录集)中线对象是否是长悬线。一条悬线按其行进方向延伸了指定的长度(悬线容限)之后与某弧段有交点,则该线对象为长悬线。

长悬线需要延长一端的端点作为错误生成到结果数据集中,错误数据类型:点。

注意:在使用 TopologyValidator.Validate 方法对该规则检查时,通过该方法的 tolerance 参数设置长悬线容限。

RegionNoAcuteAngle
面内无锐角,用于对面数据进行拓扑检查。

检查面数据集(或记录集)中面对象是否存在锐角。若面边界线上连续三个节点形成的夹角小于所给的锐角角度容限,则认为此夹角为锐角。

产生锐角的第二个节点作为错误生成到结果数据集中,错误数据类型:点。

注意:在使用 TopologyValidator.Validate 方法对该规则检查时,通过该方法的 tolerance 参数设置锐角容限。

PointNoCoveredByRegion

点不被面覆盖,用于对点数据进行拓扑检查。

检查点数据集(或者点记录集)中被面数据集(或者面记录集)中某一个对象覆盖(位于面对象边界及内部)的点对象。例如需要检查房屋与水面高程点,高程点不能位于房屋面内部及边界。

被面覆盖(位于面对象边界及内部)的点将作为错误生成到结果数据集中,错误数据集类型:点。

版本信息

SuperMap iObjects .NET


请参见