什么是网络分析对象?
网络分析对象是网络分析类中的要素或记录并作为网络分析图层的输入和输出。要有效地执行网络分析,需要了解网络分析对象是什么以及应如何使用它们。
有些网络分析对象是仅提供了分析所需的图表数据的记录。这类对象仅存在于车辆配送 (VRP) 分析图层中。其他网络分析对象则是既包含地理位置又包含图表数据的要素。然而不管怎样,大部分网络分析对象都是含有图表数据、地理位置和一个关于网络数据集位置的网络位置。以下部分将对网络位置进行更详细的介绍。
网络位置
网络位置是一种与网络密切相关的网络分析对象;而且,它在网络上的位置也被用作分析的输入。有些网络位置(如路径上的停靠点)只能位于网络上的某一离散点处;还有些网络位置(如表示构造的线障碍)则可以占据一条或多条边的一部分。
点网络位置
当网络位置为点时,其在网络上的位置将由属性表中的如下四个网络字段定义:
- SourceID: 网络位置所在的源要素类的数字标识符。
- SourceOID: 源要素的数字标识符。
- PosAlong:沿源线要素的数据化方向的位置点。该值以比率形式存储;然而,如果网络位置引用的是一个交汇点,则该值为空。
- SideOfEdge:线要素的数字化方向上的边侧。该字段被限制为一个仅有两个值的属性域:右侧 (1) 和左侧 (2)。
下表列出了可以更精确地定义为网络位置的网络分析对象。它们按网络分析图层进行分组。
网络分析图层 |
网络位置 |
---|---|
路径 |
停靠点 |
点障碍 | |
服务区 |
设施点 |
点障碍 | |
最近设施点 |
设施点 |
事件点 | |
点障碍 | |
OD 成本矩阵 |
起始点 |
目的地 | |
点障碍 | |
车辆配送 (VRP) |
停靠点 |
站点 | |
点障碍 | |
位置分配 |
设施点 |
请求点 | |
点障碍 |
网络位置示例:路径停靠点
为了更好地了解网络位置字段,请考虑下面的示例。表示路径起点和终点的两个点(下图中的 1 和 2)被作为路径分析图层中的停靠点进行加载。尽管这些点并不直接落在街道上,但可在网络中确定与其最近的位置,并将这个最近位置存储为这些停靠点的四个网络字段的数值。接下来,对路径分析进行求解以找到最佳路径。生成的路径将从网络中离停靠点 1 最近的位置(点 a)开始,到网络中离停靠点 2 最近的位置(点 b)结束。
在上面的示例中,停靠点 1 和 2 是分别通过点 a 和 b 连接到网络的两个网络位置点。下面的属性表显示了它们的网络字段。
SourceID 字段用于标识网络位置所在的网络数据集的源要素类,在本例中为 Streets。SourceOID 用于标识网络位置所在的特定街道要素的 ObjectID(分别为 6460 和 6746)。PosAlong 指示停靠点 1 位于源要素的 47.8% 的位置处,SideOfEdge 指示该停靠点沿着线的数字化方向位于要素的左侧。同样,停靠点 2 位于街道 6746 右侧的 45.2% 位置处。
网络位置范围
当网络位置为线状要素时,其在网络中的位置将由单个 BLOB 字段即Locations 来定义。该字段中的信息定义了哪些元素被对象覆盖以及覆盖每个边元素的哪一部分。访问和解释 BLOB 中的信息超出了本文档的介绍范围,但如果您要利用 ArcObjects 进行编程,可能会涉及到访问和解释 BLOB 中的信息。
仅基于线并且可以更精确地定义为网络位置的网络分析对象就是线障碍和面障碍。
将面归类为线性位置乍看起来好像并不正确;但想到网络其实是一维的之后,这种归类方式便不难理解了。尽管面为二维形式,但网络本身只能利用面与网络重叠的部分。因此,ArcGIS Network Analyst 扩展模块使面与网络内部相交以将面简化为线(也可能简化为点),然后将其转换为网络位置范围。请注意,无论 Network Analyst 以何种形式存储面要素,ArcGIS 都会继续在地图显示中将其绘制为面。
搜索容差和捕捉环境
搜索容差和捕捉环境属性可帮助您在网络中为所添加或移动的网络位置处查找一个网络位置。这些属性都是网络分析图层的一部分,可在图层属性 对话框的网络位置选项卡中找到。
创建分析图层时,如果搜索容差和捕捉环境的默认值不合适,应重新对其设置。这样可确保分析中所需要的输入要素位于网络上。这些设置在执行下列操作时用到:
搜索容差
搜索容差指定了 ArcGIS 在查找用来放置表示点网络位置的网络元素时可搜索的最大半径。默认容差为 5,000 米。如果某个点落在搜索容差之外,则生成的网络位置将为未定位状态,这意味着它在网络中没有位置并且无法将其正确地纳入分析中。
线障碍等网络位置范围不受搜索容差的影响。这意味着它们必须精确地与网络相互重叠才能起作用。
在下图中,对两个点进行定位时,搜索容差被设置为 50 米。其中一个点未定位,因为它与任何网络要素之间的距离均大于 50 米。
在接下来的图中,两个点均已定位,因为搜索容差被设置为一个较大的值(100 米)。
网络位置的捕捉环境
您可能需要将停靠点定位在特定的源要素处;例如,您可能需要定位在交汇点而不是街道上,或者在多模式网络中放置停靠点时,您可能需要将其定位在街道而不是铁路线上。您甚至可能需要定位在交汇点处,如果在搜索容差内未找到任何交汇点,则定位在街道上。
点网络位置总是直接位于网络中,即使用来表示它们的符号不直接位于网络中也是如此。网络位置字段准确地描述了对象在网络中的位置。如果您想要网络位置符号捕捉到网络位置字段所指代的点,需要更改 Network Analyst 选项,这些选项可从 Network Analyst 工具条的下拉菜单中进行访问。在该下拉菜单中,可选中沿网络捕捉到位置并指定所需偏移量。
如果网络数据集具有多个源,则可选择应该用于定位网络元素的源要素类。要在多个源中查找最近的网络元素,请单击最近,并在捕捉到表中至少选中想要用来进行定位的其中一个源对应的复选框。对于每个源,您都可以选择网络位置是沿要素 (Shape) 方向上、要素中间还是要素末端的最近一个点处进行定位。
另一方面,您可以选择捕捉到某个源中最近的元素,如果在搜索容差内未找到此源中的元素,则捕捉到第二个源中最近的元素,依此类推。要执行此操作,请单击查找网络位置部分的第一个,并在捕捉到表中至少选中两个源的复选框。
通过选择表中的源,然后使用右侧的上下箭头按钮可以对源进行重新排序。
下图演示了如何使用上图中的设置来确定网络位置。
通过仅选中交汇点源可以更改设置以便捕捉到交点。例如,如果想要网络位置始终位于表示公司设施点的源要素上,则可以改为选中此源。
使用“构建查询”的捕捉环境
还可以定义查询以将搜索范围限制在源要素类的要素子集内。这在不想查找可能不适合网络位置的要素时很有用。例如,如果正在加载面的质心,但不想定位在地方道路上,则可定义一个仅搜索主要道路的查询。
通过右键单击查找网络位置面板中的网络源要素类并选择构建查询可以访问查询构建器。
查询构建器对话框的功能与按属性选择对话框相似。
排除网络的受限部分
通过选中该选项,使得网络位置仅放置在网络的可遍历部分。这样可防止将网络位置放在因限制或障碍而无法到达的元素上。
捕捉环境和网络位置范围
对于线障碍等网络位置范围,捕捉环境确定了要用来定位网络分析对象的源要素类。由于网络位置范围仅位于与其叠置的元素上,所以搜索容差将被忽略。
如果有两个源要素类 - “街道”和“铁路” - 而且未选中“铁路”,那么即使障碍将铁路覆盖,随后添加的所有线或面障碍也将仅位于道路上。
加载正在使用的网络位置
创建网络位置后,将使用空间搜索来计算网络位置字段。
如果加载之前定位的网络位置,则位置字段中将包含所有对其进行重新定位所需的信息。因此,可以复制其网络位置字段值并且可以避免相对较慢的空间搜索。
如果您使用了其他网络分析中的要素或运行了计算位置地理处理工具,则网络位置字段已存在。
仅当加载引用同一网络数据集的各网络分析图层时,才应使用位置字段。此外,自上一次确定了网络数据集在网络中的位置后不应该重新构建网络数据集。否则,网络位置字段可能会引用错误的源要素。
默认情况下,在分析图层之间复制和粘贴大量的网络位置时,ArcGIS 会使用位置字段。例如,如果您将 100 个点作为停靠点加载到路径分析图层中,并想在最近设施点分析图层中使用相同的停靠点,则将这些位置从路径图层复制并粘贴到最近设施点图层要比使用空间搜索从点要素类中加载它们快得多。
未定位的网络位置
如果在创建或移动点网络位置(如停靠点)时,其几何在网络数据集中源要素的搜索容差范围内,则它将仅引用网络中的有效位置。Network Analyst 提供的默认搜索容差为 5,000 米。可对此搜索容差进行修改以搜索较小或较大的区域。如果在搜索容差范围内未找到任何网络要素,则网络位置的“状态”字段将被设置成“未定位”。
网络分析对象的属性
网络分析对象的属性具有不同的用途。所输入的属性值用作分析的输入 - 这包括添加或移动网络位置时所计算的网络位置字段。有些属性用作分析输出项的容器。所以在求解后,您可在输出字段中检查结果。此外,还有同时具有这两种用途的输入/输出字段。
可通过网络分析类的属性表或各个网络分析对象的属性窗口来指定输入并检查输出。
可通过双击 Network Analyst 窗口中列出的对象来访问属性窗口。然而,网络分析对象并不始终在 Network Analyst 窗口中列出。例如,如果单个类包含数千个网络分析对象,它们将不会显示在 Network Analyst 窗口中。某些类往往具有大量的对象(如 OD 成本矩阵中的线),所以单个线对象从来不会显示在 Network Analyst 窗口中。在上述情况中,需要使用属性表来查看字段值。