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

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

求解位置分配

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

描述

从一组输入位置中选择最佳位置。

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

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

  • 零售店要查看需要开发哪些潜在店面位置以占有该区域百分之十的零售市场份额。

  • 消防部门要确定消防站的位置,以便在四分钟的反应时间内可达到社区百分之九十的地方。

  • 警察局会根据以往夜间的犯罪活动预先部署警力。

  • 在暴风雨过后,灾难响应机构要寻找建立伤检分类设施点的最佳位置(具有限病人容量)以帮助受到影响的人员。

了解“位置分配”的输出

插图

为应急管理定位避难所

使用

  • 此工具对话框将各种可选参数分组为以下七个类别,以便您能更轻松地对其进行管理:

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

语法

SolveLocationAllocation(Facilities, Demand_Points, Measurement_Units, Network_Dataset, Output_Geodatabase, Output_Allocation_Lines_Name, Output_Facilities_Name, Output_Demand_Points_Name, Output_Route_Edges_Name, {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_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}, {Allocation_Line_Shape}, {Allocation_Line_Simplification_Tolerance}, {Maximum_Features_Affected_by_Point_Barriers}, {Maximum_Features_Affected_by_Line_Barriers}, {Maximum_Features_Affected_by_Polygon_Barriers}, {Maximum_Facilities}, {Maximum_Facilities_to_Find}, {Maximum_Demand_Points}, {Force_Hierarchy_Beyond_Distance}, {Save_Output_Network_Analysis_Layer}, {Travel_Mode}, {Overrides})
参数说明数据类型
Facilities

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

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

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

OBJECTID - 系统管理的 ID 字段。

SHAPE - 指示设施点地理位置的几何字段。

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

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

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

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

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

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

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

分配到 Capacity 字段的任意值会覆盖给定设施点的默认容量参数(Python 中的 Default_Capacity)。

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

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

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

Feature Set
Demand_Points

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

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

OBJECTID - 系统管理的 ID 字段。

SHAPE - 指示设施点地理位置的几何字段。

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

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

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

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

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

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

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

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

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

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

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_Allocation_Lines_Name

包含连接请求点与其所分配设施点的线的输出要素类名称。

求解位置分配的输出介绍了该输出要素类的方案。

String
Output_Facilities_Name

包含设施点的输出要素类名称。

求解位置分配的输出介绍了该输出要素类的方案。

String
Output_Demand_Points_Name

包含请求点的输出要素类名称。

求解位置分配的输出介绍了该输出要素类的方案。

String
Output_Route_Edges_Name

包含路径边的输出要素类的名称。路径边表示请求点与其分配到的设施点之间的最短路径遍历的各个街道要素。

此输出通常用于确定向设施点行驶期间交通流量最大的街段。例如,此信息可用于张贴广告或拓宽道路以缓解疏散期间的交通负荷。

要填充输出 RouteEdges 要素类,需要将分配线形状参数设置为实际线。

求解位置分配的输出介绍了该输出要素类的方案。

String
Problem_Type
(可选)

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

  • MINIMIZE_IMPEDANCE —也称为 P 中位数问题类型。将设施点设置在适当的位置,以使请求点与设施点的解之间的所有加权行驶时间或距离之和最小。(加权行驶为分配给设施点的请求量乘以到达该设施点的行驶距离或行驶时间。)此问题类型通常用于仓库选址,因为它可以减少将货物运送到各销售店的总运输成本。因为“最小化阻抗”可减少公众到达选定设施点所需行进的总距离,所以,通常认为对于某些公共机构(例如,图书馆、区域机场、博物馆、机动车辆管理部门及医疗诊所)的选址而言,选择不具有阻抗中断的最小化阻抗问题类型比其他问题类型更加合理。下面描述了“最小化阻抗”这一问题类型对请求的处理方法:
    • 如果某个请求点因设置中断距离或中断时间而无法到达任何设施点,则不对其进行分配。
    • 如果某个请求点只能到达一个设施点,则该请求点会将其所有请求权重分配给该设施点。
    • 如果某个请求点能到达两个或多个设施点,则该请求点会将其所有请求权重仅分配给最近设施点。
  • MAXIMIZE_CAPACITATED_COVERAGE —将设施点设置在适当的位置,以满足所有或最大数量的请求而不超出任何设施点的容量。“最大化有容量限制的覆盖范围”的工作方式与“最小化阻抗”或“最大化覆盖范围”问题类型相似,但增加了容量限制。可指定单个设施点的容量,方法是将输入设施点中的数值分配到其对应的 Capacity 字段。如果 Capacity 字段值为空,则从默认容量属性中为该设施点分配容量。在下列情况下可使用“最大化有容量限制的覆盖范围”:创建包含给定人员数量或业务数量的区域;查找病床数量有限或可治疗的患者数量有限的医院或其他医疗设施点;或者查找未将其库存假定为无限的仓库。下面描述了最大化有容量限制的覆盖范围这一问题类型对请求的处理方法:
    • 与最大化覆盖范围不同,最大化有容量限制的覆盖范围并不需要默认测量中断值;然而,当指定中断时,不可对所有设施点中断时间或距离以外的任何请求点进行分配。
    • 被分配的请求点具有所有或零个分配到设施点的请求权重;也就是说,不可使用此问题类型来分配请求。
    • 如果设施点可达到的总请求大于设施点容量,那么只可分配能够最大化总占有请求和最小化总加权行驶的请求点。
      注:

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

  • MAXIMIZE_COVERAGE —将设施点设置在适当的位置,以使尽可能多的请求被分配到所求解的设施点的阻抗中断内。“最大化覆盖范围”常用于定位消防站、警察局和 ERS 中心,因为紧急救援服务通常需要在指定响应时间内到达所有请求点位置。请注意,具有准确精密的数据,以确保分析结果能够准确的为真实世界建模,这对所有组织都十分重要,对紧急救援服务尤为关键。与在店内就餐的比萨饼店相反,比萨外卖业务会试图将店址设在一定车程时间范围内可以覆盖最多人员的位置。定购比萨外卖的人通常不关心比萨饼店的远近;他们只关心比萨是否能够在店家所说的时间内送达。因此,比萨外卖业务会从其所说的送货时间中减去比萨制作时间,并针对最大化覆盖范围这一问题类型进行求解,以选出在覆盖区域中能够争取到最多潜在顾客的候选设施点。(在店内就餐的比萨饼店的潜在顾客受距离的影响更大,因为他们要前往餐馆就餐,因此人流量最大化或市场份额两种问题类型更适合于此种情况。)下面描述了最大化覆盖范围这一问题类型对请求的处理方法:
    • 如果某个请求点因中断距离或中断时间而无法到达任何设施点,则不对其进行分配。
    • 如果某个请求点只能到达一个设施点,则该请求点会将其所有请求权重分配给该设施点。
    • 如果某个请求点能到达两个或多个设施点,则该请求点会将其所有请求权重仅分配给最近设施点。
  • MAXIMIZE_MARKET_SHARE —选择一定数量的设施点,以保证存在竞争对手的情况下分配到最多的请求。其目标是利用您所指定数量的设施点占有尽可能多的市场份额。总市场份额是有效请求点的所有请求权重之和。市场份额问题类型需要的数据最多,因为除了自己的权重之外,您还需要知道竞争对手设施点的权重。如果您已拥有包括竞争对手数据在内的全面信息,那么原先使用最大化人流量问题类型的设施点也可以使用市场份额这一问题类型。大型折扣店通常使用最大化市场份额来为少量的几个新店选址。市场份额这一问题类型将使用 Huff(赫夫)模型,该模型也称作重力模型或空间交互模型。下面描述了最大化市场份额这一问题类型对请求的处理方法:
    • 如果某个请求点因中断距离或中断时间而无法到达任何设施点,则不对其进行分配。
    • 如果某个请求点只能到达一个设施点,则该请求点会将其所有请求权重分配给该设施点。
    • 如果某个请求点可到达两个或多个设施点,则该请求点会将其所有请求权重分配给这些设施点;然后,按照与设施点的吸引力(设施点权重)成正比、与设施点和请求点之间距离成反比的方式在各设施点之间分割请求权重。如果各设施点的权重相同,则与远处的设施点相比,近处的设施点将分配到更多的请求权重。

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

  • MINIMIZE_FACILITIES —对设施点进行选择,以在行驶时间或行驶距离中断范围内使尽可能多的加权请求被分配到所求解的设施点;此外,还要使覆盖请求所需的设施点数量最小化。除需考虑要定位的设施点数目(此数目由求解程序确定)外,最小化设施点数与最大化覆盖范围相同。如需考虑设施点建造成本这一限制因素,则原本使用“最大化覆盖范围”(如紧急响应)的组织可应用“最小化设施点数”来求解,以使所有可能的请求点全部都能得到设施点覆盖。下面描述了“最小化设施点数”这一问题类型对请求的处理方法:
    • 如果某个请求点因中断距离或中断时间而无法到达任何设施点,则不对其进行分配。
    • 如果某个请求点只能到达一个设施点,则该请求点会将其所有请求权重分配给该设施点。
    • 如果某个请求点能到达两个或多个设施点,则该请求点会将其所有请求权重仅分配给最近设施点。
  • MAXIMIZE_ATTENDANCE —在假定请求权重因设施点与请求点间距离的增加而减少的前提下,将设施点定位在能够将尽可能多的请求权重分配给设施点的位置上。很少或没有竞争的专卖店适合该问题类型,但当缺乏有关市场份额这一问题类型分析所需的竞争对手的数据时,它也可以用于普通零售店和餐馆。其他适合该问题类型的业务包括咖啡店、健身中心、牙医及诊所和电子商品店。公交车站的选址通常也使用“最大化人流量”进行分析。“最大化人流量”假定人们到达设施点所需行进的距离越远,他们就越不可能去利用它。这一假定的具体表现就是分配至设施点的请求数量会随距离的增加而减少。下面描述了最大化人流量这一问题类型对请求的处理方法:
    • 如果某个请求点因中断距离或中断时间而无法到达任何设施点,则不对其进行分配。
    • 如果某个请求点可到达一个设施点,则仅将其请求权重部分分配给该设施点。所分配的量会按设施点与请求点间最大中断距离(或时间)和行驶距离(或时间)的函数而减少。
    • 如果请求点可到达多个设施点,则仅将其权重按比例分配给最近的设施点。
  • TARGET_MARKET_SHARE —“目标市场份额”可在存在竞争者的情况下,确定出占有总市场份额指定百分比所需的设施点的最小数量。总市场份额是有效请求点的所有请求权重之和。设置希望占有的市场份额的百分比,然后由求解程序确定满足该阈值所需的最小设施点数。市场份额问题类型需要的数据最多,因为除了自己的权重之外,您还需要知道竞争对手设施点的权重。如果您已拥有包括竞争对手数据在内的全面信息,那么原先使用最大化人流量问题类型的设施点也可以使用市场份额这一问题类型。当希望了解要占有指定的市场份额需要进行多大程度的扩张,或在出现新的竞争设施点的情况下需要采取何种措施来保证当前的市场额时,大型折扣店通常会使用“目标市场份额”这一问题类型。如果不考虑预算,求解结果通常可以作为商店应当采取的措施。在考虑预算的情况下,问题就回到了最大化市场份额的情况,这时只要以确定的设施点数争取到尽可能大的市场份额即可。下面描述了“目标市场份额”这一问题类型对请求的处理方法:
    • 总市场份额用于计算所占有的市场份额,是有效请求点的所有权重之和。
    • 如果某个请求点因中断距离或中断时间而无法到达任何设施点,则不对其进行分配。
    • 如果某个请求点只能到达一个设施点,则该请求点会将其所有请求权重分配给该设施点。
    • 如果某个请求点可到达两个或多个设施点,则该请求点会将其所有请求权重分配给这些设施点;然后,按照与设施点的吸引力(设施点权重)成正比、与设施点和请求点之间距离成反比的方式在各设施点之间分割请求权重。如果各设施点的权重相同,则与远处的设施点相比,近处的设施点将分配到更多的请求权重。
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
(可选)

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

默认值为 1。

Double
Target_Market_Share
(可选)

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

默认值为 10%。

Double
Measurement_Transformation_Model
(可选)

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

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

  • LINEAR —成本df = λ * 阻抗df设施点与请求点之间的变换行驶时间或距离与两个位置之间最短路径的时间或距离相同。使用此选项,阻抗参数 (λ) 始终设置为 1。这是默认设置。
  • POWER —成本df = 阻抗dfλ设施点和请求点之间变换的行驶时间或距离等于以最短路径的时间或距离为底,以阻抗参数 (λ) 所指定的数为指数的幂运算结果。将幂函数选项与正阻抗参数结合使用可对附近的设施点指定较高的权重。
  • EXPONENTIAL —成本df = e(λ * 阻抗df)设施点和请求点之间变换的行驶时间或距离等于以数学常量 e 为底,以最短路径网络阻抗所指定的数为指数的幂乘以阻抗参数 (λ)。将指数选项与正阻抗参数结合使用可对附近的设施点指定高权重。
String
Measurement_Transformation_Factor
(可选)

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

默认值为 1。

Double
Travel_Direction
(可选)

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

  • FACILITY_TO_DEMAND —行驶方向从设施点到请求点。这是默认设置。
  • DEMAND_TO_FACILITY —行驶方向从请求点到设施点。

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

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

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

String
Time_of_Day
(可选)

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

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

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

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

Date
Time_Zone_for_Time_of_Day
(可选)

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

  • GEO_LOCAL —时间参数是指设施点或请求点所处的时区。如果行驶方向是从设施点到请求点,此为设施点所处的时区。如果行驶方向是从请求点到设施点,此为请求点所处的时区。
  • UTC —时间参数是指协调世界时间 (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
Allocation_Line_Shape
(可选)

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

  • STRAIGHT_LINES —返回设施点解与为其分配的请求点之间的直线。这是默认设置。在地图上绘制直线有助于直观地查看请求是如何分配的。
  • TRUE_LINES_WITHOUT_MEASURES —返回连接设施点解与其已分配的请求点的最短路径的精确形状。
  • TRUE_LINES_WITH_MEASURES — 返回连接设施点解与其已分配的请求点的最短路径的精确形状。此外,会对该形状进行测量以便其可用于线性参考中。该测量值以测量单位参数(Python 中的 Measurement_Units)指定的单位为单位。
  • NO_LINES —返回表,其中含有有关设施点解与为其分配的请求点之间最短路径的数据,而不返回线。

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

当分配线形状(Python 的 Allocation_Line_Shape)参数设置为没有测量值的实际线或具有测量值的实际线时,可以使用适当的分配线简化容差(Python 的 Allocation_Line_Simplification_Tolerance)参数值对路径形状的制图 综合进行进一步控制。

String
Allocation_Line_Simplification_Tolerance
(可选)

指定分配线几何的简化程度。

如果分配线形状参数(Python 中的 Allocation_Line_Shape)未设置为输出实际线,则工具将忽略此参数。

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

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

Linear Unit
Maximum_Features_Affected_by_Point_Barriers
(可选)

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

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

空值表示没有限制。

Long
Maximum_Features_Affected_by_Line_Barriers
(可选)

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

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

空值表示没有限制。

Long
Maximum_Features_Affected_by_Polygon_Barriers
(可选)

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

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

空值表示没有限制。

Long
Maximum_Facilities
(可选)

限制可向位置分配分析中添加的设施点数。此参数与设施点参数相关。

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

空值表示没有限制。

Long
Maximum_Facilities_to_Find
(可选)

限制可向位置分配分析中添加的设施点数。此参数与要查找的设施点数(Python 的 Number_of_Facilities_to_Find)参数相关。

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

空值表示没有限制。

Long
Maximum_Demand_Points
(可选)

限制可向位置分配分析中添加的请求点数。此参数与请求点(Python 的 Demand_Points)参数相关。

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

空值表示没有限制。

Long
Force_Hierarchy_Beyond_Distance
(可选)

指定一段距离,当查找设施点与请求点间最短路径时,求解程序将在超出该距离后进行强制分级,即使未启用等级也是如此。此参数的单位与距离属性单位(Python 的 Distance_Attribute_Units)参数中显示的单位相同。

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

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

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

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

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

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

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

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

String

派生输出

名称说明数据类型
Solve_Succeeded

用于确定服务是否成功选择最佳设施点。

布尔型
Output_Allocation_Lines

将请求点及所分配到的设施点相连的线。

要素类
Output_Facilities

用于访问已选设施点、必选设施点、竞争设施点以及未选择的任意候选设施点。

要素类
Output_Demand_Points

参与分析的请求点。

要素类
Output_Route_Edges

可表示沿请求点与所分配到的设施点之间最短路径的各个路段。

要素类
Output_LocationAllocation_Analysis_Layer

输出位置分配分析图层。

文件
Output_Route_Analysis_Layer

输出路径分析图层。

文件

代码示例

SolveLocationAllocation 示例 1(Python 窗口)

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

facilities = arcpy.FeatureSet()
facilities.load("Stores")
demandPoints = arcpy.FeatureSet()
demandPoints.load("TractCentroids")
arcpy.na.SolveLocationAllocation(facilities, demandPoints, "Minutes", 
                                "Streets_ND", "in_memory", "Lines", 
                                "OutFacilities", "OutDemandPoints", 
                                "RouteEdges", Number_of_Facilities_to_Find=2)
SolveLocationAllocation 示例 2(独立脚本)

以下独立 Python 脚本演示了如何通过独立脚本使用 SolveLocationAllocation。

# Name: SolveLocationAllocation_Workflow.py
# Description: Find the two stores that are most convenient to your customers. 
#              The results show which stores were selected and which store is
#              most convenient to each customer location.
# 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\SanFrancisco.gdb'
    env.overwriteOutput = True

    #Set local variables
    inNetworkDataset = r'Transportation\Streets_ND'
    inFacilities = r'Analysis\Stores'
    inDemandPoints = r'Analysis\TractCentroids'
    outGeodatabase = r'C:\arcgis\ArcTutor\Network Analyst\Tutorial\Output.gdb'
    outLines = "Lines"
    outFacilities = "Facilities"
    outDemandPoints = "DemandPoints"
    outRouteEdges = "RouteEdges"
    measurement_units = "Minutes"

    # Run SolveLocationAllocation. Find the best two stores, but don't consider
    # stores beyond a 10 minute travel time for a given customer.
    arcpy.na.SolveLocationAllocation(inFacilities, inDemandPoints, 
                                measurement_units, inNetworkDataset, 
                                outGeodatabase, outLines, outFacilities, 
                                outDemandPoints, outRouteEdges, 
                                Number_of_Facilities_to_Find=2,
                                Default_Measurement_Cutoff=10.0)

    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. | 隐私政策 | 法律声明