空间拓扑描述的是自然界地理对象的空间位置关系-相邻、重合、连通等,是地理对象空间属性的一部分。目前ESRI提供的数据存储方式中,Coverage和GeoDatabase能够建立拓扑,Shape格式的数据不能建立拓扑。
1、 GeoDatabase建立拓扑的基础:
- GeoDatabase实现拓扑的基础是”几何重合”,GeoDatabase中的地理对象都是实体存储,主要是根据节点坐标是否重合来判断地理要素之间是否存在某种拓扑关系。
- 拓扑只能在要素集(FeatureDataset)中创建,参加创建拓扑的所有要素类(FeatureClass)必须具有相同的空间参考。
- 参与拓扑创建的必须是简单要素类,注记类(Annoca),尺寸和几何网络要素类不能参与拓扑的创建。
- 单个要素集可以创建多个拓扑。
2、 GeoDatabase拓扑中的重要概念。
- 规则:表达要素之间的空间关系,ESRI提供了27种拓扑关系。
- 拓扑容限,决定在多大范围内要素能够被捕捉在一起(也称为聚类容限(cluster tolerance))。
- 拓扑等级,控制在拓扑验证的过程中节点移动的级别。这时候,等级低的要素类将向等级高的要素类移动,最高级别为1,最低级别为-50。
- 脏区(dirty area):脏区就是参与拓扑创建时被修改的地理要素(增,删,改)的区域。
- 错误要素(Error Feature):只要素类中不符合拓扑规则的要素或者要素的一部分。
3、 27种拓扑关系:
- esriTRTAny:任何拓扑规则,在查询拓扑的时候用。
- esriTRTFeatureLargerThanClusterTolerance:地理要素小于聚类容限被删除。
- esriTRTAreaNoGaps:面是封闭的。
- esriTRTAreaNoOverlap:面不相交。
- esriTRTAreaCoveredByAreaClass:The rule is an area covered by area class rule。
- esriTRTAreaAreaCoverEachOther:两个区域完全重合。
- esriTRTAreaCoveredByArea:一个区域被另一个区域覆盖。
- esriTRTAreaNoOverlapArea:一个面没有相交的面。
- esriTRTLineCoveredByAreaBoundary:线被区域的边线覆盖。
- esriTRTPointCoveredByAreaBoundary:点在面的边界上。
- esriTRTPointProperlyInsideArea:点完全在面内。
- esriTRTLineNoOverlap:无重合的线。
- esriTRTLineNoIntersection:无相交的线。
- esriTRTLineNoDangles:无摇摆的线。
- esriTRTLineNoPseudos:线不存在伪节点。
- esriTRTLineCoveredByLineClass:The rule is a line covered by line class rule。
- esriTRTLineNoOverlapLine:The rule is a line-no overlap line rule。
- esriTRTPointCoveredByLine:点被线覆盖。
- esriTRTPointCoveredByLineEndpoint:点被线的尾节点覆盖。
- esriTRTAreaBoundaryCoveredByLine:一个面的边界被线覆盖。
- esriTRTAreaBoundaryCoveredByAreaBoundary:一个面的边界被另一个面的边界覆盖。
- esriTRTLineNoSelfOverlap:不存在自重合的线。
- esriTRTLineNoSelfIntersect:不存在自相交的线。
- esriTRTLineNoIntersectOrInteriorTouch:The rule is a line-no intersect or interior touch rule。
- esriTRTLineEndpointCoveredByPoint:线的尾节点被点覆盖。
- esriTRTAreaContainPoint:面包含点。
- esriTRTLineNoMultipart:The rule is a line cannot be multipart rule。
来源:https://www.cnblogs.com/shenhu-aihua/archive/2012/02/25/2367817.html