ルート レイヤーとして共有 (Share As Route Layers) (Network Analyst)

概要

ネットワーク解析の結果をルート レイヤーとしてアクティブなポータルで共有します。ルート レイヤーには、ルートに割り当てられた訪問先や移動方向など、特定ルートに関するすべての情報が含まれます。

ルート レイヤー アイテムは、現場作業者にルート ガイダンスを提供する場合には、ArcGIS Navigator などの各種アプリケーションで使用し、ルート レイヤーに含まれているルートをカスタマイズする場合には、Map Viewer[ルート案内] ウィンドウで使用し、ルート レイヤーから新しいルート解析レイヤーを作成する場合には、ArcGIS Pro で使用することができます。

使用法

  • このツールは、ルート レイヤー アイテムを作成し、アクティブなポータルとして指定されたポータルで共有します。アクティブなポータルは、ArcGIS Online または ArcGIS Enterprise 10.5.1 以降にする必要があります。

  • アクティブなポータルにサイン インしているユーザーには、空間解析とコンテンツ作成を実行する権限が必要です。

  • 同じ名前のルート レイヤー アイテムが指定のフォルダー内にすでに存在する場合は、新しいアイテムが同じ名前で作成されます。重複するアイテムが作成されないようにするための方法の 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
(オプション)

ルート レイヤー アイテムで使用されるサマリー。このサマリーは、ルート レイヤー アイテムのアイテム情報の一部として表示されます。値を指定しないと、デフォルトのサマリー テキスト (<ルート名> のルートおよびルート案内) が使用されます。ここで、<ルート名> は、ルート レイヤーで表されるルートの名前に置き換えられます。

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

ポータルで共有されたルート レイヤー アイテム。

String

コードのサンプル

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: はい

関連トピック