在 Standard 或 Advanced 许可等级下可用。
当您站在山上俯瞰风景时,可以轻易辨认出纵横交错的街道和相邻的房屋。计算机所使用的用来标识这些关系的数学逻辑就是拓扑。
拓扑明确定义地理数据中相连或相邻要素之间的空间关系。实际操作中的原则相当简单:空间关系以列表的形式表达(例如,面由构成它边界的弧段的列表定义)。
创建和存储拓扑关系具有许多优势。数据可以高效地存储,因而大型数据集可以得到快速处理。拓扑还为分析功能提供便利,例如通过网络中的连接线建立流向模型、将具有相似特征相邻面合并、识别相邻要素以及叠加地理要素。
coverage 的拓扑结构支持三个主要的拓扑概念:
- 连通性:弧在结点处彼此相连。
- 区域定义:围绕区域连接的弧定义一个面。
- 邻接:弧具有方向以及左右两侧。
连通性
连通性通过弧-结点拓扑定义。这是许多网络追踪和路径查找操作的基础。连通性允许您标识到机场的路径、将溪流连接到河流或者跟随从污水处理厂到住宅的路径。
在弧结点数据结构中,弧由两个端点定义:“自”结点表示弧起点,“至”结点表示弧终点。这被称为弧-结点拓扑。
弧-结点拓扑通过弧-结点列表获得支持。列表会标识出每条弧段的起始结点和终止结点。相连弧段通过在整个列表中搜索公共结点编号来确定。在以下示例中,可以确定弧 1、2 和 3 全部相交,因为它们共享结点 11。计算机可确定沿着弧段 1 行进可以转到弧段 3,因为它们共享公共结点 (11),但是从弧段 1 无法直接转到弧段 5,因为它们不具有共享的公共结点。
区域定义
许多可表示的地理要素覆盖了地球表面上的可辨识区域,例如湖、土地的宗地以及人口普查区域。区域在矢量模型中由一条或多条定义面的边界表示。尽管这听起来与直觉相违背,但是请思考中央有个岛的湖。此湖实际上具有两条边界:一条定义它的外边界,另一条定义它的内边界(岛)。在矢量模型的术语中,岛定义面的内边界(或孔洞)。
弧-结点结构以有序弧段列表(而不是 x,y 坐标的闭合环)的形式表示面。这被称为面-弧拓扑。在下图中,面 F 由弧段 8、9、10 和 7(7 之前的 0 表示该弧段在面中创建了一个岛)组成。
每条弧段都出现在两个面中(下图中,列表中的弧段 6 出现在 B 和 C 中)。由于面仅是定义其边界的弧段的列表,弧段坐标只被存储一次,因而可减少数据量并确保相邻面的边界不发生重叠。
邻接
共享同一边界的两个地理要素被称为相邻要素。邻接是一种拓扑概念,它允许矢量数据模型判断相邻情况。面拓扑定义邻接。如果各个面共享公共弧段,则它们就是彼此邻接的。这是许多邻域和叠加操作的基础。
回想一下,上文提到过起始结点和终止结点共同定义一条弧段。这样就可以指示出弧段的方向,以便确定其左右两侧的面。左-右拓扑是指弧段左右两侧的面。下图中,面 B 在弧段 6 的左侧,面 C 在右侧。这样,我们就知道面 B 和面 C 是相邻的。
请注意,面 A 的标注位于区域边界的外侧。该面被称为外部(或外)多边形,表示研究区域以外的世界。外多边形确保每条弧段始终具有定义的左侧和右侧。
生成拓扑
本节内容仅适用于 ArcGIS Desktop Advanced。
“Coverage 属性”对话框上的“常规”选项卡显示具有拓扑的要素类。此外,从该选项卡中,您还可获得有关 coverage 的其他重要信息,例如 coverage 在磁盘上的存储位置以及它是单精度 coverage 还是双精度 coverage。当单击要素类时,它包含的要素数量会显示在该选项卡的底部。
如果本应包含拓扑的要素类丢失了拓扑,您可使用“Coverage 属性”对话框上的“构建”或“清理”命令,或者使用“构建”工具或“清理”工具生成拓扑。您可能还会使用“构建”命令为要素类创建要素属性表。“构建”命令会假设坐标数据是正确的。“清理”命令会查找交叉弧段并在每个交叉点上放置结点。“清理”命令还会校正指定容差范围内的未及和过伸错误。对于带有初级拓扑的面 coverage 和区域 coverage,红色指示符会出现在 coverage 和相应要素类的图标中。
“清理”工具会使用模糊容差。它表示“清理”工具可在多大的范围内移动要素、消除重复结点、在线相交处创建结点,以及消除重复要素。模糊容差以 coverage 单位来度量。使用“清理”工具时,指定合适的模糊容差从而避免错误地消除必要的要素至关重要。