ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS for Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

查找路径

  • 描述
  • 插图
  • 使用
  • 语法
  • 代码示例
  • 环境
  • 许可信息

描述

可通过查找路径分析确定在位置间行进的最快或最短方式。您可能想要使用此工具生成访问多个停靠点的行驶方向或测量位置间的距离或行程时间。此工具能够在每次运行时查找一台或多台车辆的路径,从而可以确定多名司机访问预分配停靠点的最佳路径,也可以一次性测量多位乘车上班族的上班距离等等。

注:

查找路径和创建路径图层工具类似,只是目的不同而已。如果正在设置地理处理服务,请使用查找路径;这将会简化设置过程;否则请使用创建路径图层。

如要使用查找路径创建路径地理处理服务,只需设置一个工具,然后直接将其发布为服务。与此相反,您需要使用创建路径图层工具创建模型,将其正确连接到其他不同的工具,并发布此模型以创建地理处理服务。要了解如何使用教程数据设置最近设施点服务,请参阅 Network Analyst 地理处理服务示例概述。要考虑的另一个选项是 ArcGIS Online 查找路径服务。该服务与 ArcMap 中地理处理工具的运行方式类似,可通过其他应用程序进行访问,并包含世界上大部分地区的高质量道路数据。

了解“查找路径”的输出

插图

A 和 B 之间的最快路径

使用

  • 要为多台车辆查找路径,请参阅 RouteName 属性的停靠点参数相关内容。为多台车辆查找路径需要在求解前将一组停靠点划分为较小的子集 - 每条路径或每台车辆对应一个子集。为每个停靠点子集生成一条路径。(如果想要优化停靠点的分组和停靠点之间的路径,请改为使用车辆配送工具。)
  • 此工具对话框将各种可选参数分组为以下六个类别,以便您能更轻松地对其进行管理:

    • 高级分析
    • 障碍
    • 自定义出行模式
    • 网络数据集
    • 网络位置
    • 输出
    • 服务能力

语法

FindRoutes(Stops, Measurement_Units, Network_Dataset, Output_Geodatabase, Output_Routes_Name, Output_Route_Edges_Name, Output_Directions_Name, Output_Stops_Name, {Reorder_Stops_to_Find_Optimal_Routes}, {Preserve_Terminal_Stops}, {Return_to_Start}, {Use_Time_Windows}, {Time_of_Day}, {Time_Zone_for_Time_of_Day}, {UTurn_Policy}, {Point_Barriers}, {Line_Barriers}, {Polygon_Barriers}, {Time_Attribute}, {Time_Attribute_Units}, {Distance_Attribute}, {Distance_Attribute_Units}, {Use_Hierarchy_in_Analysis}, {Restrictions}, {Attribute_Parameter_Values}, {Accumulate_Attributes}, {Maximum_Snap_Tolerance}, {Feature_Locator_WHERE_Clause}, {Route_Shape}, {Route_Line_Simplification_Tolerance}, {Populate_Route_Edges}, {Populate_Directions}, {Directions_Language}, {Directions_Distance_Units}, {Directions_Style_Name}, {Maximum_Features_Affected_by_Point_Barriers}, {Maximum_Features_Affected_by_Line_Barriers}, {Maximum_Features_Affected_by_Polygon_Barriers}, {Maximum_Stops}, {Maximum_Stops_per_Route}, {Force_Hierarchy_Beyond_Distance}, {Save_Output_Network_Analysis_Layer}, {Travel_Mode}, {Time_Zone_for_Time_Windows}, {Overrides}, {Save_Route_Data})
参数说明数据类型
Stops

此工具用于查找此参数中指定的停靠点之间的路径。要求解某个分析,至少需要两个停靠点。

指定停靠点后,可通过使用特性为每个停靠点设置属性,例如其名称或服务时间。可通过以下属性指定停靠点:

OBJECTID - 系统管理的 ID 字段。

SHAPE - 指示事件点地理位置的几何字段。

Name - 停靠点的名称。该名称用于行驶方向中。如果未指定名称,则会在输出停靠点、路径和方向中自动生成前缀为 Location 的唯一名称。

RouteName - 分配给停靠点的路径的名称。将相同的路径名称分配到不同的停靠点会导致这些停靠点被归为一组,并由同一路径进行访问。通过将唯一的路径名称分配到不同的停靠点组,可以在一个求解操作中生成多个路径。使用此工具,您最多可以将 150 个停靠点分组到一个路径中。

Sequence - 输出路径将按照您使用此属性指定的顺序访问停靠点。在一组具有相同路径名称值的停靠点中,序号应大于 0 且不大于停靠点的总数。而且,序号不应重复。

如果选中重新排序停靠点以查找最佳路径 (True),将忽略所有值(但每个路径名称的第一个和最后一个 sequence 值可能除外),以便工具查找可使每个路径总行程最小化的顺序。(保留停靠点的顺序和返回到起点的设置决定了是否忽略每个路径的第一个或最后一个 sequence 值。)

AdditionalTime - 在停靠点所花费的时间,该时间将被添加到路径总时间中。该属性值的单位由测量单位参数指定。仅在测量单位基于时间时,属性值才能包含在分析中。默认值为 0。

通常,停靠点的位置(例如住宅)并不是恰好位于街道上,而是位于道路的后方。如果有必要将停靠点的实际位置与其在街道上的位置之间的距离计入总行驶距离,则可使用该属性值构建此段距离。

AdditionalDistance - 在停靠点所行驶的额外距离,该距离将被添加到路径总距离中。该属性值的单位由测量单位参数指定。仅在测量单位基于距离时,属性值才能包含在分析中。默认值为 0。

通常,停靠点的位置(例如住宅)并不是恰好位于街道上,而是位于道路的后方。如果有必要将停靠点的实际位置与其在街道上的位置之间的距离计入总行驶距离,则可使用该属性值构建此段距离。

TimeWindowStart - 可以访问停靠点的最早时间。确保以日期和时间值的形式指定此值,例如 8/12/2015 12:15 PM。通过为停靠点时间窗指定开始时间和结束时间,您可以定义路径应在何时访问停靠点。只要选中应用时间窗并为测量单位选择了基于时间的单位,该工具就会尝试查找一个既能使总行程最小化又能在预定时间窗内到达停靠点的解决方案。

解决跨越多个时区的问题时,时间窗的值将采用停靠点所处位置的时区。

此字段可以包含空值;空值表示路径可以在 TimeWindowEnd 属性中所指定时间之前的任意时间到达。如果 TimeWindowEnd 中也出现空值,则路径可以随时访问停靠点。

TimeWindowEnd - 可以访问停靠点的最晚时间。确保以日期和时间值的形式指定此值,例如 8/12/2015 12:15 PM。通过为停靠点时间窗指定开始时间和结束时间,您可以定义路径应在何时访问停靠点。只要选中应用时间窗并为测量单位选择了基于时间的单位,该工具就会尝试查找一个既能使总行程最小化又能在预定时间窗内到达停靠点的解决方案。

解决跨越多个时区的问题时,时间窗的值将采用停靠点所处位置的时区。

此字段可以包含空值;空值表示路径可以在 TimeWindowStart 属性中所指定时间之后的任意时间到达。如果 TimeWindowStart 中也出现空值,则路径可以随时访问停靠点。

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

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

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

Feature Set
Measurement_Units

指定用于测量和报告输出路径的总行驶时间或行驶距离的单位。

为此参数选择的单位可以确定工具将测量距离还是时间来查找最佳路径。选择时间单位最小化所选出行模式的行驶时间(例如驾车时间或步行时间)。要最小化给定出行模式的行驶距离,请选择一个距离单位。选择的单位还确定工具在结果中以哪种单位报告总时间或距离。其中包括以下选项:

  • Meters
  • Kilometers
  • Feet
  • Yards
  • Miles
  • NauticalMiles
  • Seconds
  • Minutes
  • Hours
  • Days

该工具根据选择的测量单位是基于时间还是距离来选择是否使用时间属性或距离属性参数中指定的网络成本属性。

当测量单位值与对应的时间或距离成本属性的单位不同时,此工具将进行必要的单位转换。

String
Network_Dataset

将在其中执行分析的网络数据集。网络数据集通常表示街道网络,但也可能表示其他种类的交通网。网络数据集至少需要一个基于时间和一个基于距离的成本属性。

Network Dataset Layer
Output_Geodatabase

输出工作空间。此工作空间必须已经存在。默认的输出工作空间为 in_memory。

Workspace
Output_Routes_Name

包含路径或连接停靠点的路线的输出要素类名称。此要素类还可包含总行程时间或距离(作为属性)。

“查找路径”的输出介绍了该输出要素类的方案。

String
Output_Route_Edges_Name

包含路径边的输出要素类的名称。路径边表示路径所遍历的各个街道要素。

“查找路径”的输出介绍了该输出要素类的方案。

String
Output_Directions_Name

输出要素类的名称包含方向。

“查找路径”的输出介绍了该输出要素类的方案。

String
Output_Stops_Name

包含输出停靠点的输出要素类的名称。

“查找路径”的输出介绍了该输出要素类的方案。

String
Reorder_Stops_to_Find_Optimal_Routes
(可选)

指定是按照您定义的顺序还是按照工具确定的可使总行程最小化的顺序来访问停靠点。

  • USE_INPUT_ORDER —将按照您定义的顺序访问停靠点。这是默认选项。您可以在输入停靠点要素中使用 Sequence 属性来设置停靠点的顺序,也可以通过停靠点的对象 ID 确定顺序。
  • FIND_BEST_ORDER —工具将确定可使总体行驶距离或时间最小化的顺序。它可以对停靠点进行重新排序并将停靠点的时间窗考虑在内。利用其他参数,可在使用该工具对中途的停靠点进行重新排序的同时保留第一个或最后一个停靠点。

查找最佳停靠点顺序和最佳路径通常称作解决流动推销员问题 (TSP)。

Boolean
Preserve_Terminal_Stops
(可选)

如果选中重新排序停靠点以查找最佳路径(或 True),您可以选择保留起始停靠点和结束停靠点,然后由该工具对余下的停靠点进行重新排序。

第一个和最后一个停靠点是通过其 Sequence 属性值确定的,如果 Sequence 值为空,则通过其对象 ID 值来确定。

  • PRESERVE_BOTH —按输入顺序保留第一个和最后一个停靠点作为路径中相应的第一个和最后一个停靠点。
  • PRESERVE_FIRST —按输入顺序保留第一个停靠点作为路径中相应的第一个停靠点,而最后一个停靠点可以被重新排序。
  • PRESERVE_LAST —按输入顺序保留最后一个停靠点作为路径中相应的最后一个停靠点,而第一个停靠点可以被重新排序。
  • PRESERVE_NONE —第一个和最后一个停靠点都可以被重新排序。

如果未选中重新排序停靠点以查找最佳路径(或 False),则将忽略保留终端停靠点。

String
Return_to_Start
(可选)

选择路径是否应在同一位置开始和结束。使用此选项,可以避免重复第一个停靠点要素并避免在结束时对重复的停靠点进行排序。

路径的起始位置是 Sequence 属性值最低的停靠点要素。如果 Sequence 值为空,则为对象 ID 值最低的停靠点要素。

  • RETURN —路径应在第一个停靠点要素处开始和结束。这是默认值。
  • NO_RETURN —路径不会在第一个停靠点要素处开始和结束。
Boolean
Use_Time_Windows
(可选)

如果任何输入停靠点的时间窗指定了路径应在何时到达停靠点,则选中此选项(或将其设置为 True)。通过在 TimeWindowStart 和 TimeWindowEnd 属性中输入时间值,可以将时间窗添加到输入停靠点。

  • USE_TIMEWINDOWS —输入停靠点具有时间窗,并且您希望该工具尝试遵照这些时间窗。
  • NO_TIMEWINDOWS —输入停靠点没有时间窗;或者即使有时间窗,您也不希望该工具尝试遵照这些时间窗。这是默认值。

当选中应用时间窗(或 True)时,即使所有输入停靠点都没有时间窗,该工具的运行时间也会稍长一些,因此建议在可能的情况下取消选中此选项(设置为 False)。

Boolean
Time_of_Day
(可选)

指定路径应该开始的时间和日期。

如果您的网络数据集包含实时或历史流量数据,那么指定一天中的时间可以更精确地估算停靠点之间的行程时间,这是因为根据交通状况计算的行驶时间与您指定的日期和时间相适应。

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

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

Date
Time_Zone_for_Time_of_Day
(可选)

指定时间参数的时区。

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

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

  • ALLOW_UTURNS —无论在交汇点处有几条连接的边或街道,均允许 U 形转弯。这是默认值。
  • NO_UTURNS —在所有交汇点处均禁止 U 形转弯,不管交汇点原子价如何。
  • ALLOW_DEAD_ENDS_ONLY —除仅有一条相邻边的交汇点(死角)外,其他交汇点均禁止 U 形转弯。
  • ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLY —在恰好有两条相邻边相遇的交汇点处禁止 U 形转弯,但是交叉点(三条或三条以上相邻边的交汇点)和死角(仅有一条相邻边的交汇点)处允许。通常,网络建模街道在路段中间有多余的交汇点。此选项可防止车辆在这些位置出现 U 形转弯。

将出行模式(Python 中的 Travel_Mode)设置为除自定义外的其他值时会覆盖此参数的值。

String
Point_Barriers
(可选)

指定点障碍,并将其分为两种类型:禁止型点障碍和增加成本型点障碍。它们可以暂时限制网络上的穿越或在网络的点上增加阻抗。点障碍由要素集定义,为点要素指定的属性值决定它们是禁止型障碍还是增加成本型障碍。下面列出并描述了属性表中的字段。

ObjectID:

系统管理的 ID 字段。

Shape:

指示网络分析对象地理位置的几何字段。

Name:

障碍的名称。

BarrierType:

指定障碍的存在将完全禁止通行还是在通行时增加成本。共有两个选项:

  • 禁止型 (0) - 禁止穿过障碍。这是默认值。
  • 增加成本型 (2) - 穿过障碍会增加网络成本,具体增加值取决于在 Additional_Time 和 Additional_Distance 字段中指定的值。

将值 0 用于禁止型值,将 2 用于增加成本型值。

Additional_Time:

表示穿越障碍时会增加的行驶时间。此字段仅适用于增加成本型障碍且仅在测量单位基于时间时适用。此字段的值必须大于或等于零,并且其单位与 测量单位参数中指定的单位相同。

Additional_Distance:

表示穿越障碍时会增加的距离。此字段仅适用于增加成本型障碍且仅在测量单位基于距离时适用。该字段的值必须大于或等于零,并且其单位与 测量单位参数中指定的单位相同。

Feature Set
Line_Barriers
(可选)

指定线障碍,暂时限制穿越障碍。线障碍由要素集定义。下面列出并描述了属性表中的字段。

ObjectID:

系统管理的 ID 字段。

Shape:

指示网络分析对象地理位置的几何字段。

Name:

障碍的名称。

Feature Set
Polygon_Barriers
(可选)

指定面障碍,并将其分为两种类型:禁止型面障碍和调整成本型面障碍。它们会暂时限制穿越所覆盖的网络部分或调整阻抗。面障碍由要素集定义,为面要素指定的属性值决定它们是禁止型障碍还是调整成本型障碍。下面列出并描述了属性表中的字段。

ObjectID:

系统管理的 ID 字段。

Shape:

指示网络分析对象地理位置的几何字段。

Name:

障碍的名称。

BarrierType:

指定障碍的存在将完全禁止通行还是按比例增加行程成本。共有两个选项:

  • 禁止型 (0) - 禁止穿过障碍的任何部分。这是默认值。
  • 调整成本型 (1) - 将阻抗乘以 ScaledCostFactor 属性值从而调整基础边阻抗。如果障碍部分覆盖了边,则会按比例对阻抗执行乘法运算。

将值 0 用于禁止型值,将 1 用于调整成本型值。

ScaledTimeFactor:

它是与障碍相交街道的行驶时间要乘以的因子。此字段仅适用于调整成本型障碍且仅在测量单位基于时间时适用。该字段值必须大于零。

ScaledDistanceFactor:

它是与障碍相交街道的距离要乘以的因子。此属性仅适用于调整成本型障碍且仅在测量单位基于距离时适用。该属性值必须大于零。

Feature Set
Time_Attribute
(可选)

定义测量单位值为时间单位时要使用的网络成本属性。

当测量单位值与此处定义的成本属性单位不同时,此工具将进行必要的时间单位转换。换言之,默认中断和网络成本属性的时间单位不必相同。

将出行模式(Python 中的 Travel_Mode)设置为除自定义外的其他值时会覆盖此参数的值。

String
Time_Attribute_Units
(可选)

时间属性单位。您可以明确地设置时间属性单位,但是建议您不要传递任何内容或者可以传递 "#" 并由求解程序确定该单位。

将 Travel_Mode 设置为除 CUSTOM 外的其他值时会覆盖此参数的值。

String
Distance_Attribute
(可选)

定义测量单位值为距离单位时要使用的网络成本属性。

当测量单位值与此处定义的成本属性单位不同时,此工具将进行必要的距离单位转换。换言之,测量单位和网络成本属性的距离单位不必相同。

将出行模式(Python 中的 Travel_Mode)设置为除自定义外的其他值时会覆盖此参数的值。

String
Distance_Attribute_Units
(可选)

距离属性单位。您可以明确地设置距离属性单位,但是建议您不要传递任何内容或者可以传递 "#" 并由求解程序确定该单位。

将 Travel_Mode 设置为除 CUSTOM 外的其他值时会覆盖此参数的值。

String
Use_Hierarchy_in_Analysis
(可选)

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

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

如果未在用于执行分析的网络数据集中定义等级属性,该参数将不可用。在这种情况下,使用 "#" 作为参数值。

即使 Use_Hierarchy_in_Analysis 设置为 False,您也可以使用 Force_Hierarchy_Beyond_Distance 参数进行强制求解来应用等级。

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

Boolean
Restrictions
[restriction,...]
(可选)

指示求解时应遵守的网络约束条件属性。

将出行模式(Python 中的 Travel_Mode)设置为除自定义外的其他值时会覆盖此参数的值。

String
Attribute_Parameter_Values
(可选)

指定具有参数的网络属性的参数值。记录集具有两个共同唯一识别参数的列以及另一个指定参数值的列。

将出行模式(Python 中的 Travel_Mode)设置为除自定义外的其他值时会覆盖此参数的值。

属性参数值记录集具有关联属性。下面列出并说明了属性表中的所有字段。

ObjectID:

系统管理的 ID 字段。

AttributeName:

网络属性的名称,其属性参数由表行设置。

ParameterName:

属性参数的名称,其值由表行设置。(无法使用此工具更新“对象”类型参数。)

ParameterValue:

您希望的属性参数值。如果未指定值,则属性参数将被设置为空。

Record Set
Accumulate_Attributes
[attribute,...]
(可选)

分析过程中要累积的成本属性的列表。这些累积属性仅供参考;求解程序仅使用时间属性(Python 中的 Time_Attribute)或距离属性(Python 中的 Distance_Attribute)参数指定的成本属性来计算最短路径。

对于每个累积的成本属性,均会向求解程序所输出的路径中添加一个 Total_[属性] 字段。

String
Maximum_Snap_Tolerance
(可选)

最大捕捉容差是指在网络上定位或重新定位一个点时 Network Analyst 搜索的最远距离。搜索会寻找适合的边或交汇点,并把点捕捉到最近的边或交汇点。如果在最大捕捉容差内没有找到合适的位置,对象将标记为无法定位。

Linear Unit
Feature_Locator_WHERE_Clause
(可选)

用于选择源要素子集的 SQL 表达式,该子集对可以定位停靠点的网络元素设定了限制。此参数的语法由两部分组成:第一部分为源要素类名称(后接一个空格),第二部分为 SQL 表达式。要为两个或多个源要素类编写 SQL 表达式,请用分号分隔。

例如,为确保设施点不定位在限制出入的公路上,需编写一个类似于下面所列的 SQL 表达式,以排除这些源要素:"Streets" "FUNC_CLASS not in('1', '2')"。

注意,加载时,障碍将忽略要素定位器 WHERE 子句。

String
Route_Shape
(可选)

指定工具输出的路径要素的类型。可以使用以下值之一指定此参数:

  • TRUE_LINES_WITHOUT_MEASURES — 返回基于基础街道的生成路径的精确形状。
  • TRUE_LINES_WITH_MEASURES — 返回基于基础街道的生成路径的精确形状。此外,会对该形状进行测量以便其可用于线性参考中。
  • STRAIGHT_LINES — 返回停靠点之间的一条直线。
  • NO_LINES — 不返回任何路径形状。此值在您只想确定停靠点之间的总行程时间或行程距离时十分有用。

当路径形状参数设置为实际形状时,可以使用适当的路线简化容差参数值对路径形状的制图综合进行进一步控制。

无论为路径形状参数选择哪个值,最佳路径始终通过最大限度地缩短行驶时间或行驶距离来确定,从不使用停靠点间的直线距离进行确定。这意味着只有路径形状是不同的,而非查找路径时搜索的基础街道。

String
Route_Line_Simplification_Tolerance
(可选)

指定路径几何的简化程度。

如果 Route_Shape 参数未设置为 TRUE_LINES_WITH_MEASURES 或 TRUE_LINES_WITHOUT_MEASURES,则工具将忽略此参数。

简化将保留路径上定义路径基本形状所需的关键点(例如交点处的转弯)而删除其他点。指定的简化距离为简化线偏离原始线的最大允许偏移。简化线将减少路径几何中的折点数。这将改善工具的执行时间。

将出行模式(Python 中的 Travel_Mode)设置为除自定义外的其他值时会覆盖此参数的值。

Linear Unit
Populate_Route_Edges
(可选)

指定工具是否应为每条路径生成边。路径边表示路径所遍历的各个街道要素或其他相似要素。输出路径边图层通常用于查看生成的路径在哪些街道或路径上行驶得最多或最少。

  • ROUTE_EDGES —生成路径边。输出路径边图层将由线要素填充。
  • NO_ROUTE_EDGES —不生成路径边。返回输出路径边图层,但该图层为空。
Boolean
Populate_Directions
(可选)

指定工具是否应为每条路径生成行驶方向。

  • DIRECTIONS —表示将会根据方向语言、方向样式名称和方向距离单位参数值生成和配置方向。
  • NO_DIRECTIONS —未生成方向,且工具返回一个空方向图层。
Boolean
Directions_Language
(可选)

指定在生成行驶方向时使用的语言。

此参数仅在选中填充方向参数或设置为 True 时使用。

方向语言的可用性取决于计算机上安装的 ArcGIS 语言包。该值均以两位或五位字符语言代码输入,例如英语为 en,简体中文为 zh-CN。

如果指定了某种不支持的语言代码,该工具将会使用默认语言(英语)返回方向。

String
Directions_Distance_Units
(可选)

指定在行驶方向中显示行驶距离的单位。此参数仅在选中填充方向参数或设置为 True 时使用。

  • Miles
  • Kilometers
  • Meters
  • Feet
  • Yards
  • NauticalMiles
String
Directions_Style_Name
(可选)

指定方向的格式化样式名称。此参数仅在选中填充方向参数或设置为 True 时使用。可以使用以下值指定此参数:

  • NA Desktop — 生成适合打印的转弯说明。
  • NA Navigation — 生成针对车载导航设备的转弯说明。
  • NA Campus —生成适于人行道网络(包括人行道和建筑物)的方向。
String
Maximum_Features_Affected_by_Point_Barriers
(可选)

限制点障碍影响的要素数量。

此参数可帮助您管理求解时发生的处理量。例如,您可以为免费版服务中的这个参数指定一个较低的值,在付费订阅版服务中使用一个较高的值。

空值表示没有限制。

Long
Maximum_Features_Affected_by_Line_Barriers
(可选)

限制线障碍影响的要素数量。

此参数可帮助您管理求解时发生的处理量。例如,您可以为免费版服务中的这个参数指定一个较低的值,在付费订阅版服务中使用一个较高的值。

空值表示没有限制。

Long
Maximum_Features_Affected_by_Polygon_Barriers
(可选)

限制面障碍影响的要素数量。

此参数可帮助您管理求解时发生的处理量。例如,您可以为免费版服务中的这个参数指定一个较低的值,在付费订阅版服务中使用一个较高的值。

空值表示没有限制。

Long
Maximum_Stops
(可选)

限制可向路径分析中添加的停靠点数。此参数与停靠点参数相关。

此参数可帮助您管理求解时发生的处理量。例如,您可以为免费版服务中的这个参数指定一个较低的值,在付费订阅版服务中使用一个较高的值。

空值表示没有限制。

Long
Maximum_Stops_per_Route
(可选)

限制可在分析中分配到每条路径的最大停靠点数。

使用停靠点参数中点的 RouteName 字段将停靠点预分配到路径。

此参数可帮助您管理求解时发生的处理量。例如,您可以为免费版服务中的这个参数指定一个较低的值,在付费订阅版服务中使用一个较高的值。

空值表示没有限制。

Long
Force_Hierarchy_Beyond_Distance
(可选)

指定一段距离,之后,求解程序将在查找路径进行强制分级,即使未启用等级也是如此。此参数的单位与距离属性单位参数中显示的单位相同。

使用网络等级时查找远距离停靠点之间的路径,相比不使用等级查找同一路径进行的处理往往更少。此参数可帮助您管理求解时发生的处理量。

空值表示决不会强制分级,并且在分析中应用等级参数的值始终适用。如果输入网络数据集不支持等级,则为该参数指定值会导致错误。在这种情况下,应使用空值。

除非网络数据集包括等级属性,否则此参数将一直处于禁用状态。

Double
Save_Output_Network_Analysis_Layer
(可选)
  • NO_SAVE_OUTPUT_LAYER —输出中不包含网络分析图层。
  • SAVE_OUTPUT_LAYER —输出包含结果的网络分析图层。

不管在哪种情况下,均会返回包含结果的要素类。不过,服务器管理员也可能希望选择输出一个网络分析图层,以便可以使用 Network Analyst 环境中的 ArcGIS Desktop 控件调试工具的设置和结果。这会使调试过程变得更加容易。

在 ArcGIS Desktop 中,网络分析图层的默认输出位置位于临时文件夹内。可通过评估 arcpy.env.scratchFolder 地理处理环境的值来确定临时文件夹的位置。输出网络分析图层存储为 LYR 文件,其名称以 _ags_gpna 开头,后跟字母数字 GUID。

Boolean
Travel_Mode
(可选)

选择用于分析的运输模式。CUSTOM 为常用选择。要显示其他出行模式名称,必须使其显示在 Network_Dataset 参数指定的网络数据集中。(arcpy.na.GetTravelModes 函数提供了网络数据集上配置的出行模式对象的字典,name 属性返回出行模式对象的名称。)

出行模式是在网络数据集上定义的,并会提供模型车、货车、步行或其他出行模式的参数的覆盖值。在此处选择出行模式后,您便无需为以下参数提供值,这些参数值会被网络数据集中指定的值覆盖:

  • UTurn_Policy

  • Time_Attribute

  • Time_Attribute_Units

  • Distance_Attribute

  • Distance_Attribute_Units

  • Use_Hierarchy_in_Analysis

  • Restrictions

  • Attribute_Parameter_Values

  • Route_Line_Simplification_Tolerance

  • CUSTOM —定义适合您特定需求的出行模式。选择 CUSTOM 后,该工具不会覆盖以上列出的出行模式参数。这是默认值。
String
Time_Zone_for_Time_Windows
(可选)

指定停靠点的时间窗值的时区。时间窗被指定为停靠点上 TimeWindowStart 和 TimeWindowEnd 字段的一部分。此参数仅在选中应用时间窗参数(或设置为 True)时可用。

  • GEO_LOCAL — 与停靠点相关的时间窗值位于停靠点所在的时区内。例如,如果停靠点所在的区域实行东部标准时间并且时间窗值为 8 a.m. 和 10 a.m.,则时间窗值将被视为东部标准时间下的 8 a.m. 和 10 a.m.。
  • UTC — 与停靠点有关的时间窗值采用协调世界时间 (UTC)。例如,如果停靠点所在的区域实行东部标准时间并且时间窗值为 8 a.m. 和 10 a.m.,则时间窗值将被视为 12 p.m. 和 2 p.m.。东部标准时间(假设东部标准时间遵循夏令时)。如果不知道停靠点所在的时区,或者停靠点处在多个时区内并且您想要所有的时间窗同时启动,那么在 UTC 中指定时间窗值则非常有用。UTC 选项仅在您的网络数据集定义了时区属性时才可用。如果您的网络数据集未定义时区属性,则所有的时间窗值都将作为 GEO_LOCAL 处理。
String
Overrides
(可选)

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

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

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

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

String
Save_Route_Data
(可选)

选择输出中是否包括含有某类文件地理数据库的 zip 文件,该类文件地理数据库通过可与 ArcGIS Online 或 Portal for ArcGIS 共享路径图层的格式保存分析的输入和输出。

在 ArcGIS Desktop 中,此输出文件的默认输出位置位于临时文件夹内。可通过评估 arcpy.env.scratchFolder 地理处理环境的值来确定临时文件夹的位置。

  • SAVE_ROUTE_DATA —该工具将写出包含分析输入和输出的文件地理数据库工作空间的 .zip 存档。
  • NO_SAVE_ROUTE_DATA —不会保存路径数据。这是默认设置。
Boolean

派生输出

名称说明数据类型
Solve_Succeeded

用于确定服务是否能够成功找到路径。

布尔型
Output_Routes

停靠点之间生成的一条或多条路径。

要素集
Output_Route_Edges

路径途经的各个路段。

要素集
Output_Directions

停靠点之间各个生成的路径的逐步行驶方向。此参数包括行驶方向以及文本相应方向要素的几何。

要素集
Output_Stops

路径所途经的一个或多个停靠点的属性,以及任何路径无法到达的停靠点。

要素集
Output_Network Analysis_Layer

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

文件
Output_Route_Data

包含特定路径全部信息的 zip 文件。

文件

代码示例

FindRoutes 示例 1(Python 窗口)

使用所需参数执行此工具。

stops = arcpy.FeatureSet()
stops.load("Stops")
arcpy.na.FindRoutes(stops, "Miles", "Streets_ND", "in_memory", "Routes", 
                    "RouteEdges", "Directions", "OutStops", 
                    UTurn_Policy="NO_UTURNS")
FindRoutes 示例 2(独立脚本)

以下独立 Python 脚本演示了如何使用 FindRoutes 工具。

# Name: FindRoutes_Workflow.py
# Description: Find the fastest route visting all the stops. The output will 
#              show the route, driving directions, and how long it took to get
#              to each stop.
# Requirements: Network Analyst Extension

#Import system modules
import arcpy
from arcpy import env

try:
    #Check out the Network Analyst extension license
    arcpy.CheckOutExtension("Network")

    #Set environment settings
    env.workspace = r'C:\arcgis\ArcTutor\Network Analyst\Tutorial\SanDiego.gdb'
    env.overwriteOutput = True

    #Set local variables
    inNetworkDataset = r'Transportation\Streets_ND'
    inStops = r'Analysis\Stops'
    outGeodatabase = r'C:\arcgis\ArcTutor\Network Analyst\Tutorial\Output.gdb'
    outRoutes = "Routes"
    outRouteEdges = "RouteEdges"
    outDirections = "Directions"
    outStops = "Stops"
    measurement_units = "Minutes"

    # Run FindRoutes. Reorder the stops to find the fastest route, but maintain
    # the first stop as the starting point and the last stop as the end point.
    arcpy.na.FindRoutes(inStops, measurement_units, inNetworkDataset, 
                    outGeodatabase, outRoutes, outRouteEdges, outDirections, 
                    outStops, Reorder_Stops_to_Find_Optimal_Routes=True, 
                    Preserve_Terminal_Stops="PRESERVE_BOTH")

    print "Script completed successfully"

except Exception as e:
    # If an error occurred, print line number and error message
    import traceback, sys
    tb = sys.exc_info()[2]
    print "An error occured on line %i" % tb.tb_lineno
    print str(e)

环境

  • 当前工作空间
  • 输出坐标系

许可信息

  • Basic: 需要 Network Analyst
  • Standard: 需要 Network Analyst
  • Advanced: 需要 Network Analyst

相关主题

  • 路径分析
  • 查找路径的输出

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS 平台

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • Esri 博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2019 Esri. | 隐私政策 | 法律声明