SolveLocationAllocation (LocationAllocation)

摘要

SolveLocationAllocation 工具用于从一组输入位置中选择最佳位置。

该工具的输入包括设施点(用于提供货物或服务)和请求点(消费这些货物和服务)。旨在查找可最有效提供请求点的设施点。此工具通过分析各种将请求点分配到不同设施点的方法来解决此问题。解决方案是将最需要请求的点分配到设施点中并最小化总体行驶的方案。输出包括设施点解、与已分配设施点相关的请求点以及连接请求点与其设施点的线。

可配置位置分配工具以解决特定的问题类型。示例包括以下内容:

插图

Locating shelters for emergency management

用法

语法

SolveLocationAllocation_naagol (Facilities, Demand_Points, {Analysis_Region}, Measurement_Units, {Problem_Type}, {Number_of_Facilities_to_Find}, {Default_Measurement_Cutoff}, {Default_Capacity}, {Target_Market_Share}, {Measurement_Transformation_Model}, {Measurement_Transformation_Factor}, {Travel_Direction}, {Time_of_Day}, {Time_Zone_for_Time_of_Day}, {UTurn_at_Junctions}, {Point_Barriers}, {Line_Barriers}, {Polygon_Barriers}, {Use_Hierarchy}, {Restrictions}, {Attribute_Parameter_Values}, {Allocation_Line_Shape})
参数说明数据类型
Facilities

指定一个或多个设施点(最多为 1,000 个)。工具会从您在此处指定的一组设施点中选择最佳位置。

在尝试寻找最具竞争力位置的竞争性分析中,竞争设施点也是在此处指定的。

定义设施点后,可通过使用特性为每个设施点设置属性,例如设施点名称或类型。可通过以下属性指定设施点:

Name - 设施点的名称。如果设施点为解的一部分,则该名称将包含在输出分配线的名称中。

FacilityType - 指定设施点是候选设施点、必选设施点、还是竞争设施点。此字段值可指定为以下整数之一(请使用数值代码而非括号中的名称):

  • 0(候选项)- 设施点可能是解的一部分。
  • 1(必选项)- 设施点必须是解的一部分
  • 2(竞争项)- 可能会从您的设施点中移除请求的竞争对手设施点。竞争设施点特定于最大化市场份额与目标市场份额两种问题类型;在其他问题类型中会将其忽略。

Weight - 设施点的相对权重,用于评定设施点的吸引力、有利条件或一个设施点较之另一个设施点的差异。

例如,一个值为 2.0 的权重更好地体现了客户的购物意愿,客户在高权重设施点处购物的意愿强于普通权重设施点处的购物意愿,差距达到 2 倍。可能影响设施点权重的因素包括建筑物面积、街区环境以及建筑物的使用年限。非 1 权重值仅适用于最大化市场份额与目标市场份额两种问题类型;在其他问题类型中会将其忽略。

Capacity - Capacity 字段特定于“最大化有容量限制的覆盖范围”问题类型;其他问题类型将忽略此字段。

容量用于指定该设施点能够供应多少加权请求。即使请求在设施点的默认测量中断范围内,求解程序也不会将超出容量的请求分配到设施点。

分配到 Capacity 字段的任意值会覆盖给定设施点的 Default_Capacity 参数。

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

  • 0(车辆的任意一侧)- 从车辆的右侧或左侧均可访问设施点。
  • 1(车辆的右侧)- 当车辆到达或离开设施点时,设施点必须位于车辆右侧。通常用于必须在右侧停靠以便乘客在停靠点下车的车辆(如公共汽车)。
  • 2(车辆的左侧)- 当车辆到达或离开设施点时,设施点必须位于车辆左侧。在车辆到达和离开设施点时,停靠点必须位于车辆的左侧。通常用于必须在左侧停靠以便乘客在停靠点下车的车辆(如公共汽车)。

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

Feature Set
Demand_Points

指定一个或多个请求点(最多为 10,000 个)。工具在很大程度上会根据这些设施点对此处所指定的请求点的服务状况来选择最佳设施点。

定义请求点后,可通过使用特性为每个请求点设置属性,例如请求点名称或权重。可通过以下属性指定请求点:

Name - 请求点的名称。如果请求点为解的一部分,则该名称将包含在输出分配线的名称中。

GroupName - 请求点所在组的名称。最大化有容量限制的覆盖范围、目标市场份额及最大化市场份额问题类型将忽略此属性。

如果请求点共享组名称,则求解程序会将组的所有成员分配给同一设施点。(如果某些约束(如中断距离)阻止组中的任意请求点到达同一设施点,则不对任何请求点进行分配。)

Weight - 请求点的相对权重。权重值为 2.0 表示请求点的重要性是该值为 1.0 的请求点的两倍。如果请求点代表家庭,则权重可表示每个家庭中的人数。

Cutoff_Time - 如果设施点超出此处所示的行驶时间,则无法将请求点分配至该设施点。此字段值将覆盖默认测量中断参数值。

该属性值的单位由测量单位参数指定。仅在测量单位基于时间时,才能在分析中引用属性值。默认值为空,这表示不存在覆盖中断。

Cutoff_Distance - 如果设施点超出此处所示的行驶距离,则无法将请求点分配至该设施点。此字段值将覆盖默认测量中断参数值。

该属性值的单位由测量单位参数指定。仅在测量单位基于距离时,才能在分析中引用属性值。默认值为空,这表示不存在覆盖中断。

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

  • 0(车辆的任意一侧)- 从车辆的右侧或左侧均可访问请求点。
  • 1(车辆的右侧)- 当车辆到达或离开请求点时,请求点必须位于车辆右侧。通常用于必须在右侧停靠以便乘客在停靠点下车的车辆(如公共汽车)。
  • 2(车辆的左侧)- 当车辆到达或离开请求点时,请求点必须位于车辆左侧。在车辆到达和离开请求点时,停靠点必须位于车辆的左侧。通常用于必须在左侧停靠以便乘客在停靠点下车的车辆(如公共汽车)。

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

Feature Set
Analysis_Region
(可选)

指定要进行分析的区域。如果未对此参数指定值,工具会基于输入点的位置自动计算区域名称。为加快工具执行,建议设置区域名称。要指定区域,请使用以下值之一:

  • 欧洲
  • 印度
  • 日本
  • 韩国
  • 中东和非洲
  • 北美洲
  • 大洋洲
  • 南美洲
  • 东南亚
  • 台湾(中国)
  • 泰国

String
Measurement_Units

指定用于测量请求点和设施点之间行驶时间或行驶距离的单位。工具将根据哪些设施点可通过最少量的行程达到最大量的加权请求,或者通过最少量的行程实现最大量的加权请求可到达哪些设施点来选择最佳设施点。

输出分配线使用不同的单位来报告行驶距离或行驶时间,其中包括您为此参数指定的单位。这些单位包括:

  • 千米
  • 英尺
  • 英里
  • 海里
  • 分钟
  • 小时

String
Problem_Type
(可选)

指定位置分配分析的目标。默认的目标为最小化阻抗。

  • 最小化阻抗

    也称为 P 中位数问题类型。将设施点设置在适当的位置,以使请求点与设施点的解之间的所有加权行驶时间或距离之和最小。(加权行驶为分配给设施点的请求量乘以到达该设施点的行驶距离或行驶时间。)

    此问题类型通常用于仓库选址,因为它可以减少将货物运送到各销售店的总运输成本。因为“最小化阻抗”可减少公众到达选定设施点所需行进的总距离,所以,通常认为对于某些公共机构(例如,图书馆、区域机场、博物馆、机动车辆管理部门及医疗诊所)的选址而言,选择不具有阻抗中断的最小化阻抗问题类型比其他问题类型更加合理。

    下面描述了“最小化阻抗”这一问题类型对请求的处理方法:

    • 如果因设置中断距离或中断时间而导致某个请求点无法到达任何设施点,则不对其进行分配。
    • 如果某个请求点只能到达一个设施点,则该请求点会将其所有请求权重分配给该设施点。
    • 如果某个请求点能到达两个或多个设施点,则该请求点会将其所有请求权重仅分配给最近设施点。

  • 最大化覆盖范围

    将设施点设置在适当的位置,以使尽可能多的请求被分配到所求解的设施点的阻抗中断内。

    “最大化覆盖范围”常用于定位消防站、警察局和 ERS 中心,因为紧急救援服务通常需要在指定响应时间内到达所有请求点位置。请注意,具有准确精密的数据,以确保分析结果能够准确的为真实世界建模,这对所有组织都十分重要,对紧急救援服务尤为关键。

    与在店内就餐的比萨饼店相反,比萨外卖业务会试图将店址设在一定车程时间范围内可以覆盖最多人员的位置。定购比萨外卖的人通常不关心比萨饼店的远近;他们只关心比萨是否能够在店家所说的时间内送达。因此,比萨外卖业务会从其所说的送货时间中减去比萨制作时间,并针对最大化覆盖范围这一问题类型进行求解,以选出在覆盖区域中能够争取到最多潜在顾客的候选设施点。(在店内就餐的比萨饼店的潜在顾客受距离的影响更大,因为他们要前往餐馆就餐,因此人流量最大化或市场份额两种问题类型更适合于此种情况。)

    下面描述了“最大化覆盖范围”这一问题类型对请求的处理方法:

    • 如果某个请求点因中断距离或中断时间而无法到达任何设施点,则不对其进行分配。
    • 如果某个请求点只能到达一个设施点,则该请求点会将其所有请求权重分配给该设施点。
    • 如果某个请求点能到达两个或多个设施点,则该请求点会将其所有请求权重仅分配给最近设施点。

  • 最大化有容量限制的覆盖范围

    将设施点设置在适当的位置,以满足所有或最大数量的请求而不超出任何设施点的容量。

    “最大化有容量限制的覆盖范围”的工作方式与“最小化阻抗”或“最大化覆盖范围”问题类型相似,但增加了容量限制。可指定单个设施点的容量,方法是将输入设施点中的数值分配到其对应的 Capacity 字段。如果 Capacity 字段值为空,则从默认容量属性中为该设施点分配容量。

    在下列情况下可使用“最大化有容量限制的覆盖范围”:创建包含给定人员数量或业务数量的区域;查找病床数量有限或可治疗的患者数量有限的医院或其他医疗设施点;或者查找未将其库存假定为无限的仓库。

    下面描述了“最大化有容量限制的覆盖范围”这一问题类型对请求的处理方法:

    • 与“最大化覆盖范围”不同,“最大化有容量限制的覆盖范围”并不需要“默认测量中断”值;然而,当指定中断时,不可对所有设施点的中断时间或中断距离以外的任何请求点进行分配。
    • 被分配的请求点具有所有或零个分配到设施点的请求权重;也就是说,不可使用此问题类型来分配请求。
    • 如果可到达设施点的总请求大于设施点容量,则只可分配能够最大化总占有请求和最小化总加权行驶的请求点。
      注注:

      当请求点被分配到的设施点不是最近设施点解时,您可能会注意到效率明显减低。在请求点具有不同的权重时以及在所涉及的请求点可到达超过一个设施点时,可能会发生这种情况。这类结果表示,最近设施点解对于加权请求没有足够的容量或整个问题的最有效解需要一个或多个局部低效率情况。在任何一种情况下,解都是正确的。

  • 最小化设施点数

    对设施点进行选择,以在行驶时间或行驶距离中断范围内使尽可能多的加权请求被分配到所求解的设施点;此外,还要使覆盖请求所需的设施点数量最小化。

    除需考虑要定位的设施点数目(此数目由求解程序确定)外,最小化设施点数与最大化覆盖范围相同。如需考虑设施点建造成本这一限制因素,则原本使用“最大化覆盖范围”(如紧急响应)的组织可应用“最小化设施点数”来求解,以使所有可能的请求点全部都能得到设施点覆盖。

    下面描述了“最小化设施点数”这一问题类型对请求的处理方法:

    • 如果某个请求点因中断距离或中断时间而无法到达任何设施点,则不对其进行分配。
    • 如果某个请求点只能到达一个设施点,则该请求点会将其所有请求权重分配给该设施点。
    • 如果某个请求点能到达两个或多个设施点,则该请求点会将其所有请求权重仅分配给最近设施点。

  • 最大化人流量

    在假定请求权重因设施点与请求点间距离的增加而减少的前提下,将设施点定位在能够将尽可能多的请求权重分配给设施点的位置上。

    很少或没有竞争的专卖店适合该问题类型,但当缺乏有关市场份额这一问题类型分析所需的竞争对手的数据时,它也可以用于普通零售店和餐馆。其他适合该问题类型的业务包括咖啡店、健身中心、牙医及诊所和电子商品店。公交车站的选址通常也使用“最大化人流量”进行分析。“最大化人流量”假定人们到达设施点所需行进的距离越远,他们就越不可能去利用它。这一假定的具体表现就是分配至设施点的请求数量会随距离的增加而减少。

    下面描述了“最大化人流量”这一问题类型对请求的处理方法:

    • 如果某个请求点因中断距离或中断时间而无法到达任何设施点,则不对其进行分配。
    • 如果某个请求点可到达一个设施点,则仅将其请求权重部分分配给该设施点。所分配的量会按设施点与请求点间最大中断距离(或时间)和行驶距离(或时间)的函数而减少。
    • 如果请求点可到达多个设施点,则仅将其权重按比例分配给最近的设施点。

  • 最大化市场份额

    选择一定数量的设施点,以保证存在竞争对手的情况下分配到最多的请求。其目标是利用您所指定数量的设施点占有尽可能多的市场份额。总市场份额是有效请求点的所有请求权重之和。

    市场份额问题类型需要的数据最多,因为除了自己的权重之外,您还需要知道竞争对手设施点的权重。如果您已拥有包括竞争对手数据在内的全面信息,那么原先使用最大化人流量问题类型的设施点也可以使用市场份额这一问题类型。大型折扣店通常使用最大化市场份额来为少量的几个新店选址。市场份额这一问题类型将使用 Huff(赫夫)模型,该模型也称作重力模型或空间交互模型。

    下面描述了“最大化市场份额”这一问题类型对请求的处理方法:

    • 如果某个请求点因中断距离或中断时间而无法到达任何设施点,则不对其进行分配。
    • 如果某个请求点只能到达一个设施点,则该请求点会将其所有请求权重分配给该设施点。
    • 如果某个请求点可到达两个或多个设施点,则该请求点会将其所有请求权重分配给这些设施点;然后,按照与设施点的吸引力(设施点权重)成正比、与设施点和请求点之间距离成反比的方式在各设施点之间分割请求权重。如果各设施点的权重相同,则与远处的设施点相比,近处的设施点将分配到更多的请求权重。

    • 总市场份额可用于计算所占有的市场份额,是有效请求点的所有权重之和。

  • 目标市场份额

    “目标市场份额”可在存在竞争者的情况下,确定出占有总市场份额指定百分比所需的设施点的最小数量。总市场份额是有效请求点的所有请求权重之和。设置希望占有的市场份额的百分比,然后由求解程序确定满足该阈值所需的最小设施点数。

    市场份额问题类型需要的数据最多,因为除了自己的权重之外,您还需要知道竞争对手设施点的权重。如果您已拥有包括竞争对手数据在内的全面信息,那么原先使用最大化人流量问题类型的设施点也可以使用市场份额这一问题类型。

    当希望了解要占有指定的市场份额需要进行多大程度的扩张,或在出现新的竞争设施点的情况下需要采取何种措施来保证当前的市场额时,大型折扣店通常会使用“目标市场份额”这一问题类型。如果不考虑预算,求解结果通常可以作为商店应当采取的措施。在考虑预算的情况下,问题就回到了最大化市场份额的情况,这时只要以确定的设施点数争取到尽可能大的市场份额即可。

    下面描述了“目标市场份额”这一问题类型对请求的处理方法:

    • 总市场份额用于计算所占有的市场份额,是有效请求点的所有权重之和。
    • 如果某个请求点因中断距离或中断时间而无法到达任何设施点,则不对其进行分配。
    • 如果某个请求点只能到达一个设施点,则该请求点会将其所有请求权重分配给该设施点。
    • 如果某个请求点可到达两个或多个设施点,则该请求点会将其所有请求权重分配给这些设施点;然后,按照与设施点的吸引力(设施点权重)成正比、与设施点和请求点之间距离成反比的方式在各设施点之间分割请求权重。如果各设施点的权重相同,则与远处的设施点相比,近处的设施点将分配到更多的请求权重。

String
Number_of_Facilities_to_Find
(可选)

指定求解程序应选择的设施点数。默认值为 1。

始终要首先选择 FacilityType 字段值为 1(必选项)的设施点。要选择的任何额外设施点都将从候选设施点中选取,它们的 FacilityType 字段值为 2。

在求解前所有 FacilityType 值为 3(已选项)的设施点在求解时都将视为候选设施点。

如果要查找的设施点数低于必选设施点数,则出现错误。

对于“最小化设施点数”和“目标市场份额”问题类型,禁用了要查找的设施点数,因为求解程序需要确定满足目标时所需的设施点的最少个数。

Long
Default_Measurement_Cutoff
(可选)

指定请求点与其分配到的设施点之间所允许的最大行驶时间或行驶距离。如果请求点位于设施点中断范围之外,则不会被分配给此设施点。

默认值为无,表示不应用中断限制。

该参数的单位与通过测量单位参数指定的单位相同。

行驶时间或行驶距离是按照沿道路行驶的最短路径测量的。

此属性可用于对人们为前往商店而愿意行进的最大距离,以及消防站到达社区中任一请求点所允许的最大时间进行建模。

请注意,请求点具有 Cutoff_Time 和 Cutoff_Distance 字段,如果进行相应设置,这些字段将覆盖默认测量中断参数。您可能会发现,乡村居民愿意走 10 英里远去往某个设施点,而城镇居民则只愿意走 2 英里的路程。假设将测量单位设置为“英里”,可按如下方式对此行为进行建模:将默认测量中断设置为 10 并将城区中请求点的 Cutoff_Distance 字段值设置为 2。

Double
Default_Capacity
(可选)

此属性特定于“最大化有容量限制的覆盖范围”问题类型。它是在分析中分配到所有设施点的默认容量。您可以通过在设施点的 Capacity 字段中指定值来覆盖设施点的默认容量。

默认值为 1。

Double
Target_Market_Share
(可选)

此参数特定于“目标市场份额”问题类型。它是您希望已选和必选设施点占总请求权重的百分比。求解程序会求出为占有此处所指定目标市场份额所需的最小设施点数。

默认值为 10%。

Double
Measurement_Transformation_Model
(可选)

此属性可设置对设施点与请求点间网络成本进行变换的方程。它还可与阻抗参数结合使用,指定设施点与请求点间的网络阻抗对于求解程序选择设施点的影响的严重程度。

在以下变换选项的列表中,d 指的是请求点,f 指的是设施点。“阻抗”是指两个位置之间的最短行驶距离或时间。所以阻抗df 即为请求点 d 与设施点 f 之间的最短路径(时间或距离),成本df 即为设施点与请求点之间变换的行驶时间或距离。Lambda (λ) 表示阻抗参数。测量单位设置决定了是分析行驶时间还是行驶距离。

  • 线性

    成本df = λ * 阻抗df

    设施点与请求点之间的变换行驶时间或距离与两个位置之间最短路径的时间或距离相同。使用此选项,阻抗参数 (λ) 始终设置为 1。这是默认设置。

  • 幂函数

    成本df = 阻抗dfλ

    设施点和请求点之间变换的行驶时间或距离等于以最短路径的时间或距离为底,以阻抗参数 (λ) 所指定的数为指数的幂运算结果。将“幂函数”选项与正阻抗参数结合使用可对附近的设施点指定较高的权重。

  • 指数

    成本df = e(λ * 阻抗df

    设施点和请求点之间变换的行驶时间或距离等于以数学常量 e 为底,以最短路径网络阻抗所指定的数为指数的幂乘以阻抗参数 (λ)。将“指数”选项与正阻抗参数结合使用可对附近的设施点指定高权重。

String
Measurement_Transformation_Factor
(可选)

阻抗变换模型参数中指定的方程提供参数值。当阻抗变换的类型为线性时会忽略参数值。对于幂阻抗变换和指数阻抗变换,应设置非零值。

Double
Travel_Direction
(可选)

指定是测量从设施点到请求点还是从请求点到设施点的行驶时间或行驶距离。默认值是测量从设施点到请求点的行驶时间或距离。

  • 设施点到请求点

    行驶方向是从请求点指向设施点。

  • 请求点到设施点

    行驶方向从请求点到设施点。

行驶时间和距离可能会随行驶方向的不同而发生改变。由于单行道和转弯限制,从点 A 行驶到点 B 时可能会比从点 B 行驶到点 A 时交通更畅通或者路径更短。例如,从点 A 行驶到点 B 可能只需要 10 分钟,而反过来可能需要 15 分钟。这些测量差异可能会影响到请求点是否因中断而能够被分配到特定的设施点,或者在分配请求的问题类型中,可能会影响所争取到的请求数量。

消防部门通常按从设施点到请求点的方向进行测量,因为他们需要关注从消防站行驶到紧急救援位置所花的时间。零售商店则更关注顾客到达商店所花的时间;因此,商店通常按从请求点到设施点的方向进行测量。

行进方向还决定了所提供的任何开始时间的意义。有关详细信息,请参阅时间参数。

String
Time_of_Day
(可选)

指定行进的开始时间。如果测量单位不是基于时间的,则忽略此属性。默认值是无时间或日期。如果未指定时间,求解程序将使用通用速度,通常为所发布限速要求中的速度。

在实际生活中,交通流量是不断变化的,设施点和请求点之间的行驶时间也会随着交通流量的变化而波动。因此,通过多次分析指示的不同时间和日期值可能会影响到将请求分配给设施点的方式以及和结果中所选的设施点。

时间始终表示开始时间。但行驶可能从设施点也可能从请求点开始;具体取决于对行进方向参数进行的选择。

时间的时区参数指定该时间和日期是参考 UTC 还是设施点或请求点所在时区。

Date
Time_Zone_for_Time_of_Day
(可选)

指定时间参数的时区。默认值为本地地理位置。

  • 本地地理位置

    时间参数是指设施点或请求点所处的时区。如果行进方向是从设施点到请求点,此为设施点所处的时区。如果行进方向是从请求点到设施点,此为请求点所处的时区。

  • UTC

    时间参数是指协调世界时间 (UTC)。如果您想要在指定时间内(如现在)选择最佳位置,但不确定设施点或请求点所在的时区,请选择此选项。

无论时间的时区如何设置,如果您的设施点和请求点在多个时区中,则工具将强制执行以下规则:

  • 指定时间并且行驶方向为从设施点到请求点时,所有设施点必须处于同一时区。
  • 指定时间并且行驶方向为从请求点到设施点时,所有请求点必须处于同一时区。

String
UTurn_at_Junctions
(可选)

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

  • 允许

    无论在交汇点处有几条连接的边或街道,均允许 U 形转弯。这是默认值。
  • 不允许

    在所有交汇点处均禁止 U 形转弯,不管交汇点原子价如何。

  • 仅在死角处允许

    除仅有一条相邻边的交汇点(死角)外,其他交汇点均禁止 U 形转弯。

  • 仅在交点和死角处允许

    在恰好有两条相邻边相遇的交汇点处禁止 U 形转弯,但是交叉点(三条或三条以上相邻边的交汇点)和死角(仅有一条相邻边的交汇点)处允许。通常,网络建模街道在路段中间有多余的交汇点。此选项可防止车辆在这些位置出现 U 形转弯。

String
Point_Barriers
(可选)

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

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

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

名称:障碍的名称。

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

  • 0(限制型)- 禁止穿过障碍。此障碍称为限制型点障碍,因为它作为限制使用。
  • 2(增加成本型)- 穿过此障碍会增加通过 Additional_Time 或 Additional_Distance 字段指定的行驶时间或行驶距离的数值。此障碍类型称为增加成本型障碍。

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

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

Feature Set
Line_Barriers
(可选)

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

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

指定线障碍时,可使用如下特性为每个障碍设置名称属性:

名称:障碍的名称。

Feature Set
Polygon_Barriers
(可选)

指定面,该面完全限制通行或按比例调整行驶在面相交的街道上所需的行驶时间或距离。

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

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

名称:障碍的名称。

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

  • 0(禁止型)- 禁止穿过障碍的任何部分。此障碍称作限制型面障碍,因为它禁止在与障碍相交的街道上行驶。此类障碍的一个具体应用是对覆盖街道中某些区域且导致街道无法通行的洪水进行建模。
  • 1(成本按比例增加型)- 通过使用 ScaledTimeFactor 或 ScaledDistanceFactor 字段指定的系数,调整在基础街道上行驶所需的时间或距离。如果障碍部分覆盖了街道,则会按比例调整行驶时间或行驶距离。例如,系数 0.25 表示在基础街道上行驶的速度是正常速度的四倍。系数 3.0 表示在基础街道上行驶相同距离所花费的时间为正常值的三倍。此障碍类型称为调整成本型面障碍。可用于对导致特定区域的行进速度减慢的暴风雨进行建模。

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

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

Feature Set
Use_Hierarchy
(可选)

指定是否应在查找设施点和请求点之间的最短路径时使用等级。

  • 选中 (True)

    在设施点和请求点之间进行测量时使用等级。在应用等级时,相比低等级的街道(例如地方道路),该工具更偏好等级较高的街道(例如高速公路),且该工具可以用于模拟驾驶员对在高速公路(而非地方道路)上行驶的偏好,即使这意味着行程更远。查找远距离位置的路径时尤为如此,因为长途驾驶员往往更偏好于在高速公路上行驶,这样可以避免停靠、交叉路口和转弯。应用等级可实现更快的计算速度,尤其是对于长途路径来说,因为该工具可以在相对较小的街道子集中确定最佳路径。

  • 未选中 (False)

    在设施点和请求点之间进行测量时不使用等级。如果没有应用等级,该工具就会考虑所有的街道且在选择路线时不会选择等级较高的街道。这常用于在市内查找短途路径。

如果设施点和请求点间的直线距离大于 50 英里,即使您已设置此参数为不使用等级,工具也会自动转换为使用等级。

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
Allocation_Line_Shape
(可选)

默认值为输出直线。

指定工具输出的线要素的类型。参数可接受以下值之一:

  • 直线

    返回设施点解与为其分配的请求点之间的直线。这是默认设置。在地图上绘制直线有助于直观地查看请求是如何分配的。

  • 返回表,其中含有有关设施点解与为其分配的请求点之间最短路径的数据,而不返回线。

无论选择哪种分配线形状参数值,最短路径始终通过最大限度地缩短行驶时间或行驶距离,而不是使用事件点和设施点间的直线距离来确定。也就是说,此参数只更改输出线形状;而不更改测量方法。

String

代码实例

求解位置分配示例

以下 Python 脚本演示了如何在脚本中使用 SolveLocationAllocation 工具。

import arcpy
import time
import sys

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

#Add the geoprocessing service as a toolbox. Use an alias when importing
arcpy.ImportToolbox(LA_service, "agol")

#Set the variables to call the tool
facilities = r'C:/data/Inputs.gdb/Stores'
demandPoints = r'C:/data/Inputs.gdb/Customers'
output_lines = r'C:/data/Results.gdb/Lines'
output_facilities = r'C:/data/Results.gdb/Facilities'
output_demandPoints = r'C:/data/Results.gdb/DemandPoints'

#Call the tool
result = arcpy.agol.SolveLocationAllocation(facilities, demandPoints, "Minutes",
                                            Problem_Type="Maximize Attendance",
                                            Number_of_Facilities_to_Find=2,
                                            Default_Measurement_Cutoff=10.0)

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

#print any warning or error messages returned from the tool
result_severity = result.maxSeverity
if result_severity == 2:
    print "An error occured when running the tool"
    print result.getMessages(2)
    sys.exit(2)
elif result_severity == 1:
    print "Warnings were returned when running the tool"
    print result.getMessages(1)
    
#Get the output routes  and save to a local geodatabase
result.getOutput(1).save(output_lines)
result.getOutput(2).save(output_facilities)
result.getOutput(3).save(output_demandPoints)

环境

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

相关主题

5/28/2014