共享为路径图层 (Network Analyst)

描述

用于将网络分析结果共享为门户中的路径图层项目。路径图层中包含特定路径的全部信息,例如分配至路径的停靠点,以及出行方向等。

路径图层项目可供各种应用程序使用(例如 ArcGIS Navigator)来为外业工作人员提供路径指引,可供 Map Viewer 中的方向窗格来进一步自定义路径图层中包含的路径,或可供 ArcGIS Pro 基于路径图层来创建新的路径分析图层。

使用方法

  • 该工具可在被指定为活动门户的门户中创建和共享路径图层项目。活动门户必须为 ArcGIS Online 或者 ArcGIS Enterprise 10.5.1 或更高版本。

  • 登录到活动门户的用户必须拥有必要的权限才能运行空间分析和创建内容。

  • 如果指定的文件夹中已存在具有相同名称的路径图层项目,则将创建一个具有相同名称的新项目。一个避免创建重复项目的方法是在通过此工具创建路径图层时使用唯一的路径名称前缀

  • 在 Python 脚本中使用此工具时,上次访问 ArcGIS Pro 的活动门户为用于创建路径图层的门户。

语法

arcpy.na.ShareAsRouteLayers(in_network_analysis_layer, {summary}, {tags}, {route_name_prefix}, {portal_folder_name}, {share_with}, {groups})
参数说明数据类型
in_network_analysis_layer

网络分析图层或包含用于创建路径图层项目的路径数据的 .zip 文件。当输入为网络分析图层时,其应已得到求解。

File; Network Analyst Layer
summary
(可选)

路径图层项目使用的摘要。摘要显示为路径图层项目的项目信息的一部分。如果未指定任何值,则将使用默认摘要文本 - Route and directions for <路径名称>,其中 <路径名称> 可替换为由路径图层表示的路径的名称。

String
tags
(可选)

用于描述和标识路径图层项目的标签。各个标签之间用逗号进行分隔。路径名称始终作为标签包含在内,即使在未指定任何值的情况下也是如此。

String
route_name_prefix
(可选)

添加至每个路径图层项目标题的限定符。例如,路径名称前缀 Monday morning deliveries 可用于对基于星期一上午配送时所进行的路径分析创建的所有路径图层项目进行分组。如果未指定任何值,则仅使用路径名称创建路径图层项目的标题。

String
portal_folder_name
(可选)

个人在线工作空间中将创建路径图层项目的文件夹。如果具有指定名称的文件夹不存在,则会创建一个文件夹。如果存在具有指定名称的文件夹,则将在现有文件夹中创建项目。如果未指定任何值,则将在您的在线工作空间中的根文件夹内创建路径图层项目。

String
share_with
(可选)

指定可以访问路径图层项目的用户。可以使用以下关键字指定此参数:

  • EVERYBODY 路径图层项目将公开,任何人都可以通过这些项目的 URL 进行访问。
  • MYCONTENT 路径图层项目将仅共享给项目的所有者(运行该工具时连接到该门户的用户)。因此,仅项目的所有者才可以访问路径图层。这是默认设置。
  • MYGROUPS 路径图层项目将共享给连接的用户所属的组及其成员。这些组是使用组参数指定的。
  • MYORGANIZATION 路径图层项目将共享给您所在组织中所有经过身份验证的用户。
String
groups
[groups,...]
(可选)

将与之共享路径图层项目的群组列表。仅当 share_with 参数设置为 MYGROUPS 时,此选项才适用。

String

派生输出

名称说明数据类型
route_layer_items

门户中共享的路径图层项目。

字符串

代码示例

ShareAsRouteLayers 示例(Python 窗口)

以下示例演示了如何仅使用所需参数将已求解路径分析作为路径图层共享给活动门户。

arcpy.na.ShareAsRouteLayers('Route')
ShareAsRouteLayers 示例 2(独立脚本)

以下示例演示了如何将已求解路径分析共享为路径图层以为路径图层项目指定摘要和标签。路径图层项目名称以前缀 Wednesday Route for Food Inspection 开头。在活动门户中名为 RouteLayers 的文件夹内创建路径图层并将其共享给门户中名为 Drivers 的组。

arcpy.na.ShareAsRouteLayers('Route', 'Share route solve result as route layers', 
                            'Food inspection', 'Wednesday Route for Food Inspection', 
                            'RouteLayers', 'MYGROUPS', 'Drivers')
ShareAsRouteLayers 示例 3(独立脚本)

以下独立 Python 脚本演示了如何使用 ShareAsRouteLayers 工具将已求解最近设施点网络分析图层共享给活动门户。

# Name: ShareAsRouteLayers_Workflow.py
# Description: Find the closest warehouse from the store locations and share the
#              results as route layers.
# Requirements: Network Analyst Extension

# Import system modules
import arcpy
from arcpy import env
import os


try:
    # Check out Network Analyst license if available. Fail if the Network Analyst license is not available.
    if arcpy.CheckExtension("network") == "Available":
        arcpy.CheckOutExtension("network")
    else:
        raise arcpy.ExecuteError("Network Analyst Extension license is not available.")

    # Check if logged into active Portal. Fail if not logged into actiave portal.
    if arcpy.GetSigininToken() is None:
        raise arcpy.ExecuteError("Please sign in to your active portal in ArcGIS Pro.")
    
    # Set environment settings
    output_dir = "C:/Data"
    # The NA layer's data will be saved to the workspace specified here
    env.workspace = os.path.join(output_dir, "Output.gdb")
    env.overwriteOutput = True

    # Set local variables
    input_gdb = "C:/Data/Paris.gdb"
    network = os.path.join(input_gdb, "Transportation", "ParisMultimodal_ND")
    layer_name = "ClosestWarehouse"
    travel_mode = "Driving Time"
    facilities = os.path.join(input_gdb, "Analysis", "Warehouses")
    incidents = os.path.join(input_gdb, "Analysis", "Stores")

    # Create a new closest facility analysis layer. 
    result_object = arcpy.na.MakeClosestFacilityAnalysisLayer(network,
                                    layer_name, travel_mode, "TO_FACILITIES",
                                    number_of_facilities_to_find=1)

    # Get the layer object from the result object. The closest facility layer can
    # now be referenced using the layer object.
    layer_object = result_object.getOutput(0)

    # Get the names of all the sublayers within the closest facility layer.
    sublayer_names = arcpy.na.GetNAClassNames(layer_object)
    # Stores the layer names that we will use later
    facilities_layer_name = sublayer_names["Facilities"]
    incidents_layer_name = sublayer_names["Incidents"]

    # Load the warehouses as Facilities using the default field mappings and
    # search tolerance
    arcpy.na.AddLocations(layer_object, facilities_layer_name,
                            facilities, "", "")

    # Load the stores as Incidents. Map the Name property from the NOM field
    # using field mappings
    field_mappings = arcpy.na.NAClassFieldMappings(layer_object,
                                                    incidents_layer_name)
    field_mappings["Name"].mappedFieldName = "NOM"
    arcpy.na.AddLocations(layer_object, incidents_layer_name, incidents,
                          field_mappings, "")

    # Solve the closest facility layer
    arcpy.na.Solve(layer_object)

    # Share the routes from the closest facility analysis as route layers
    arcpy.na.ShareAsRouteLayers(layer_object, "Share closest facility solve result as route layers")

    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 occurred on line %i" % tb.tb_lineno)
    print(str(e))

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题