路线概述
具有通用测量系统的路线集合称为路线系统。路线系统通常定义具有相似属性的线状要素。例如,某县所有公交车路线的集合就是一个路线系统。
一个 coverage 中可以存在许多路线系统。例如,城市 coverage 中可能存在校车、卡车和救护车路线系统。
路线系统使用弧线、路线和弧段来构建,并且可以精确地模拟线状要素而无需修改基本弧结点拓扑。
下图所示的路线使用四条弧线进行定义。请注意路线的端点是如何沿弧线放置的。路线不必以结点开始和结束。
如下所示,弧段是用于定义每条路线的弧线或弧线部分。它们构成路线系统的基础。
下图显示了包含距离测量值(例如,里程标志数或地址)的属性示例,这可用来定位诸如事故点或路面质量等事件。
路线系统的路线和弧段存储在两个 INFO 数据文件中,一个是用来定义路线要素类的路线属性表 (RAT),另一个是用来定义弧段要素类的弧段表 (SEC)。这两个要素类一起用来定义路线系统。路线要素类和弧段要素类通常被称为路线子类和弧段子类,因为一个 coverage 中可能存在许多这样的要素类,而每个要素类与是否存在弧线要素类相关。
RAT 和 SEC 是以 INFO 数据文件形式存储的要素属性表。RAT 和 SEC 共同组成一个路线系统。路线系统必须始终具有一个名称。例如,名为 ROADS 的 coverage 可能具有一个包含校车路线的名为 BUS 的路线系统。相应的 INFO 数据文件名为 ROADS.RATBUS 和 ROADS.SECBUS。同样地,名为 HAZARD 的路线系统具有名为 ROADS.RATHAZARD 和 ROADS.SECHAZARD 的 INFO 文件。
RAT 和 SEC 在 coverage 中如何协调
路线系统的 RAT 和 SEC 存储在它们所引用的 coverage 中。编辑或更新弧线时,将自动保持路线和弧段的完整性。事件不是 coverage 的组成部分,而只是引用外部源的路线系统。
下图显示了 ROADS coverage 中的 RAT、SEC 和 ARC 文件是如何相互配合来实现名为 BUS 的路线系统的。SEC 中的 ARCLINK# 项指向 ARC 文件中弧线的内部编号。SEC 文件中的 F-POS 和 T-POS 项参考弧线的坐标。RAT 和 SEC 通过 SEC 中的 ROUTELINK# 和 RAT 中的 <子类># 相互关联。
为何使用路线来表示线状要素?
要关联线状要素的事件,必须使用基于弧线要素的路线、弧段和测量值来定义路线系统。
使用路线系统表示线状要素的原因主要有两个:
- 为了避免在每次更改属性值时分割弧线(例如,要在线上动态定位事件)
- 为了能够使用动态分段对以路线测量值显示的大型数据集进行映射、分析和操作
使用弧线表示线状要素时,必须在每次更改沿线状要素的属性时使用新弧线,即使尚未检测到交叉点也是如此。分割弧线不仅多余,而且浪费时间,此外还不允许您沿线状要素动态定位事件。
运输、公共安全和消防部门以及公用事业和快递公司均使用路径测量值来维护大型的事件数据库。例如,“高速公路 400 千米 145”说明了高速公路信息(例如,标志位置、出口坡道、路面质量、车道封闭、限速区、事故位置等)的通用记录方法。此数据通常保留在可通过 ArcGIS 访问、映射和分析的外部数据库中。
这些单独的事件不仅可以进行映射,而且还可以将与其他事件相关联。基础的线性地理对象也是如此。这种与沿线的异构数据相关联的功能与拓扑叠加相似;可将其视为线-线叠加或点-线叠加。路径测量值提供位置信息;ArcGIS 提供使用此数据的工具。
路线属性表
RAT 包含用来识别路线的项。创建 RAT 后,可向其中添加任意数量的用户定义属性。RAT 至少包含以下各项:
路径属性表
项名称 | 目录 |
---|---|
<子类># | 路线的内部编号 |
<子类> ID | 用户定义的路线标识符 |
RAT 可以包括许多用来组成特定路线系统的路线。例如,公交车路线系统可以代表城市中的所有公交车路线。以下是名为 BUS 的路线系统的 RAT 示例。
此路线属性表说明了具有一条路线的公交车路线系统的编码方式。
路线可以显示大量的结构特征。最常见的路线是无分支的连续路线,但路线也可以包含分支或不相交弧段。动态分段数据模型完全支持这些路线类型。
分配给路线的测量值也可以显示多种特征。测量值通常沿路线单调递增,即测量值只会增大而从不减小。测量系统所显示的其他特征可能包括不连续测量值(测量间距)或叠置测量值(路线上某个位置的多个测量值)。
RAT 总是与随附的 SEC 同时创建。
弧段表
SEC 中的弧段记录包含若干项。这些项用来将弧段与特定路线相关联、定义该路线部分的测量值,以及定义弧线上弧段的起始和终止位置。SEC 包括以下各项:
弧段表
项名称 | 目录 |
---|---|
ROUTELINK# | 识别弧段所属的路线(RAT 内部编号) |
ARCLINK# | 识别弧段所参考的弧线(ARC 和 AAT 文件中弧线的内部编号) |
F-MEAS | 弧段的起始测量值 |
T-MEAS | 弧段的终止测量值 |
F-POS | 弧段的起始位置,该位置被定义为从起始结点开始测量的弧线长度的百分比 |
T-POS | 弧段的终止位置,该位置被定义为从起始结点开始测量的弧线长度的百分比 |
<子类># | 弧段的内部编号 |
<子类> ID | 用户定义的弧段标识符 |
路线中所有弧段的 ROUTELINK# 值与 RAT 中该路线的 <子类># 相等。这用于将路线与其弧段相关联。路线不能脱离其弧段而存在。
创建 SEC 后,可向其中添加任意数量的用户定义属性。但是,属性通常不存储在 SEC 中。用来对整条路线进行描述的属性存储在 RAT 中。用来描述路线部分的属性被存储为事件。
如何定义弧段
此弧段表说明了如何编码名为 BUS 的路线系统的各个弧段。此表包含从属于一条路线的三个弧段。弧线 7 的 40% 到 100% 之间的弧段被定义为弧段 1。整条弧线 8 被定义为弧段 2。弧线 9 的 0 到 30% 之间的弧段被定义为弧段 3。
弧段位置
弧线上弧段的位置在 SEC 中被存储为起始值和终止值。这些值表示从弧线的起始结点开始测量的弧线的百分比距离。例如,在上图中,由于第一个弧段位于弧线 7 上,因而它对应的 F-POS 和 T-POS 位置项的编码为 40 和 100,即从该弧线的 40% 到 100%(即弧线的末尾)。上图假定弧线的方向与路线相同。如果弧线的方向与其相交的路线相反,SEC 中起始位置项和终止位置项的值将会颠倒。
弧段的测量值
SEC 中的测量值指定路线中弧段的排序方式。这些值与弧段的端点相关联。可对测量值自动进行计算;默认情况下使用弧线的长度。例如,上图中第一个弧段是公交车路线的开始。弧线长度为 90 个单位。请注意,此长度的 60% 是 54 个单位。因此,输入的起始测量值为 0,而终止测量值为 54。
通常,关联 RAT 与 SEC 同时创建。然而,可以只有 SEC,而没有随附的 RAT。没有关联 RAT 的 SEC 将被视为包含无路线的弧段。不建议创建和使用无路线的弧段,因为在没有 RAT 的情况下无法显示和操作事件数据。