生成起点-目的地成本矩阵 (即用型)

描述

生成起点-目的地成本矩阵服务工具用于创建从多个起点到多个目的地的起点-目的地 (OD) 成本矩阵。OD 成本矩阵是一个包含从每个起点到每个目的地的行驶时间和行驶距离的表文件。此外,还可根据从每个起点行进到每个目的地所需的最短时间或距离,对每个起点所连接的目的地按升序排序。在街道网络中为每对起点-目的地找出最佳路径,并将行驶时间和行驶距离存储为输出线的属性。虽然出于显示性能方面的考虑,这些线本身都是直的,但是它们始终存储的是街道网络中的行驶时间和行驶距离,而不是直线距离。

警告:

有关此工具的最新信息,请参阅 Web 帮助中本主题的最新版本ArcGIS Online 会定期对此类服务进行功能更新,因此安装的帮助可能已过期。

了解有关“生成起点-目的地成本矩阵”输出的信息

插图

起点-目的地成本矩阵解决方案

使用方法

  • 即用型工具箱中的工具是利用 ArcGIS Online 托管数据和分析要素的 ArcGIS Online 地理处理服务。

  • 如果测量单位参数是基于时间的,则该工具会根据行驶时间查找最近设施点。同样,若测量单位是基于距离的,则工具会使用行驶距离。

  • 要成功执行该工具,至少需要指定一个起始点和一个目的地。最多可添加 1000 个起始点和 1000 个目的地。

  • 最多可以添加 250 个点障碍。您可以添加任意数量的线障碍或面障碍,但是线障碍与街道要素的相交数量不得超过 500,面障碍与要素的相交数量不得超过 2,000。

  • 求解时可选择使用道路等级以便比使用准确路径时更快地生成结果,但解决方案可能欠佳。

  • 无论是否选中应用等级参数 (True),只要任何一对停靠点之间的直线距离大于 50 英里(80.46 千米),便会应用等级。

  • 当出行模式设置为步行时或者设置为自定义并且使用步行约束条件时,所有起点-目的地对之间的直线距离均不得大于 50 英里(80.46 千米)。

  • 如果输入点与其最近的可穿过街道之间的距离大于 12.42 英里(20 千米),则将从分析中排除该点。

  • 使用此服务会消耗配额。有关详细信息,请参阅服务配额概述

语法

GenerateOriginDestinationCostMatrix(Origins, Destinations, {Travel_Mode}, {Time_Units}, {Distance_Units}, {Analysis_Region}, {Number_of_Destinations_to_Find}, {Cutoff}, {Time_of_Day}, {Time_Zone_for_Time_of_Day}, Point_Barriers, Line_Barriers, Polygon_Barriers, {UTurn_at_Junctions}, {Use_Hierarchy}, {Restrictions}, {Attribute_Parameter_Values}, {Impedance}, Origin_Destination_Line_Shape, {Save_Output_Network_Analysis_Layer}, {Overrides}, {Time_Impedance}, {Distance_Impedance}, {Output_Format})
参数说明数据类型
Origins

指定行驶到目的地的起点。

最多可以添加 1000 个起始点。

指定起点后,可通过使用以下属性为每个起点设置属性,例如其名称或目的地数:

Name

起点的名称。该名称可以是起点的唯一标识符。该名称包含在输出线 (作为 OriginName 字段)和输出起始点(作为 Name 字段)中,并且可将工具输出的附加信息连接到起始点的属性。

如果未指定名称,则会自动生成前缀为 Location 的唯一名称。

TargetDestinationCount

要为起始点查找的最大目的地数。

如果未指定任何值,则将使用要查找的目的地数参数中的值。

此字段允许您为每个起点指定要查找的不同数量的目的地。例如,使用此字段,您可以找到距一个起点最近的三个目的地,以及距另一个起点最近的两个目的地。

Cutoff

停止从指定起点搜索目的地时所对应的阻抗值。此属性允许您为每个目的地指定不同的中断值。例如,使用此属性,您可以指定搜索距一个起点五分钟行驶时间以内的目的地,并搜索距另一个起点八分钟行驶时间以内的目的地。

中断的单位与阻抗属性的单位相同。如果未指定任何值,则将使用中断参数中的值。

CurbApproach

指定车辆离开起点的方向。该字段值可指定为以下整数之一(请使用数值代码而非括号中的名称):

  • 0(车辆的任意一侧)- 车辆可从任一方向离开起点,因此起点处允许 U 形转弯。如果车辆有可能要在起点处调头,则可以选择该设置。此决策可能取决于道路的宽度以及交通量,或者该起点是否有停车场能让车辆驶入并调头。
  • 1(车辆的右侧)- 当车辆离开起点时,起点必须在车辆右侧。禁止 U 形转弯。通常用于必须在右侧离开的车辆(如公共汽车)。
  • 2(车辆的左侧)- 当车辆离开起点时,路边必须在车辆左侧。禁止 U 形转弯。通常用于必须在左侧离开的车辆(如公共汽车)。
  • 3(禁止 U 形转弯)- 对于此工具,该值的作用与 0(车辆的任意一侧)相同。

CurbApproach 属性是专为使用以下两种国家驾驶标准而设计的:右侧通行(美国)和左侧通行(英国)。首先,考虑位于车辆左侧的起始点。不管车辆行驶在左车道还是右车道,停靠点始终位于车辆的左侧。根据不同国家的驾驶标准,您可能需要决定从起始点离开的方向,即从车辆的左侧或右侧离开起始点。例如,如果要从某个起点出发并且在车辆与起点之间不存在其他交通车道,那么在美国请选择 1(车辆的右侧),而在英国请选择 2(车辆的左侧)。

Bearing

点移动的方向。单位为度,并且从正北方向开始顺时针进行测量。该字段与 BearingTol 字段结合使用。

方位角数据通常会从配有 GPS 接收器的移动设备自动发送。如果正在加载移动输入位置(例如行人或车辆),请尝试包括方位角数据。

使用该字段可以防止将位置添加到错误的边上,例如,车辆刚好在交叉路口或天桥附近时。方位角也可帮助工具确定点在街道的哪一边上。

了解有关方位角和方位角容差的详细信息

BearingTol

使用 Bearing 字段在边上定位移动点时,方位角容差值将创建一个可接受方位角值的范围。如果 Bearing 字段中的值在可接受值范围(由边上的方位角容差生成)内,则可以将该点作为网络位置添加在此处,否则,将计算下一个最近边上的最近点。

单位为度,默认值为 30。值必须大于 0 且小于 180。值为 30 表示,Network Analyst 尝试在边上添加网络位置时,在边的每一侧(左侧和右侧)的两个数字化方向上都将生成一个 15 度的可接受方位角值。

了解有关方位角和方位角容差的详细信息

NavLatency

如果 BearingBearingTol 也具有值,则该字段只在求解过程中使用;但是,即使当 BearingBearingTol 字段中有值时,NavLatency 值的输入也是可选的。NavLatency 表示 GPS 信息从移动的车辆上发送到服务器以及车辆导航设备接收到处理后路径这两个时刻之间预期要经过的时间。

NavLatency 的时间单位与分析对象的 timeUnits 属性指定的单位相同。

Feature Set
Destinations

指定要从起点行驶至的终点位置。

最多可以添加 1000 个目的地。

指定目的地后,可使用以下特性为每个目的地设置属性,例如目的地的名称。

Name

目的地的名称。该名称可以是目的地的唯一标识符。该名称包含在输出线(作为 DestinationName 字段)和输出目的地(作为 Name 字段)中,并且可用于将工具输出的附加信息连接到目的地的属性。

如果未指定名称,则会自动生成前缀为 Location 的唯一名称。

CurbApproach

指定车辆到达目的地的方向。该字段值可指定为以下整数之一(请使用数值代码而非括号中的名称):

  • 0(车辆的任意一侧)- 车辆可从任一方向达到目的地,因此起点处允许 U 形转弯。如果车辆有可能要在目的地处调头,则可以选择该设置。此决策可能取决于道路的宽度以及交通量,或者该目的地是否有停车场能让车辆驶入并调头。
  • 1(车辆的右侧)- 当车辆到达目的地时,目的地必须在车辆右侧。禁止 U 形转弯。通常用于必须在右侧离开的车辆(如公共汽车)。
  • 2(车辆的左侧)- 当车辆到达目的地时,路边必须在车辆左侧。禁止 U 形转弯。通常用于必须在左侧离开的车辆(如公共汽车)。
  • 3(禁止 U 形转弯)- 对于此工具,该值的作用与 0(车辆的任意一侧)相同。

CurbApproach 属性是专为使用以下两种国家驾驶标准而设计的:右侧通行(美国)和左侧通行(英国)。首先,考虑位于车辆左侧的起始点。不管车辆行驶在左车道还是右车道,停靠点始终位于车辆的左侧。根据不同国家的驾驶标准,您可能需要决定从起始点离开的方向,即从车辆的左侧或右侧离开起始点。例如,如果要从某个起点出发并且在车辆与起点之间不存在其他交通车道,那么在美国请选择 1(车辆的右侧),而在英国请选择 2(车辆的左侧)。

Bearing

点移动的方向。单位为度,并且从正北方向开始顺时针进行测量。该字段与 BearingTol 字段结合使用。

方位角数据通常会从配有 GPS 接收器的移动设备自动发送。如果正在加载移动输入位置(例如行人或车辆),请尝试包括方位角数据。

使用该字段可以防止将位置添加到错误的边上,例如,车辆刚好在交叉路口或天桥附近时。方位角也可帮助工具确定点在街道的哪一边上。

了解有关方位角和方位角容差的详细信息

BearingTol

使用 Bearing 字段在边上定位移动点时,方位角容差值将创建一个可接受方位角值的范围。如果 Bearing 字段中的值在可接受值范围(由边上的方位角容差生成)内,则可以将该点作为网络位置添加在此处,否则,将计算下一个最近边上的最近点。

单位为度,默认值为 30。值必须大于 0 且小于 180。值为 30 表示,Network Analyst 尝试在边上添加网络位置时,在边的每一侧(左侧和右侧)的两个数字化方向上都将生成一个 15 度的可接受方位角值。

了解有关方位角和方位角容差的详细信息

NavLatency

如果 BearingBearingTol 也具有值,则该字段只在求解过程中使用;但是,即使当 BearingBearingTol 字段中有值时,NavLatency 值的输入也是可选的。NavLatency 表示 GPS 信息从移动的车辆上发送到服务器以及车辆导航设备接收到处理后路径这两个时刻之间预期要经过的时间。

NavLatency 的时间单位与分析对象的 timeUnits 属性指定的单位相同。

Feature Set
Travel_Mode
(可选)

用于在分析中建模的交通模式。出行模式ArcGIS Online 中进行管理,组织管理员可通过对其进行配置反映组织工作流。您需要指定组织所支持的出行模式名称。

要获取受支持出行模式名称的列表,请使用与访问此工具时使用的相同 GIS 服务器连接,并在实用程序工具箱中运行 GetTravelModes 工具。GetTravelModes 会将表和支持的出行模式添加到应用程序中。可将“支持的出行模式”表中 Travel Mode Name 字段的任何值指定为输入。您还可以将 Travel Mode Settings 字段中的值指定为输入。由于工具不必根据出行模式名称查找设置,因而减少了工具的执行时间。

默认值,自定义,可以使用自定义出行模式参数(在交汇点处 U 形转弯应用等级限制属性参数值阻抗)配置您自己的出行模式。自定义出行模式参数的默认值对使用汽车的出行方式建模。您还可以选择自定义并设置上述自定义出行模式参数,从而以快速步行速度对行人建模,或以给定高度、重量和特定危险材料货物对卡车建模。您可以尝试不同的设置以获取所需的分析结果。一旦确定了分析设置,则可使用组织管理员身份并将这些设置保存为新建或现有出行模式的一部分,以便您组织中的所有人均运行相同设置的分析。

警告:

选择自定义后,您为自定义出行模式参数设置的值便会包含在分析中。指定您组织定义的其他出行模式,将忽略为自定义出行模式参数设置的所有值;该工具将用您所指定的出行模式中的值将其覆盖。

String
Time_Units
(可选)

指定将用于测量和报告每对起点-目的地之间的总行驶时间的单位。

具体选项如下:

  • 分钟
  • 小时

String
Distance_Units
(可选)

指定将用于测量和报告每对起点-目的地之间的总行驶距离的单位。

具体选项如下:

  • 千米
  • 英尺
  • 英里
  • 海里

String
Analysis_Region
(可选)

要进行分析的区域。如果未对此参数指定值,工具会基于输入点的位置自动计算区域名称。仅当自动检测的区域名称输入不准确时,才需要设置区域名称。

要指定区域,请使用以下值之一:

  • 欧洲
  • 日本
  • 朝鲜
  • 中东和非洲
  • 北美
  • 南美
  • 南亚
  • 泰国

旧版本:

不再支持以下区域名称,且将在未来版本中删除这些名称。如果您指定了任一已弃用的区域名称,则工具会自动为您所在的区域分配支持的区域名称。

  • 希腊将重定向到欧洲
  • 印度将重定向到南亚
  • 大洋洲将重定向到南亚
  • 东南亚将重定向到南亚
  • 台湾将重定向到南亚

String
Number_of_Destinations_to_Find
(可选)

要为每个起点查找的最大目的地数目。如果未指定此参数的值,则输出矩阵将包含从每个起点到每个目的地的行程成本。各个起点可具有自己的值(指定为 TargetDestinationCount 字段),用于覆盖要查找的目的地数参数值。

Long
Cutoff
(可选)

停止搜索给定起点的目的地的行驶时间值或行驶距离值。分隔值以外的目的地将不予考虑。各个起点可具有自己的值(指定为 Cutoff 字段), 用于覆盖中断参数值。

如果出行模式的阻抗属性基于时间,则该值必须采用时间单位参数指定的单位,如果出行模式的阻抗属性基于距离,则需采用距离单位参数指定的单位。如果未指定值,则在搜索目的地时,该工具将不会强制执行任何行驶时间或行驶距离限制。

Double
Time_of_Day
(可选)

路线开始的时间和日期。

如果您正在对驾车出行模式进行建模并指定当前日期和时间作为该参数的值,则工具将使用实时交通状况查找最佳路径,并且总行驶时间将基于交通状况提供。

指定时间可提供更加准确的路径和行驶时间评估,因为行驶时间是根据相应日期和时间的交通状况而估算出的。

时间的时区参数指定该时间和日期是参考 UTC 还是停靠点所在时区。

如果未将测量单位设置为基于时间的单位,则该工具将忽略此参数。

Date
Time_Zone_for_Time_of_Day
(可选)

指定时间参数的时区。

  • 本地地理位置 - 时间参数采用路径的第一个停靠点所处的时区。如果生成开始于多个时区的多个路径,则开始时间会采用协调世界时间 (UTC) 交错。例如,时间值为 1 月 2 日 10:00 a.m. 表示始于东部时区的路径的开始时间为东部标准时间 10:00 a.m. (UTC-3:00),始于中部时区的路径的开始时间为中部标准时间 10:00 a.m. (UTC-4:00)。开始时间偏差一小时(UTC 时间)。输出停靠点要素类中记录的到达与离开的时间和日期将参考每个路径第一个停靠点的本地时区。
  • UTC - 时间参数是指 UTC。如果您想要在特定的时间(如现在)生成路径,但不确定第一个停靠点所在的时区,请选择此选项。如果您生成跨越多个时区的多个路径,以 UTC 表示的开始时间将发生同步。例如,时间值为 1 月 2 日 10:00 a.m. 表示始于东部时区的路径的开始时间为东部标准时间 5:00 a.m. (UTC-5:00),始于中部时区的路径的开始时间为中部标准时间 4:00 a.m. (UTC-6:00)。这两个路径均于 10:00 a.m. UTC 开始。输出停靠点要素类中记录的到达与离开的时间和日期将参考 UTC。
String
Point_Barriers

使用此参数可指定一个或多个点作为临时限制,或表示在基础街道上行驶可能需要的附加时间或距离。例如,点障碍可用来显示一棵沿街倒下的树或是铁路道口上的时间延迟。

工具限制了可添加为障碍的点不得超过 250 个。

指定点障碍后,可通过使用以下属性为每个事件点设置属性,例如其名称或障碍类型:

Name

障碍的名称。

BarrierType

指定点障碍是完全限制通行还是增加通过障碍时的时间或距离。此特性值可指定为以下整数之一(请使用数值代码而非括号中的名称):

  • 0(限制型)- 禁止穿过障碍。此障碍称为限制型点障碍,因为它作为限制使用。

  • 2(增加成本型)- 穿过此障碍会增加行驶时间或行驶距离,增加量由 Additional_TimeAdditional_DistanceAdditional_Cost 字段指定。此障碍类型称为增加成本型点障碍。

Additional_Time

穿越障碍时增加的行驶时间。该字段仅适用于增加成本型障碍,并且仅当用于分析的出行模式使用基于时间的阻抗属性时才适用。

此字段的值必须大于或等于零,并且其单位与 测量单位参数中指定的单位相同。

Additional_Distance

穿越障碍时增加的距离。该字段仅适用于增加成本型障碍,并且仅当用于分析的出行模式使用基于距离的阻抗属性时才适用。

该字段的值必须大于或等于零,并且其单位与 测量单位参数中指定的单位相同。

Additional_Cost

穿越障碍时增加的成本。该字段仅适用于增加成本型障碍,并且仅当用于分析的出行模式使用的阻抗属性不基于时间或距离时才适用。

FullEdge

指定分析期间如何将限制点障碍应用于边元素。该字段值可指定为以下整数之一(请使用数值代码而非括号中的名称):

  • 0 (False) - 允许沿边行进到障碍,但不允许穿过障碍。这是默认值。
  • 1 (True) - 禁止沿关联边的任何位置行进。

CurbApproach

指定受障碍影响的行驶方向。该字段值可指定为以下整数之一(请使用数值代码而非括号中的名称):

  • 0(车辆的任一侧)- 障碍将影响在边左右两个方向上行驶的车辆。
  • 1(车辆右侧)- 只会影响车辆的右行方向(障碍位于车辆左侧)。在同一条边上行驶但从左侧接近障碍的车辆不会受到障碍的影响。
  • 2(车辆左侧)- 只会影响车辆的左行方向(障碍位于车辆左侧)。在同一条边上行驶但从右侧接近障碍的车辆不会受到障碍的影响。

由于交汇点是点且不分左右侧,所以无论路边通道如何设置,交汇点上的障碍都会影响所有车辆。

CurbApproach 属性是专为使用以下两种国家驾驶标准而设计的:右侧通行(美国)和左侧通行(英国)。首先,考虑位于车辆左侧的设施点。不管车辆行驶在左车道还是右车道,停靠点始终位于车辆的左侧。不同国家的驾驶标准可能会要求您从这两种方向中的其中一个接近设施点,也就是说,只能从车辆的右侧或左侧接近设施点。例如,如果要到达一个设施点并且在车辆与设施点之间不存在其他交通车道,那么在美国请选择 1(车辆的右侧),而在英国请选择 2(车辆的左侧)。

Bearing

点移动的方向。单位为度,并且从正北方向开始顺时针进行测量。该字段与 BearingTol 字段结合使用。

方位角数据通常会从配有 GPS 接收器的移动设备自动发送。如果正在加载移动输入位置(例如行人或车辆),请尝试包括方位角数据。

使用该字段可以防止将位置添加到错误的边上,例如,车辆刚好在交叉路口或天桥附近时。方位角也可帮助工具确定点在街道的哪一边上。

了解有关方位角和方位角容差的详细信息

BearingTol

使用 Bearing 字段在边上定位移动点时,方位角容差值将创建一个可接受方位角值的范围。如果 Bearing 字段中的值在可接受值范围(由边上的方位角容差生成)内,则可以将该点作为网络位置添加在此处,否则,将计算下一个最近边上的最近点。

单位为度,默认值为 30。值必须大于 0 且小于 180。值为 30 表示,Network Analyst 尝试在边上添加网络位置时,在边的每一侧(左侧和右侧)的两个数字化方向上都将生成一个 15 度的可接受方位角值。

了解有关方位角和方位角容差的详细信息

NavLatency

如果 BearingBearingTol 也具有值,则该字段只在求解过程中使用;但是,即使当 BearingBearingTol 字段中有值时,NavLatency 值的输入也是可选的。NavLatency 表示 GPS 信息从移动的车辆上发送到服务器以及车辆导航设备接收到处理后路径这两个时刻之间预期要经过的时间。

NavLatency 的时间单位与分析对象的 timeUnits 属性指定的单位相同。

Feature Set
Line_Barriers

使用此参数可指定一条或多条线,用于禁止在线与街道相交的位置通行。例如,线障碍可用于对阻塞若干个路段交通的游行或抗议队伍进行建模。线障碍还可用于快速隔离多条道路使其禁止被穿越,从而在可能的路径中去除不符合要求的街道网络部分。

该工具限制了您可以使用线障碍参数限制的街道数量。可指定为线障碍的线数没有限制时,所有线的相交街道的合并数不能超过 500

指定线障碍时,可以使用以下属性为每个障碍设置名称和障碍类型属性:

Name

障碍的名称。

Feature Set
Polygon_Barriers

使用此参数可指定面,用于完全限制通行或按比例调整行驶在面相交的街道上所需的行驶时间或距离。

该服务限制了您可以使用面障碍参数限制的街道数量。可指定为面障碍的面数没有限制时,所有面的相交街道的合并数不能超过 2,000

指定面障碍时,可通过使用以下属性为每个面障碍设置属性,例如名称或障碍类型:

Name

障碍的名称。

BarrierType

指定障碍是完全禁止通行还是按比例调整穿过成本(例如时间或距离)。该字段值可指定为以下整数之一(请使用数值代码而非括号中的名称):

  • 0(限制型)- 禁止穿过障碍的任何部分。此障碍称作限制型面障碍,因为它禁止在与障碍相交的街道上行驶。此类障碍的一个具体应用是对覆盖街道中某些区域且导致街道无法通行的洪水进行建模。

  • 1(按比例调整成本型)- 通过使用 ScaledTimeFactorScaledDistanceFactor 字段指定的系数,按比例调整在基础街道上行进所需的成本(例如行程时间或距离)。如果障碍部分覆盖了街道,则会按比例调整行驶时间或行驶距离。例如,系数 0.25 表示在基础街道上行进的速度是正常速度的四倍。系数 3.0 表示预期在基础街道上行进相同距离所花费的时间为正常值的三倍。此障碍类型称为调整成本型面障碍。可用于对导致特定区域的行进速度减慢的暴风雨进行建模。

ScaledTimeFactor

它是与障碍相交街道的行驶时间要乘以的因子。该字段值必须大于零。

该字段仅适用于按比例调整成本型障碍,并且仅当用于分析的出行模式使用基于时间的阻抗属性时才适用。

ScaledDistanceFactor

它是与障碍相交街道的距离要乘以的因子。该字段值必须大于零。

该字段仅适用于增加成本型障碍,并且仅当用于分析的出行模式使用基于距离的阻抗属性时才适用。

ScaledCostFactor

它是与障碍相交街道的成本要乘以的因子。该字段值必须大于零。

该字段仅适用于按比例调整成本型障碍,并且仅当用于分析的出行模式使用的阻抗属性不基于时间或距离时才适用。

Feature Set
UTurn_at_Junctions
(可选)

指定交汇点的 U 形转弯策略。允许 U 形转弯表示求解程序可以在交汇点处转向并沿同一街道往回行驶。考虑到交汇点表示街道交叉路口和死角,不同的车辆可以在某些交汇点转弯,而在其他交汇点则不行 - 这取决于交汇点是交叉路口还是死角。为适应此情况,U 形转弯策略参数由连接到交汇点的边数隐性指定,这称为交汇点价。此参数可接受的值如下所列;每个值的后面是根据交汇点价对其含义的描述。

  • 允许 - 无论在交汇点处有几条连接的边,均允许 U 形转弯。这是默认值。
  • 不允许 - 在所有交汇点处均禁止 U 形转弯,不管交汇点原子价如何。不过请注意,即使已选择该选项,在网络位置仍允许 U 形转弯;但是也可以通过设置个别网络位置的 CurbApproach 属性来禁止 U 形转弯。
  • 仅在死角处允许 - 除仅有一条相邻边的交汇点(死角)外,其他交汇点均禁止 U 形转弯。
  • 仅在交点和死角处允许 - 在恰好有两条相邻边相遇的交汇点处禁止 U 形转弯,但是交叉点(三条或三条以上相邻边的交汇点)和死角(仅有一条相邻边的交汇点)处允许。通常,网络在路段中间有多余的交汇点。此选项可防止车辆在这些位置出现 U 形转弯。

除非将出行模式设置为自定义,否则会忽略此参数。

String
Use_Hierarchy
(可选)

指定在查找停靠点间的最短路径时是否使用等级。

  • 选中(在 Python 中为 True)- 查找路径时将使用等级。在应用等级时,相比低等级的街道(例如地方道路),该工具会优先标识等级较高的街道(例如高速公路),且该工具可以用于模拟驾驶员对在高速公路(而非地方道路)上行驶的偏好,即使这意味着行程更远。查找远距离位置的路径时尤为有用,因为长途驾驶员往往更偏好于在高速公路上行驶,这样可以避免停靠、交叉路口和转弯。应用等级可实现更快的计算速度,尤其是对于长途路径来说,因为该工具需要在相对较小的街道子集中标识最佳路径。
  • 未选中(在 Python 中为 False)- 查找路径时不会使用等级。如果没有应用等级,该工具就会考虑所有的街道且在选择路线时并不一定标识等级较高的街道。这常用于在市内查找短路径。

如果设施点和请求点间的直线距离大于 50 英里(80.46 公里),即使未选中此参数(在 Python 中设置为 False),工具也会自动转换为应用等级。

除非将出行模式设置为自定义,否则会忽略此参数。对自定义步行模式进行建模时建议关闭等级,这是因为该等级专用于机动车辆。

Boolean
Restrictions
(可选)

在查找最佳路径时工具应使用的限制。

限制表示行驶偏好或要求。大多数情况下,限制条件会导致道路禁行。例如,使用“避开收费公路”限制的结果是,仅在访问某一事件点或设施点需要借道收费公路时,才会生成一条包含该收费公路的路径。高度限制则使您可以绕开低于车辆高度的间隙。如果车辆上装载着腐蚀性物质,使用“禁止任何危险物品”限制可以防止在标记着运输腐蚀性材料为非法行为的路上运输这些材料。

注:

除非将出行模式设置为自定义,否则会忽略您为此参数提供的值。

注:

某些限制需要指定一个额外值以供它们使用。该值必须与限制名称和用于限制的特定参数相关联。如果在属性参数值参数中的 AttributeName 列显示限制名称,则可识别限制。发现可穿越道路时,为了正确使用限制,应在属性参数值参数中指定 ParameterValue 字段。

注:

有些限制仅适用于某些国家/地区;下表按区域显示了这些限制的可用性。关于在某区域内可用性有限的限制,通过在网络分析覆盖范围上查看“国家/地区列表”部分中的表,可以确定该限制在特定国家/地区是否可用。如果一个国家/地区具有 Logistics Attribute 列的 Yes 值,则该国家/地区支持具有区域可选性的限制。如果您指定的限制名称在事件点所在的国家/地区不可用,该服务会忽略无效限制。该服务还会忽略约束条件用法属性参数值为 0 到 1(请参阅属性参数值参数)时的约束条件。它会禁止约束条件用法参数值大于 0 时的所有约束条件。

该工具支持以下限制:

  • 禁止任何危险物品 - 结果将不包含禁止运输任何危险类型材料的道路。

    可用性:在北美洲及欧洲选择国家

  • 避开拼车道路 - 结果将避开专供拼车(高承载)车辆行使的道路。

    可用性:所有国家

  • 避开快速车道 - 结果将避开指定为快速车道的道路。

    可用性:所有国家

  • 避开渡轮 - 结果将避开渡轮。

    可用性:所有国家

  • 避开关口 - 结果将避开存在关键通道或守卫控制入口等关口的道路。

    可用性:所有国家

  • 避开限行道路 - 结果将避开限制进入高速公路的道路。

    可用性:所有国家

  • 避开私家道路 - 结果将避开非公有和维护的道路。

    可用性:所有国家

  • 避开不适合行人的道路 - 结果将避开不适合行人的道路。

    可用性:所有国家

  • 避开楼梯 - 结果将避开行人适合路线上的所有楼梯。

    可用性:所有国家

  • 避开收费公路 - 结果将避开汽车收费公路。

    可用性:所有国家

  • 避开卡车收费公路 - 结果将避开卡车收费公路。

    可用性:所有国家

  • 避开货车禁行道路 - 结果将避开禁止货车通行的道路,除非正在进行配送。

    可用性:所有国家

  • 避开未铺设道路 - 结果将避开未铺设(例如,泥土、砾石等)的道路。

    可用性:所有国家

  • 轴计数限制 - 结果将不包含具有指定轴数的卡车禁行的道路。可使用“车轴数”限制参数指定车轴数。

    可用性:在北美洲及欧洲选择国家

  • 驾驶公共汽车 - 结果将不包含公共汽车禁行的道路。使用此限制还将确保结果支持单行道。

    可用性:所有国家

  • 驾驶出租车 - 结果将不包含出租车禁行的道路。使用此限制还将确保结果支持单行道。

    可用性:所有国家

  • 驾驶卡车 - 结果将不包含卡车禁行的道路。使用此限制还将确保结果支持单行道。

    可用性:所有国家

  • 驾驶轿车 - 结果将不包含轿车禁行的道路。使用此限制还将确保结果支持单行道。

    可用性:所有国家

  • 驾驶急救车辆 - 结果将不包含急救车辆禁行的道路。使用此限制还将确保结果支持单行道。

    可用性:所有国家

  • 高度限制 - 结果将不包含车辆高度超出道路所允许的最大高度的道路。可使用“车辆高度(米)”限制参数指定车辆高度。

    可用性:在北美洲及欧洲选择国家

  • 主销到后轴长度限制 - 结果将不包含车辆长度超出路上所有卡车所允许的主销到后轴最大长度的道路。可使用“车辆中心立轴-后轴长度(单位为米)”限制参数指定车辆中心立轴与后轴之间的长度。

    可用性:在北美洲及欧洲选择国家

  • 长度限制 - 结果将不包含车辆长度超出道路所允许的最大长度的道路。可使用“车辆长度 (单位为米)”限制参数指定车辆长度。

    可用性:在北美洲及欧洲选择国家

  • 行人首选 - 结果将使用适合行人导航的首选路线。

    可用性:在北美洲及欧洲选择国家

  • 骑摩托车 - 结果将不包含摩托车禁行的道路。使用此限制还将确保结果支持单行道。

    可用性:所有国家

  • 禁止在建道路 - 结果将不包含在建道路。

    可用性:所有国家

  • 禁止带有一个或多个拖车的半挂车或拖拉机 - 结果将不包含带有一个或多个拖车的半挂车或拖拉机禁行的道路。

    可用性:在北美洲及欧洲选择国家

  • 禁止单轴车辆 - 结果将不包含单轴车辆禁行的道路。

    可用性:在北美洲及欧洲选择国家

  • 禁止双轴车辆 - 结果将不包含双轴车辆禁行的道路。

    可用性:在北美洲及欧洲选择国家

  • 禁止过境交通 - 结果将不包含禁止过境交通(非本地)的道路。

    可用性:所有国家

  • 带拖车的卡车限制 - 结果将不包含禁止具有指定拖车数量的卡车通行的道路。可使用“卡车的拖车数”限制参数指定卡车的拖车数。

    可用性:在北美洲及欧洲选择国家

  • 使用首选危险物品路径 - 结果将首选专用于运输危险类型材料的道路。

    可用性:在北美洲及欧洲选择国家

  • 使用首选卡车路径 - 结果将首选指定为卡车路径的道路,例如,由美国的《国家地面交通援助法案》指定为国家网络的一部分的道路,由州或省指定为卡车路径的道路,或在某区域内驾驶卡车的首选道路。

    可用性:在北美洲及欧洲选择国家

  • 步行 - 结果将不包含行人禁行的道路。

    可用性:所有国家

  • 重量限制 - 结果将不包含车辆重量超出道路所允许的最大重量的道路。可使用“车辆重量 (千克)”限制参数指定车辆重量。

    可用性:在北美洲及欧洲选择国家

  • 轴负重限制 - 结果将不包含车辆轴负重超出道路所允许的最大轴负重的道路。可使用“车辆轴负重(单位为千克)”限制参数指定车辆轴负重。

    可用性:在北美洲及欧洲选择国家

  • 宽度限制 - 结果将不包含车辆宽度超出道路所允许的最大宽度的道路。可使用“车辆宽度(单位为米)”限制参数指定车辆宽度。

    可用性:在北美洲及欧洲选择国家

旧版本:

“驾驶配送车辆”限制属性将不再可用。由于限制失效,该服务会将其忽略。要实现相似结果,请使用“驾驶货车”限制属性和“避开货车禁行道路”限制属性。

String
Attribute_Parameter_Values
(可选)

使用此参数可指定属性或限制条件所需的其他值,例如,指定限制对在受限道路上行驶是禁止、避免还是首选。如果该限制要避免或首选道路,您可以使用此参数进一步指定要避免或首选的程度。例如,您可以选择从不使用收费公路,尽可能的避开它们,或倾向于它们。

注:

除非将出行模式设置为自定义,否则会忽略您为此参数提供的值。

如果指定了要素类的属性参数值参数,则要素类上的字段名称必须与如下所示字段相匹配:

  • AttributeName - 限制的名称。
  • ParameterName - 与限制相关的参数名称。限制根据其用途可有一个或多个 ParameterName 字段值。
  • ParameterValue - 工具在评估约束条件时使用的 ParameterName 的值。

属性参数值参数取决于限制参数。仅当限制名称指定为限制参数值时,ParameterValue 字段 才可用。

属性参数值中,每个限制(以 AttributeName 形式列出)具有一个 ParameterName 字段值,指定限制的行程是禁止、避免还是首选的限制用法与道路选择避免或首选的限制和程度相关联。可为限制用法 ParameterName 分配下列字符串值,或在括号内列出等效数值:

  • PROHIBITED (-1) - 完全禁止在使用限制的道路上行驶。
  • AVOID_HIGH (5) - 极不可能将工具包括在与限制相关的道路中。
  • AVOID_MEDIUM (2) - 不太可能将工具包括在与限制相关的道路中。
  • AVOID_LOW (1.3) - 一定程度上不太可能将工具包括在与限制相关的道路中。
  • PREFER_LOW (0.8) - 一定程度上有可能将工具包括在与限制相关的道路中。
  • PREFER_MEDIUM (0.5) - 有可能将工具包括在与限制相关的道路中。
  • PREFER_HIGH (0.2) - 极有可能将工具包括在与限制相关的道路中。

大多数情况下,如果约束条件取决于车辆特征(如车辆高度),则可以使用“约束条件用法”的默认值 PROHIBITED。但是在某些情况下,“限制用法”的值取决于您的路径偏好。例如,“避开收费公路”限制具有“限制用法”属性的默认值 AVOID_MEDIUM。这表示在使用限制时,在可能的情况下工具会试图绕开收费公路。AVOID_MEDIUM 也表示查找最佳路径时避开收费公路的重要性,即优先级为中等。选择 AVOID_LOW 会降低避开收费公路的重要性;而选择 AVOID_HIGH 则会增加其重要性,因此服务为避开收费公路而生成更长的路径时更容易为人所接受。选择 PROHIBITED 则会完全不允许在收费公路上行驶,因此路径不可能经过收费公路的所有部分。但是请注意,避开或禁止收费公路并由此避开公路通行费只是一部分人的目的。对另外一部分人来说,因为避开拥堵的交通比交一些公路通行费更为重要,会宁愿走收费公路。在后一种情况中,您可以选择 PREFER_LOW、PREFER_MEDIUM 或 PREFER_HIGH 作为“限制用法”的值。首选的等级越高,工具为了在与限制相关的道路上行驶就会绕行更远的路程。

Record Set
Impedance
(可选)

指定阻抗,其值表示沿交通网络的路段或其他部分行进所需的精力或成本。

行程时间是一种阻抗,比如,汽车花费 1 分钟沿空无一人的道路行驶一公里。行程时间会随出行模式的不同而不同(行人可能需要 20 多分钟才能走完一公里),所以在建模时为出行模式选择正确的阻抗非常重要。

行程距离也是一种阻抗,可将以千米表示的道路长度作为阻抗。从这个意义上,行程距离对所有模式均相同,即对行人而言 1 千米的距离对汽车而言也是 1 千米。(但不同模式所允许行进的线路可能会有变化,而这会影响两点间的距离,可通过出行模式设置对此进行建模。)

警告:

除非将出行模式设置为自定义(这是默认值),否则会忽略您为此参数提供的值。

从以下阻抗值中选择:

  • TravelTime - 使用历史和实时流量数据。此选项适用于在每天的特定时间使用实时流量速度数据(如果适用)对汽车沿道路行驶的时间进行建模。如果使用 TravelTime,则可以选择设置 TravelTime::车辆最大速度 (km/h) 属性参数来指定车辆能够行驶的速度的物理限制。
  • Minutes - 不使用实时流量数据,而是使用汽车的历史平均速度。
  • TruckTravelTime - 使用历史和实时流量数据,但将速度限制为发布的卡车限速要求。这有助于模拟卡车在特定时间沿着道路行驶所需的时间。如果使用 TruckTravelTime,则可以选择设置 TruckTravelTime::车辆最大速度 (km/h) 属性参数来指定卡车能够行驶的速度的物理限制。
  • TruckMinutes - 不使用实时流量数据,而是使用汽车历史平均速度的较小值以及发布的卡车限速要求。
  • WalkTime - 在所有道路和路径上的默认速度为 5 千米/小时,但可以通过 WalkTime::步行速度 (km/h) 属性参数进行配置。
  • Miles - 以英里为单位存储沿道路的长度测量值,可用于基于最短距离进行分析。
  • Kilometers - 以公里为单位存储沿道路的长度测量值,可用于基于最短距离进行分析。
  • TimeAt1KPH - 默认将所有道路和路径上的速度都设为 1 千米/小时。使用任何属性参数都无法更改速度。

如果选择基于时间的阻抗,例如 TravelTimeTruckTravelTimeMinutesTruckMinutesWalkTime,则测量单位参数必须设置为基于时间的值。如果选择基于距离的阻抗,例如 MilesKilometers,则测量单位必须基于距离。

旧版本:

不再支持行驶时间卡车时间步行时间行驶距离阻抗值,且将在未来版本中删除。如果您使用上述任一值,则工具将为基于时间的值使用时间阻抗参数,为基于距离的值使用距离阻抗参数。

String
Origin_Destination_Line_Shape

OD 成本矩阵所生成的线可以用直线几何来表示,也可以不用任何几何来表示。在这两种情况中,路径总是沿街道网络通过最大限度地缩短行驶时间或行驶距离进行计算,而不是使用起点和目的地之间的直线距离进行计算。

  • 直线 - 直线可连接起点和目的地。
  • 无 - 不返回任何连接起点和目的地的线的形状。这在存在大量的起始点和目的地,但您只对 OD 成本矩阵表(而不是输出线的形状)感兴趣时很有用。

String
Save_Output_Network_Analysis_Layer
(可选)

指定是否将分析设置保存为网络分析图层文件。即使在 ArcGIS Desktop 应用程序(例如 ArcMap)中打开文件,仍然无法直接使用此文件。需要将其发送至 Esri 技术支持以诊断工具所返回结果的质量。

  • 选中(在 Python 中为 True)- 输出将保存为网络分析图层文件。文件将下载到计算机上的临时目录中。在 ArcGIS Pro 中,可以通过查看输出网络分析图层参数的值来确定已下载文件的位置,该参数位于与工程地理处理历史中的工具执行相对应的条目中。在 ArcMap 中,可以通过访问输出网络分析图层参数上的快捷菜单中的复制位置选项来确定文件的位置,该参数位于与地理处理结果窗口中的工具执行对应的条目中。
  • 未选中(在 Python 中为 False)- 输出将不会保存为网络分析图层文件。这是默认设置。

Boolean
Overrides
(可选)

求解网络分析问题时可影响求解程序行为的其他设置。

必须在 JavaScript 对象表示法 (JSON) 中指定此参数的值。例如,有效值的格式如下:{"overrideSetting1" : "value1", "overrideSetting2" : "value2"}。覆盖设置名称始终以双引号括起。该值可以是数字、布尔值或字符串。

此参数的默认值为无值,表示不覆盖任何求解程序设置。

覆盖是高级设置,应仅在谨慎分析应用设置前后得到的结果之后使用。要获得每个求解程序支持的覆盖设置及其可接受值的列表,请联系 Esri 技术支持。

string
Time_Impedance
(可选)

基于时间的阻抗是用于表示沿交通网络的路段或其他部分行进所需出行时间的值。

注:
如果使用阻抗参数指定的出行模式阻抗是基于时间的,则时间阻抗阻抗参数的值必须相同。否则,服务将返回错误。
String
Distance_Impedance
(可选)

基于距离的阻抗是用于表示沿交通网络的路段或其他部分行进所需出行时间的值。

注:
如果使用阻抗参数指定的出行模式阻抗是基于距离的,则距离阻抗阻抗参数的值必须相同。否则,服务将返回错误。
String
Output_Format
(可选)

指定创建输出要素的格式。

请从以下格式中选择:

  • 要素集 - 输出要素将作为要素类和表格返回。这是默认设置。
  • JSON 文件 - 输出要素将作为压缩文件返回,其中包含输出的 JSON 表示。指定此选项时,输出将是包含由服务针对每个输出创建的一个或多个 JSON 文件(扩展名为 .zip)的单个文件(扩展名为 .json)。
  • GeoJSON 文件 - 输出要素将作为压缩文件返回,其中包含输出的 GeoJSON 表示。指定此选项时,输出将是包含由服务针对每个输出创建的一个或多个 GeoJSON 文件(扩展名为 .zip)的单个文件(扩展名为 .geojson)。
  • CSV 文件 - 输出要素将作为压缩文件返回,其中包含输出的逗号分隔值 (CSV) 表示。指定此选项时,输出将是包含由服务针对每个输出创建的一个或多个 CSV 文件(扩展名为 .zip)的单个文件(扩展名为 .csv)。

如果指定文件基于输出格式(如 JSON 文件GeoJSON 文件),则不会向显示添加输出,因为应用程序(例如 ArcMapArcGIS Pro)无法绘制结果文件的内容。相反,结果文件将下载到计算机上的临时目录中。在 ArcGIS Pro 中,可以通过查看输出结果文件参数的值来确定已下载文件的位置,该参数位于与工程地理处理历史中的工具执行相对应的条目中。在 ArcMap 中,可以通过访问输出结果文件参数上的快捷菜单中的复制位置选项来确定文件的位置,该参数位于与地理处理结果窗口中的工具执行对应的条目中。

String

派生输出

名称说明数据类型
Solve_Succeeded

确定服务是否成功生成了起点-目的地成本矩阵。

布尔型
Output_Origin_Destination_Lines

将提供对连接起点和目的地的线的访问权限。

要素集
Output_Origins

将提供有关分析中使用的起点信息,例如从给定起点到达的目的地总数或分析中不包含的起点。

要素集
Output_Destinations

将提供有关分析中使用的目的地信息,例如从给定起点到达的起点总数或分析中不包含的目的地。

要素集
Output_Network_Analysis_Layer

网络分析图层可用于在地图中进行进一步分析或调试,其属性可在工具参数中配置。

文件
Output_Result_File

包含分析结果的 .zip(每个输出有一个或多个文件)。单个文件的格式由输出格式参数指定。

文件

代码示例

GenerateOriginDestinationCostMatrix 示例(独立脚本)

以下 Python 脚本演示了如何在脚本中使用 Generate Origin Destination Cost Matrix 工具。

"""This example shows how to generate a matrix of travel times between origins and destinations."""

import sys
import time
import arcpy

username = "<your user name>"
password = "<your password>"
od_service = "https://logistics.arcgis.com/arcgis/services;World/OriginDestinationCostMatrix;{0};{1}".format(username, password)

# Add the geoprocessing service as a toolbox.
# Check https://pro.arcgis.com/en/pro-app/2.6/arcpy/functions/importtoolbox.htm for
# other ways in which you can specify credentials to connect to a geoprocessing service.
arcpy.ImportToolbox(od_service)

# Set the variables to call the tool
origins = "C:/data/Inputs.gdb/Warehouses"
destinations = "C:/data/Inputs.gdb/Stores"
output_od_lines = "C:/data/Results.gdb/ODLines"

# Call the tool
result = arcpy.GenerateOriginDestinationCostMatrix_OriginDestinationCostMatrix(origins,
                                                                               destinations,
                                                                               Origin_Destination_Line_Shape="Straight Line")
arcpy.AddMessage("Running the analysis with result ID: {}".format(result.resultID))

# Check the status of the result object every 1 second until it has a
# value of 4 (succeeded) or greater
while result.status < 4:
    time.sleep(1)

# print any warning or error messages returned from the tool
result_severity = result.maxSeverity
if result_severity == 2:
    arcpy.AddError("An error occured when running the tool")
    arcpy.AddError(result.getMessages(2))
    sys.exit(2)
elif result_severity == 1:
    arcpy.AddWarning("Warnings were returned when running the tool")
    arcpy.AddWarning(result.getMessages(1))

# Save the lines connecting origins to destinations in a geodatabase
result.getOutput(1).save(output_od_lines)
GenerateOriginDestinationCostMatrix 示例 2(独立脚本)

以下示例将显示如何使用自定义出行模式来执行起点 - 目的地成本矩阵分析。

"""This example shows how to perform an origin-destination cost matrix analysis using a custom travel mode
that models trucks carrying wide load."""

import sys
import time
import json
import arcpy

username = "<your user name>"
password = "<your password>"
od_service = "https://logistics.arcgis.com/arcgis/services;World/OriginDestinationCostMatrix;{0};{1}".format(username, password)

# Add the geoprocessing service as a toolbox.
arcpy.ImportToolbox(od_service)

# Set the variables to call the tool
origins = "C:/data/Inputs.gdb/Warehouses"
destinations = "C:/data/Inputs.gdb/Stores"
output_od_lines = "C:/data/Results.gdb/ODLines"

# Change Vehicle Width attribute parameter value to 4.5 (about 15 feet) for the Trucking Time travel mode
# used for the analysis
portal_url = "https://www.arcgis.com"
arcpy.SignInToPortal(portal_url, username, password)
travel_mode_list = arcpy.na.GetTravelModes(portal_url)
tt = travel_mode_list["Trucking Time"]
tt_json = str(tt)
tt_dict = json.loads(tt_json)
tt_dict["restrictionAttributeNames"].append("Width Restriction")

for attr_param in tt_dict["attributeParameterValues"]:
    if attr_param['attributeName'] == 'Width Restriction' and attr_param['parameterName'] == 'Vehicle Width (meters)':
        attr_param['value'] = 4.5
travel_mode = json.dumps(tt_dict)

# Call the tool
result = arcpy.GenerateOriginDestinationCostMatrix_OriginDestinationCostMatrix(origins, destinations,
                                                                               Travel_Mode=travel_mode,
                                                                               Origin_Destination_Line_Shape="Straight Line")

# Check the status of the result object every 1 second until it has a
# value of 4 (succeeded) or greater
while result.status < 4:
    time.sleep(1)

# print any warning or error messages returned from the tool
result_severity = result.maxSeverity
if result_severity == 2:
    arcpy.AddError("An error occured when running the tool")
    arcpy.AddError(result.getMessages(2))
    sys.exit(2)
elif result_severity == 1:
    arcpy.AddWarning("Warnings were returned when running the tool")
    arcpy.AddWarning(result.getMessages(1))

# Save the lines connecting origins to destinations in a geodatabase
result.getOutput(1).save(output_od_lines)

环境

此工具不使用任何地理处理环境。

相关主题