Summary
Shares the results of network analyses as route layer items in a portal. A route layer includes all the information for a particular route such as the stops assigned to the route as well as the travel directions.
A route layer item can be used by various applications, such as ArcGIS Navigator to provide route guidance for field workers, the Directions pane in Map Viewer to further customize the route contained in the route layer, or ArcGIS Pro to create a new route analysis layer from a route layer.
Usage
The tool creates and shares the route layer items in the portal that is designated as the active portal. The active portal must be ArcGIS Online or ArcGIS Enterprise 10.5.1 or later.
The user that is signed in to the active portal must have the necessary privileges to run spatial analysis and create content.
If a route layer item with the same name already exists in the specified folder, a new item with the same name will be created. One way to avoid creating duplicate items is to use a unique Route Name Prefix when creating route layers using this tool.
When using this tool in a Python script, the active portal where ArcGIS Pro was last accessed is the portal used to create the route layers.
Syntax
ShareAsRouteLayers(in_network_analysis_layer, {summary}, {tags}, {route_name_prefix}, {portal_folder_name}, {share_with}, {groups})
Parameter | Explanation | Data Type |
in_network_analysis_layer | The network analysis layer or a .zip file containing the route data from which the route layer items are created. When the input is a network analysis layer, it should already be solved. | File; Network Analyst Layer |
summary (Optional) | The summary used by the route layer items. The summary is displayed as part of the item information for the route layer item. If a value is not specified, default summary text—Route and directions for <route name>—is used, where <route name> is replaced with the name of the route represented by the route layer. | String |
tags (Optional) | The tags used to describe and identify the route layer items. Individual tags are separated with commas. The route name is always included as a tag even when a value is not specified. | String |
route_name_prefix (Optional) | A qualifier added to the title of every route layer item. For example, a route name prefix Monday morning deliveries can be used to group all route layer items created from a route analysis performed by deliveries that should be executed on Monday morning. If a value is not specified, the title of the route layer item is created using only the route name. | String |
portal_folder_name (Optional) | The folder in your personal online workspace where the route layer items will be created. If a folder with the specified name does not exist, a folder will be created. If a folder with the specified name exists, the items will be created in the existing folder. If a value is not specified, the route layer items are created in the root folder of your online workspace. | String |
share_with (Optional) | Specifies who can access the route layer items. The parameter can be specified using the following keywords:
| String |
groups [groups,...] (Optional) | The list of groups with which the route layer items will be shared. This option is applicable only when the share_with parameter is set to MYGROUPS. | String |
Derived Output
Name | Explanation | Data Type |
route_layer_items | Route layer items shared in a portal. | String |
Code sample
The following example demonstrates how to share a solved route analysis as a route layer to your active portal using only the required parameters.
arcpy.na.ShareAsRouteLayers('Route')
The following example demonstrates how to share a solved route analysis as a route layer specifying a summary and tags for the route layer item. The route layer item name starts with a prefix Wednesday Route for Food Inspection. The route layer is created in a folder called RouteLayers in your active portal and shared with a group named Drivers in your portal.
arcpy.na.ShareAsRouteLayers('Route', 'Share route solve result as route layers',
'Food inspection', 'Wednesday Route for Food Inspection',
'RouteLayers', 'MYGROUPS', 'Drivers')
The following stand-alone Python script demonstrates how the ShareAsRouteLayers tool can be used to share a solved Closest Facilities network analysis layer to the active portal.
# 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))
Environments
Licensing information
- Basic: Yes
- Standard: Yes
- Advanced: Yes