在网络上使用方位角以更加精确地定位点

当您执行网络分析时,Network Analyst 必须确定每个分析输入所在的网络数据集上的位置。 将根据多个因素来计算网络位置,其中包括输入的地理位置、将使用其输入的网络分析的设置,以及用于定位输入的工具或功能中的用户指定位置设置。

了解有关定位网络分析输入的详细信息

车辆行驶方向是一个附加因素,可以帮助精度确定其在网络上的位置。 下图说明了这一原理。

无方位角的 GPS 位置表示为圆圈
由于缺少方位角信息,因此难以确定车辆所在的街道。 车辆可能位于南北方向或东西方向的街道上。
具有方位角的 GPS 位置表示为三角形
如果包含方位角信息,则可以明显地看到车辆将在南北方向的街道上向北行驶。

ArcGIS Network Analyst extension 允许您使用此原则在网络数据集上精确定位点。

除了当前地理位置之外,GPS 设备通常还会计算方位角。 在网络分析期间,您可以在定位网络上的点时使用此信息。 这样做可以更准确地放置网络分析对象。 另外,这还有助于防止驾驶员混淆,因为通过这些移动点生成的路径和方向更有可能从正确的位置开始。

常见的做法是,例如,使用配备 GPS 接收器的移动电话将货车当前位置和方位角发送给 ArcGIS Server,此信息将在其中加载为路径分析中的第一个停靠点。 货车尚未到达的其它停靠点也同样被加载,对路径进行求解并将结果和方向发送回驾驶员的手机上。 在此过程中使用方位角信息有助于防止货车在碰巧靠近十字路口或立交桥时在错误的街道上开始其路径。 此信息还有助于 ArcGIS Network Analyst extension 验证车辆行驶的方向,以使生成路径的起点和车辆当前行驶的方向匹配。

方位角和 BearingTol 字段

ArcGIS Network Analyst extension 可以使用网络分析输入中 BearingBearingTol 字段的方位角信息。 这些字段如下所述。

  • Bearing- 车辆或行人的移动方向。 必须以度为单位指定方位角,并从正北开始顺时针进行测量。 通常,值介于 0 和 360 之间;然而,Network Analyst 也可以解释负值,方法是从 360 度中减掉这些值。
  • BearingTol- 方位角容差 (bearing tolerance) 的简称,在此字段处指定车辆行驶方向和从 Network Analyst 试图定位车辆的街道上一点引出的切线之间的最大可接受差异。 换言之,方位角容差用来确定车辆移动的方向是否大体上与基础道路一致。 如果它们在给定容差范围内,车辆将定位在这条边上;如果没在给定范围内,将计算出下一个最近的合适边。

    BearingTol 单位为度,默认值为 30。 可以选择任何大于 0 且小于 180 的容差。

Network Analyst 及 Bearing 和 BearingTol 字段

以下步骤概述了 Network Analyst 评估方位角字段的方式:

  1. Network Analyst 可将点捕捉到最近的边。
  2. 将根据最近的边上的点来计算方位角容差,以设置最小和最大方位角值。 将针对两个行驶方向执行此操作。
  3. 执行操作时,应分别比较用户所添加的点的方位角与两个行使方向上的最小和最大允许方位角值的差值。
    • 如果所添加点的方位角在容差范围之内,则点将作为网络位置添加到该处。 还会确定道路上的行驶方向 - 该方向与方位角容差(方位角在其范围内)的方向匹配。
    • 如果方位角在容差范围外,则不定位此点,并将计算下一个最近的合适边的方位角容差。 (有些边由于其他原因无法计算;例如,如果您已选择不在受限元素上定位或排除所有的高速公路。 在这种情况下,被禁止的所有边或公路都将跳过。)此过程会重复执行,直到将点定位到合适的边上,或者在超出指定的捕捉容差之后,此点保持未定位状态为止。

在分析中使用 Bearing 和 BearingTol 字段

使用网络分析图层执行分析并加载输入类(例如停靠点、设施点或起始点)的点时,添加位置工具将自动使用输入表中的 BearingBearingTol 字段。 无需使用字段映射或进行任何特殊配置。 如果字段存在于输入数据中,则将使用这些字段。

使用 Network Analyst 模块 arcpy.nax 在 Python 中执行分析时,BearingBearingTol 字段将显式包含在每个分析输入类的受支持字段列表中。 要使用这些字段,可以使用 load 方法的 field_mappings 参数将输入中的字段映射到输入类中的字段中,操作方法与您要映射的任何其他输入字段一样。

了解有关 Network Analyst 模块中字段映射的详细信息

注:
在预先计算网络位置时,计算位置工具不会使用 BearingBearingTol 字段。

警告:
方位角可能会影响分析输入所在的街道(定位计算的一部分),但不会影响车辆到达和离开某个位置的方向(求解计算的一部分)。 例如,如果车辆的方位角指向北,则 Bearing 和 BearingTol 字段将帮助其定位在南北方向的道路上。 然而,在求解时,生成的路径可能从该位置向南行驶,以实现到下一停靠点的最短路径。 可以使用CurbApproach字段来控制到达和离开某个位置的行驶方向。

在使用 BearingBearingTol 字段时,请记住以下几点:

  • 输入数据中的 BearingBearingTol 字段必须为短整型、长整型或双精度型数据。
  • 如果某点的映射输入字段值为空,则将以标准方式定位此点,即不考虑方位角和方位角容差。

示例

下方的系列图形和附带的标题说明了 Network Analyst 处理 BearingBearingTol 字段的方式。

向北行驶的车辆
1. 一辆带有移动电话 GPS 接收器的车辆向北行驶,穿过一个四向交叉路口,并将其当前位置和方位角发送到运行 Network Analyst 扩展模块的 ArcGIS Server
GPS 坐标和方位角
2. 黑线代表网络边。 三角形和虚线表示 GPS 接收器记录的车辆位置和方位角。 请注意,捕获的位置相当不准确,可能是由于 GPS 接收器不准确或数字化街道不准确导致,或者两者兼有。 GPS 接收器显示方位角大约为 345º,也稍微有些偏差;因为车辆正向北行驶,所以应该是 0º。
方位角在方位角容差范围之外
3. 点将捕捉到最近的边,并与方位角容差(在本示例中显示为蓝色渐变区域)进行比较。 BearingTol 值为 30,因此在东西方向上,公差在边的任一侧都跨越了 15 度。 添加的红色箭头表示在两个方向上的方位角都超过 15 度。 因为方位角在容差范围外,因此点不会定位到此边上。
方位角在方位角容差范围内
4. 方位角在方位角容差范围内时,该点被捕捉到下一个最近边上并且在此处作为网络位置加载。 另外,Network Analyst 扩展模块知道对象在向北移动,因为方位角落在朝北的方位角容差范围内。