相交(Intersect):线和线交叉,并且只有一点重合,该点不是结点(端点),称之相交。
接触(Touch):某线段的端点和自身或其他线段有重合,称为接触。
悬结点(Dangle Node,Dangle):线段的端点悬空,没有和其他结点连接,这个结点(端点)称为悬结点。
伪结点(Pseudo Node):两个结点相互接触,连接成一个结点,称为伪结点。
拓扑规则的种类可以按点、线、面(多边形)来分。以下介绍Geodatabase的拓扑规则,共25条,每条规则有一幅图对应,图的左半部分是符合规则的例子,右半部分例子中有不符合规则的地方。
2.点拓扑规则举例
点拓扑规则一:Must be covered by boundary of,点必须在多边形边界上。例如,有一个点要素类代表公共汽车站,另有一个多边形要素类代表地块,按本规则,公共汽车站必须位于地块的边界上。另一个例子是行政界碑必须落在行政区多边形的边界上。不满足该规则的点要素被标记为错误(附图1)。
点拓扑规则二:Must be covered by endpoint of,点要素必须位于线要素的端点上。例如,阀门为点要素,必须位于线要素类输水管的尽端。不满足该规则的点要素被标记为错误(附图2)。
点拓扑规则三:Point must be covered by line,点要素必须在线要素之上。例如,点要素代表河流上的航标灯,线要素代表河流,航标灯必须位于河流上。另一个例子是:汽车站(点要素类)必须在道路(线要素类)上。不满足该规则的点要素被标记为错误(附图3)。
点拓扑规则四:Must be properly inside polygons,点要素必须在多边形要素内(在边界上不算)。比如,省行政区为多边形,省会城市为点,省会一定要在该省内。另一个例子是代表住宅地址的点必须在住宅用地多边形内。不满足该规则的点要素被标记为错误(附图4)。
可以看出,点要素本身不能建立拓扑规则,必须和线要素或多边形要素一起才能建立拓扑规则。修正错误的常用方法是删除或移动错误点(移动也可以理解为删除后立即添加)。
3.多边形拓扑规则举例
规则一:Must not overlap,同一多边形要素类中多边形之间不能重叠(几个多边形边界共享一个点或共享一条边不算重叠)(附图5)。例如,宗地之间不能有重叠,行政区不能有重叠。重叠的部分将产生多边形错误,修正错误的方法有三种:一是删除重叠部分,留出空白;二是将重叠的部分并到某个多边形;三是在重叠部分新增多边形,并删除原来的重叠部分。
规则二:Must not have gaps,多边形之间不能有空隙。比如,规定表示土壤类型的多边形之间不能有空隙(附图6)。不满足规则的地方将产生线错误,表示空隙多边形,修正的方法是调整原来的边界,或添加新的多边形。
规则三:Contain point,多边形内必须包含点要素(边界上的点不算)(附图7)。例如,规定宗地内至少有一个地址点。不包含点的多边形被视为错误,修正的方法是在错误多边形内补一个点,或者将多余的多边形删除。
规则四:Boundary must be covered by,多边形的边界必须和线要素的线段重合(附图8)。例如,交通调查小区的边界必须和道路线要素类重合。违反规则的地方产生线错误,修正的方法可以是调整线段,也可调整多边形。
规则五:Must be covered by feature class of,多边形要素中的每一个多边形都被另一个要素类中的多边形覆盖(附图9)。例如,城市规划区必须在若干行政区划内,工业建筑多边形必须在工业用地内。违反规则的地方产生多边形错误,修正的方法是在重叠的部分增加新的多边形或调整错误多边形。
规则六:Must be covered by,每个多边形要素都要被另一个要素类中的单个多边形覆盖。例如,建筑物多边形必须在宗地多边形内,不能出现跨越(规则五可以跨越)(附图10)。不满足规则的地方产生多边形错误,修正的方法是调整第一类多边形,使它们不要和第二类有交叉,或者扩大第二个要素类中的某些多边形,使它们能覆盖第一类中的错误多边形。
规则七:Must not overlap with,一个要素类中的多边形不能与另一个要素类中的多边形重叠。虽然和规则一相似,都是说不能重叠,但这里是指两个多边形要素类(Feature Class)之间的关系。比如,一个要素类表示湖泊,另一个要素类表示陆地,它们是相互独立的类,显然它们应该满足该规则(附图11)。重叠的部分产生多边形错误,修正方法同规则一。
规则八:Must cover each other,两个要素类中的多边形要相互覆盖,外边界要一致(附图12)。例如,土壤层范围和地质层范围应一致。违反规则的地方将产生多边形错误,修正错误的方法是在重叠不到的地方增加多边形,或者调整、删除不重叠的部分。
规则九:Area boundary must be covered by boundary of,某个多边形要素类的边界线在另一个多边形要素类的边界上(附图13)。例如,县、市边界上必须有乡、镇边界,而且前者的边界必须被后者所重合。违反规则的地方将产生线错误,修正的方法是手工编辑边界。
多边形不仅可以定义自身的规则,而且可以和点要素、线要素、其他多边形要素之间建立起拓扑关系。
4.线拓扑规则举例
规则一:Must not have dangles,不允许线要素有悬结点,即每一条线段的端点都不能孤立,必须和本要素中其他要素或和自身相接触(附图14)。例如,宗地边界线段不能有悬结点。违反规则的地方将产生点错误,修正的方法是将有悬点的线段延伸到其他要素上,或者将长出的部分截断后删除。
规则二:Must not have pseudo node,不能有伪结点,即线段的端点不能仅仅是两个端点的接触点(自身首位接触是例外),例如河流(附图15)。违反规则的地方将产生点错误,修正的方法是将伪结点两边的线段合并为一个条线,伪结点自然消除。
规则三:Must not overlap,在同一要素类中,线与线不能相互重叠,例如,街道、河流(附图16)。违反规则的地方产生线错误,修正的办法是将不需要的线段截断,再删除。
规则四:Must not self overlap,线要素不能和自己重叠,例如,街道(附图17)。违反规则的地方产生线错误,修正的方法是截断、删除重叠部分。
规则五:Must not intersect,同一要素中,线与线不能相交,例如,河流、宗地边界(这里不是多边形边界,是线要素)(附图18)。违反规则的地方产生线错误,修正的方法是重合处合并,相交处打断。
规则六:Must not self intersect,同一要素类中,线要素不能自相交(附图19)。违反规则的地方将产生线错误和点错误,修正的方法是在自相交处适当缩短或外移。
规则七:Must not intersect or touch interior,线和线不能交叉,端点不能和非端点接触(非接触点部分相互重叠是允许的)(附图20)。例如,铁路和铁路可以重合,但不能交叉。某铁路端点不能和其他铁路的非端点部分接触。违反规则的地方产生线错误和点错误,根据实际需要编辑、修正。
规则八:Must be single part,线要素必须单独,不能相互接触、重叠(附图21)。违反规则的地方产生线错误,修正的方法是将接触的地方合并,成为一个要素,或移动后分离。
规则九:Must not overlap with,两个线要素类中的线段不能重叠(附图22)。例如,道路和铁路不能相互重叠。违反规则的地方产生线错误,根据实际需要编辑、修正。
规则十:Must be covered by feature class of,某个要素类中的线段必须被另一要素类中的线段覆盖(附图23)。例如,公交线路必须在道路上行驶。违反规则的地方将产生线错误,修正的方法是将错误线段删除,再重新输入正确的。
规则十一:End point must be covered by,线要素的端点被点要素覆盖。例如,每一条公交线路的尽端都有终点站(附图24)。违反规则的地方将产生错误,修正的方法是增补新的点要素或调整不应该出现的线段。
规则十二:Must be covered by boundary of,线要素必须被多边形要素的边界覆盖(附图25)。例如,城市的内部道路至少一侧有地块多边形边界。违反规则的地方产生线错误,修正的方法是删除错误的线,或编辑多边形。
一个要素类允许设置多个拓扑规则,但是这些规则必须定义在一个拓扑类中。