我们在实际的图形处理中,一些图形要求满足一定的要素之间的关系,如二次调查中的地类图斑不能在行政区以外,图斑不能相互重叠,这些特定的图形之间的关系我们可以定义一些拓扑规则来加以限制。
一、点之间的拓扑关系
拓扑一(Point-Area):Must be covered by boundary of,(原始解释:点必须在多边形边界上。)例如:在地籍建库中,界址点必须在宗地的边界上,要是不在,那就是错误。
拓扑二:Must be covered by endpoint of,(原始解释:点要素必须位于线要素的端点上。)例如:水龙头必需在水管的末端(废话!要在中间怎么用?)。
规则三:Point must be covered by line,(原始解释:点要素必须在线要素之上。)例如:地籍测量中,界址点必需在界址线上。(和规则三是有差别的!)
规则四:Must be properly inside polygons,(原始解释:点要素必须在多边形要素内,在边界上也不行。)
二、线拓扑规则
规则一:Must not overlap,在同一层要素类中(同一层之间的关系),线与线不能相互重叠,修正的办法是将不需要的线段截断,再删除。
规则二:Must not intersect,同一层要素中,线与线不能重叠和相交(同一层之间的关系)。修正方法:重合处合并,相交处打断。
规则三:Must be covered by feature class of,同一层中某个要素类中的线段必须被另一要素类中的线段覆盖(同一层之间的关系)。修正方法:将错误线段删除,再重新输入正确的。
规则四:Must not overlap with,两个线要素类中的线段不能重叠。(不同图层中线对线的关系)
规则五:Must be covered by boundary of,线要素必须被多边形要素的边界覆盖(线与多边形之间的拓扑关系)。修正方法:删除错误的线,或编辑多边形。
规则六:Must not have dangles,不允许线要素有悬结点,即每一条线段的端点都不能孤立,必须和本要素中其他要素或和自身相接触(同一线层之间的拓扑关系)。修正方法:将有悬点的线段延伸到其他要素上,或者将长出的部分截断后删除。
规则七:Must not have Pseudos,不能有伪结点,就是一条线段中间不能有断点。修正方法:将伪结点两边的线段合并为一个条线,伪结点自然消除。
规则八:Must not self-overlap,线要素不能和自己重叠,修正方法:截断、删除重叠部分。
规则九:Must not self intersect,线要素不能自相交,就是不能和自己搅在一起。修正方法:在自相交处适当缩短或外移。
规则十:Must be single part,线要素必须单独,不能联合。但若是两条线首尾相连接,这时候Merge操作后产生的是一条线了,这时候是不会报错的。但是分开的两条线进行Merge操作,这时候就会出现不符合规则的错误。这个拓扑限制在数据处理的时候很有用处。修正方法:将连合的部分打散就可以了。
规则十一:Must not intersect or touch interior,线和线不能交叉,端点不能和非端点接触(非接触点部分相互重叠是允许的),两条线相交时(两条线)必然有断点。修改方法:剪断没有断点的线,(不是节点,而是端点)。
规则十二:End point must be covered by,线要素的端点被点要素覆盖。修正方法:增补新的点要素或调整不应该出现的线段。
三、面拓扑规则
规则一:Must not overlap,同一多边形要素类中多边形之间不能重叠(同一层之间的拓扑关系,不涉及到其他图层)。例如,宗地之间不能有重叠。修正方法很灵活。
规则二:Must not have gaps,多边形之间不能有空隙(同层之间的拓扑关系)。例如:一个土地利用图斑层里面必需是被图版填满的,中间不能有一丝缝隙。修正方法根据实际来定,很灵活。
规则三:Must not overlap with,一个要素类中的多边形不能与另一个要素类中的多边形重叠。(两个不同面层之间的关系。)
规则四:Must be covered by feature class of,多边形要素中的每一个多边形都被另一个要素类中的多边形覆盖(两个不同面层之间的拓扑关系)。
规则五:Must cover each other,两个要素类中的多边形要相互覆盖,外边界要一致(层与层之间的拓扑关系)。
规则六:Must be covered by,每个多边形要素都要被另一个要素类中的单个多边形覆盖。例如,建筑物多边形必须在宗地多边形内,不能出现跨越(层与层之间的拓扑关系)。
规则七:Boundary must be covered by,多边形的边界必须和线要素的线段重合(面与线之间的关系)。
规则八:Area boundary must be covered by boundary of,某个多边形要素类的边界线在另一个多边形要素类的边界上。例如,县、市边界上必须有乡、镇边界,而且前者的边界必须被后者所重合。违反规则的地方将产生线错误,修正的方法是手工编辑边界。
规则九:Contain point,多边形内必须包含点要素(边界上的点不再多边形内)。
[第一部分_拓扑规则介绍]
拓扑规则有若干专用术语
相交(Intersect):线和线交叉,并且只有一点重合,该点不是结点(端点),称之相交。
接触(Touch):某线段的端点和自身或其他线段有重合,称为接触。
悬结点(Dangle Node,Dangle):线段的端点悬空,没有和其他结点连接,这个结点(端点)称为悬结点。
伪结点(Pseudo Node):两个结点相互接触,连接成一个结点,称为伪结点。
拓扑规则的种类可以按点、线、面(多边形)来分。以下介绍Geodatabase的拓扑规则,
点拓扑规则举例
点拓扑规则一:Must be covered by boundary of,点必须在多边形边界上。例如,有一个点要素类代表公共汽车站,另有一个多边形要素类代表地块,按本规则,公共汽车站必须位于地块的边界上。另一个例子是行政界碑必须落在行政区多边形的边界上。不满足该规则的点要素被标记为错误。
点拓扑规则二:Must be covered by endpoint of,点要素必须位于线要素的端点上。例如,阀门为点要素,必须位于线要素类输水管的尽端。不满足该规则的点要素被标记为错误。
点拓扑规则三:Point must be covered by line,点要素必须在线要素之上。例如,点要素代表河流上的航标灯,线要素代表河流,航标灯必须位于河流上。另一个例子是:汽车站(点要素类)必须在道路(线要素类)上。不满足该规则的点要素被标记为错误。
点拓扑规则四:Must be properly inside polygons,点要素必须在多边形要素内(在边界上不算)。比如,省行政区为多边形,省会城市为点,省会一定要在该省内。另一个例子是代表住宅地址的点必须在住宅用地多边形内。不满足该规则的点要素被标记为错误。
可以看出,点要素本身不能建立拓扑规则,必须和线要素或多边形要素一起才能建立拓扑规则。修正错误的常用方法是删除或移动错误点(移动也可以理解为删除后立即添加)。
多边形拓扑规则举例
规则一:Must not overlap,同一多边形要素类中多边形之间不能重叠(几个多边形边界共享一个点或共享一条边不算重叠)。例如,宗地之间不能有重叠,行政区不能有重叠。重叠的部分将产生多边形错误,修正错误的方法有三种:一是删除重叠部分,留出空白;二是将重叠的部分并到某个多边形;三是在重叠部分新增多边形,并删除原来的重叠部分。
规则二:Must not have gaps,多边形之间不能有空隙。比如,规定表示土壤类型的多边形之间不能有空隙。不满足规则的地方将产生线错误,表示空隙多边形,修正的方法是调整原来的边界,或添加新的多边形。
规则三:Contain point,多边形内必须包含点要素(边界上的点不算)。例如,规定宗地内至少有一个地址点。不包含点的多边形被视为错误,修正的方法是在错误多边形内补一个点,或者将多余的多边形删除。
规则四:Boundary must be covered by,多边形的边界必须和线要素的线段重合。例如,交通调查小区的边界必须和道路线要素类重合。违反规则的地方产生线错误,修正的方法可以是调整线段,也可调整多边形。
规则五:Must be covered by feature class of,多边形要素中的每一个多边形都被另一个要素类中的多边形覆盖。例如,城市规划区必须在若干行政区划内,工业建筑多边形必须在工业用地内。违反规则的地方产生多边形错误,修正的方法是在重叠的部分增加新的多边形或调整错误多边形。
规则六:Must be covered by,每个多边形要素都要被另一个要素类中的单个多边形覆盖。例如,建筑物多边形必须在宗地多边形内,不能出现跨越(规则五可以跨越)。不满足规则的地方产生多边形错误,修正的方法是调整第一类多边形,使它们不要和第二类有交叉,或者扩大第二个要素类中的某些多边形,使它们能覆盖第一类中的错误多边形。
规则七:Must not overlap with,一个要素类中的多边形不能与另一个要素类中的多边形重叠。虽然和规则一相似,都是说不能重叠,但这里是指两个多边形要素类(Feature Class)之间的关系。比如,一个要素类表示湖泊,另一个要素类表示陆地,它们是相互独立的类,显然它们应该满足该规则。重叠的部分产生多边形错误,修正方法同规则一。
规则八:Must cover each other,两个要素类中的多边形要相互覆盖,外边界要一致。例如,土壤层范围和地质层范围应一致。违反规则的地方将产生多边形错误,修正错误的方法是在重叠不到的地方增加多边形,或者调整、删除不重叠的部分。
规则九:Area boundary must be covered by boundary of,某个多边形要素类的边界线在另一个多边形要素类的边界上。例如,县、市边界上必须有乡、镇边界,而且前者的边界必须被后者所重合。违反规则的地方将产生线错误,修正的方法是手工编辑边界。
多边形不仅可以定义自身的规则,而且可以和点要素、线要素、其他多边形要素之间建立起拓扑关系。
线拓扑规则举例
规则一:Must not have dangles,不允许线要素有悬结点,即每一条线段的端点都不能孤立,必须和本要素中其他要素或和自身相接触。例如,宗地边界线段不能有悬结点。违反规则的地方将产生点错误,修正的方法是将有悬点的线段延伸到其他要素上,或者将长出的部分截断后删除。
规则二:Must not have pseudo node,不能有伪结点,即线段的端点不能仅仅是两个端点的接触点(自身首位接触是例外),例如河流。违反规则的地方将产生点错误,修正的方法是将伪结点两边的线段合并为一个条线,伪结点自然消除。
规则三:Must not overlap,在同一要素类中,线与线不能相互重叠,例如,街道、河流。违反规则的地方产生线错误,修正的办法是将不需要的线段截断,再删除。
规则四:Must not self overlap,线要素不能和自己重叠,例如,街道。违反规则的地方产生线错误,修正的方法是截断、删除重叠部分。
规则五:Must not intersect,同一要素中,线与线不能相交,例如,河流、宗地边界(这里不是多边形边界,是线要素)。违反规则的地方产生线错误,修正的方法是重合处合并,相交处打断。
规则六:Must not self intersect,同一要素类中,线要素不能自相交。违反规则的地方将产生线错误和点错误,修正的方法是在自相交处适当缩短或外移。
规则七:Must not intersect or touch interior,线和线不能交叉,端点不能和非端点接触(非接触点部分相互重叠是允许的)。例如,铁路和铁路可以重合,但不能交叉。某铁路端点不能和其他铁路的非端点部分接触。违反规则的地方产生线错误和点错误,根据实际需要编辑、修正。
规则八:Must be single part,线要素必须单独,不能相互接触、重叠。违反规则的地方产生线错误,修正的方法是将接触的地方合并,成为一个要素,或移动后分离。
规则九:Must not overlap with,两个线要素类中的线段不能重叠。例如,道路和铁路不能相互重叠。违反规则的地方产生线错误,根据实际需要编辑、修正。
规则十:Must be covered by feature class of,某个要素类中的线段必须被另一要素类中的线段覆盖。例如,公交线路必须在道路上行驶。违反规则的地方将产生线错误,修正的方法是将错误线段删除,再重新输入正确的。
规则十一:End point must be covered by,线要素的端点被点要素覆盖。例如,每一条公交线路的尽端都有终点站。违反规则的地方将产生错误,修正的方法是增补新的点要素或调整不应该出现的线段。
规则十二:Must be covered by boundary of,线要素必须被多边形要素的边界覆盖。例如,城市的内部道路至少一侧有地块多边形边界。违反规则的地方产生线错误,修正的方法是删除错误的线,或编辑多边形。
一个要素类允许设置多个拓扑规则,但是这些规则必须定义在一个拓扑类中。
[第二部分_topolopy说明]
Arcgis中topolopy说明:
在arcgis中有关topolopy操作,,有两个地方,一个是在arccatalog中,一个是在arcmap中。通常我们将在arccatalog中建立拓扑称为建立拓扑规则,而在arcmap中建立拓扑称为拓扑处理。
arccatalog中所提供的创建拓扑规则,主要是用于进行拓扑错误的检查,其中部分规则可以在溶限内对数据进行一些修改调整。建立好拓扑规则后,就可以在arcmap中打开些拓扑规则,根据错误提示进行修改。
arcmap中的topolopy工具条主要功能有对线拓扑(删除重复线、相交线断点等,topolopy中的planarize lines)、根据线拓扑生成面(topolopy中的construct features)、拓扑编辑(如共享边编辑等)、拓扑错误显示(用于显示在arccatalog中创建的拓扑规则错误,topolopy中的error inspector),拓扑错误重新验证(也即刷新错误记录)。
[第三部分_创建拓扑规则的具体步骤]
在arccatalog中创建拓扑规则的具体步骤:
要在arccatalog中创建拓扑规则,必须保证数据为geodatabase格式,且满足要进行拓扑规则检查的要素类在同一要素集下。
因此,首先创建一个新的geodatabase,然后在其下创建一个要素集,然后要创建要素类或将其它数据作为要素类导入到该要素集下。
进入到该要素集下,在窗口右边空白处单击右键,在弹出的右键菜单中有new->topolopy,然后按提示操作,添加一些规则,就完成拓扑规则的检查。
最后在arcmap中打开由拓扑规则产生的文件,利用topolopy工具条中错误记录信息进行修改。
[第四部分_Geodatabase]
Geodatabases中,将地理数据组织成为数据对象(data objects)。这些数据对象存储于要素类(feature class)、对象类(object class)或要素集(feature datasets)中。
对象类(object class)用于存储非空间信息。
要素类(feature class)则存储了空间信息及其相应的属性信息,在同一个要素类中,空间要素的几何形状必须一致,比如必须都是点、线或者面。简言之,要素类是同类要素的集合。
要素集(feature dataset)用于存放具有同一空间参考(spatial reference)的要素类。存放了简单要素的要素类可以存放于要素集中,也可以作为单个要素类直接存放在Geodatabase的目录下。直接存放在Geodatabase目录下的要素类也称为独立要素类(standalone feature)。存储拓扑关系的要素类必须存放到要素集中,使用要素集的目的是确保这些要素类具有统一的空间参考,以利于维护拓扑。Geodatabase支持要素类之间的逻辑完整性,体现为对复杂网络(complex networks)、拓扑规则和关联类等的支持。下面描述Geodatabase中的数据对象(data objects)。
要素类(Feature class)
要素类,可称为点、线或面类型要素的集合,同时,地图的文本信息也可用注记(annotation)要素类存储。非独立要素类,也就是相关联的要素类(如参与拓扑规则或者几何网络的要素类),以要素集的形式管理到一起。
栅格数据集(Raster data set)
以栅格表的形式管理的单或多波段栅格数据。
表(Tables)
描述非空间信息的表。
关联类(Relationships)
关联类是一种机制:从一个表(要素类)中选择记录以后,可以在相关联的表(要素类)中可以获取到相应记录。
域(Domains)
列有效值的一个列表(或范围)。
子类(Subtypes)
将要素类中的要素进行了逻辑分组,每一个分组便是一个子类。每一个这样的都有其完整性规则和GIS行为(如高速公路,是道路要素的一个子集)。
空间关系(Spatial relationships)
在拓扑工具(topologies)或几何网络(Geometric network)中定义。拓扑规则可以指定要素类中的要素之间有何种空间关系,如地块之间不能重叠(overlap),或者多个不同要素类中的要素之间的空间关系,比如国家首都(点要素)必须位于该国家疆土(面要素)上。 元数据(Metadata)