ルート案内 (Directions) (Network Analyst)

サマリー

ルートに基づいて、ネットワーク解析レイヤーから詳細なルート案内を生成します。 ルート案内は、テキスト形式、XML 形式、または HTML 形式のファイルに書き込むことができます。 適切なスタイル シートを用意すれば、ルート案内は他の任意のファイル形式に書き込むことができます。

使用法

  • このツールは、ネットワーク解析レイヤーに有効な結果がなければその解析を実行します。

パラメーター

ラベル説明データ タイプ
入力ネットワーク解析レイヤー

ルート案内を生成するネットワーク解析レイヤー。 ルート案内は、ルート、最寄り施設、および配車ルート ネットワーク解析レイヤーに対してのみ生成することができます。

注意:
このツールでは、ラスト マイル デリバリー解析レイヤー タイプがルート案内をサポートしている場合でも、サポート対象外です。

Network Analyst Layer
出力ファイル タイプ

出力されるルート案内ファイルに使用される形式を指定します。 スタイルシート パラメーターが値を持つ場合、このパラメーターは無視されます。

  • XML出力のルート案内ファイルは XML ファイルとして生成されます。 ファイルにはルート案内用文字列およびルートの距離、時間の情報とは別に、マヌーバー タイプおよび各方向のターン角度に関する情報も含まれます。
  • テキスト出力のルート案内ファイルはルート案内用文字列、ルートの距離、時間 (オプション) の情報を含む単純な TXT ファイルとして生成されます。
  • HTML出力のルート案内ファイルはルート案内用文字列、ルートの距離、時間 (オプション) の情報を含む HTML ファイルとして生成されます。
String
出力ルート案内ファイル

書き込みが行われるルート案内ファイルの絶対パス。

[スタイルシート] パラメーターにスタイル シートを指定する場合は、[出力ルート案内ファイル] のファイル接尾辞が、スタイル シートが生成するファイル タイプに一致することを確認してください。

File
レポートする長さの単位

ルート案内ファイルで使用される距離単位を指定します。 たとえば、インピーダンス属性がメートル単位の場合でも、ルート案内をマイル単位で表示することができます。

  • 海里距離単位は海里です。
  • フィート距離単位はフィートです。
  • ヤード距離単位はヤードです。
  • マイル距離単位はマイルです。
  • メートル距離単位はメートルです。
  • キロメートル距離単位はキロメートルです。
String
移動時間のレポート
(オプション)

ルート案内ファイルで移動時間を出力するかどうかを指定します。

  • オン - ルート案内ファイルで移動時間を出力します。 これがデフォルトです。
  • オフ - ルート案内ファイルで移動時間を出力しません。
Boolean
時間属性
(オプション)

ルート案内の移動時間の提供に使用する時間ベースのコスト属性。 入力ネットワーク解析レイヤーで使用されるネットワーク データセットには、コスト属性が必ず存在する必要があります。

String
言語
(オプション)

ルート案内に使用する言語。

このパラメーターには、ルート案内生成に使用できる言語のうちの 1 つを表す 2 文字または 5 文字の言語コードを使用します。 PythonListDirectionsLanguages 関数を使用して、使用できる言語コードのリストを取得できます。

String
スタイル名
(オプション)

ルート案内に使用される書式スタイルを指定します。

  • 印刷可能なルート案内印刷可能な詳細なルート案内が使用されます。
  • ナビゲーション デバイス用のルート案内車載ナビゲーション デバイス用に設計された詳細なルート案内が使用されます。
  • 歩行ルート案内歩行者ルート用に設計された詳細な歩行ルート案内が使用されます。
String
スタイルシート
(オプション)

書式設定された出力ファイル タイプ (PDF、Word、HTML ファイルなど) の生成に使用されるスタイル シート。 出力ルート案内ファイル パラメーターのファイル接尾辞は、スタイル シートが生成するファイル タイプに一致する必要があります。 このパラメーターが値を持つ場合、ツールは出力ルート案内ファイル パラメーターをオーバーライドします。

ヒント:

カスタム HTML およびテキスト スタイル シートを作成するには、Network Analyst からスタイル シートをコピーして編集します。 スタイル シートは <ArcGIS installation directory>\Pro\Resources\NetworkAnalyst\Directions\Styles ディレクトリにあります。 HTML スタイル シートは Dir2PHTML.xsl、テキスト スタイル シートは Dir2PlainText.xsl です。

File

派生した出力

ラベル説明データ タイプ
ネットワーク解析レイヤー

ルートに基づいて更新されたネットワーク解析レイヤー。

Network Analyst Layer

arcpy.management.Directions(in_network_analysis_layer, file_type, out_directions_file, report_units, {report_time}, {time_attribute}, {language}, {style_name}, {stylesheet})
名前説明データ タイプ
in_network_analysis_layer

ルート案内を生成するネットワーク解析レイヤー。 ルート案内は、ルート、最寄り施設、および配車ルート ネットワーク解析レイヤーに対してのみ生成することができます。

注意:
このツールでは、ラスト マイル デリバリー解析レイヤー タイプがルート案内をサポートしている場合でも、サポート対象外です。

Network Analyst Layer
file_type

出力されるルート案内ファイルに使用される形式を指定します。 スタイルシート パラメーターが値を持つ場合、このパラメーターは無視されます。

  • XML出力のルート案内ファイルは XML ファイルとして生成されます。 ファイルにはルート案内用文字列およびルートの距離、時間の情報とは別に、マヌーバー タイプおよび各方向のターン角度に関する情報も含まれます。
  • TEXT出力のルート案内ファイルはルート案内用文字列、ルートの距離、時間 (オプション) の情報を含む単純な TXT ファイルとして生成されます。
  • HTML出力のルート案内ファイルはルート案内用文字列、ルートの距離、時間 (オプション) の情報を含む HTML ファイルとして生成されます。
String
out_directions_file

stylesheet パラメーターにスタイル シートを指定する場合は、out_directions_file のファイル接尾辞が、スタイル シートが生成するファイル タイプに一致することを確認してください。

File
report_units

ルート案内ファイルで使用される距離単位を指定します。 たとえば、インピーダンス属性がメートル単位の場合でも、ルート案内をマイル単位で表示することができます。

  • Feet距離単位はフィートです。
  • Yards距離単位はヤードです。
  • Miles距離単位はマイルです。
  • Meters距離単位はメートルです。
  • Kilometers距離単位はキロメートルです。
  • NauticalMiles距離単位は海里です。
String
report_time
(オプション)

ルート案内ファイルで移動時間を出力するかどうかを指定します。

  • NO_REPORT_TIMEルート案内ファイルで移動時間を出力しません。
  • REPORT_TIMEルート案内ファイルで移動時間を出力します。 これがデフォルトです。
Boolean
time_attribute
(オプション)

ルート案内の移動時間の提供に使用する時間ベースのコスト属性。 入力ネットワーク解析レイヤーで使用されるネットワーク データセットには、コスト属性が必ず存在する必要があります。

String
language
(オプション)

ルート案内に使用する言語。

このパラメーターには、ルート案内生成に使用できる言語のうちの 1 つを表す 2 文字または 5 文字の言語コードを使用します。 PythonListDirectionsLanguages 関数を使用して、使用できる言語コードのリストを取得できます。

String
style_name
(オプション)

ルート案内に使用される書式スタイルを指定します。

  • NA Desktop印刷可能な詳細なルート案内が使用されます。
  • NA Navigation車載ナビゲーション デバイス用に設計された詳細なルート案内が使用されます。
  • NA Campus歩行者ルート用に設計された詳細な歩行ルート案内が使用されます。
String
stylesheet
(オプション)

書式設定された出力ファイル タイプ (PDF、Word、HTML ファイルなど) の生成に使用されるスタイル シート。 出力ルート案内ファイル パラメーターのファイル接尾辞は、スタイル シートが生成するファイル タイプに一致する必要があります。 このパラメーターが値を持つ場合、ツールは出力ルート案内ファイル パラメーターをオーバーライドします。

ヒント:

カスタム HTML およびテキスト スタイル シートを作成するには、Network Analyst からスタイル シートをコピーして編集します。 スタイル シートは <ArcGIS installation directory>\Pro\Resources\NetworkAnalyst\Directions\Styles ディレクトリにあります。 HTML スタイル シートは Dir2PHTML.xsl、テキスト スタイル シートは Dir2PlainText.xsl です。

File

派生した出力

名前説明データ タイプ
output_layer

ルートに基づいて更新されたネットワーク解析レイヤー。

Network Analyst Layer

コードのサンプル

Directions の例 1 (Python ウィンドウ)

次のサンプル コードは、すべてのパラメーターを含む Directions 関数の使用を示しています。

arcpy.na.Directions("Route", "TEXT", "C:/Data/Route_Directions.txt", "Miles",
                    "REPORT_TIME", "Minutes")
Directions の例 2 (ワークフロー)

次のスタンドアロン Python スクリプトは、Directions 関数を使用してルート案内を HTML ファイルで生成する方法を示しています。

# Name: Directions_Workflow.py
# Description: Generate driving directions in an html file for a route that
#              visits the store locations in the best sequence in order to
#              minimize the total travel time
# Requirements: Network Analyst Extension

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

try:
    #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 inputs and outputs
    input_gdb = "C:/Data/SanFrancisco.gdb"
    network = os.path.join(input_gdb, "Transportation", "Streets_ND")
    layer_name = "StoreRoute"
    impedance = "TravelTime"
    start_location = os.path.join(input_gdb, "Analysis", "DistributionCenter")
    store_locations = os.path.join(input_gdb, "Analysis", "Stores")
    output_directions = os.path.join(output_dir,
                                                layer_name + "_Directions.html")
    output_layer_file = os.path.join(output_dir, layer_name + ".lyrx")

    #Create a new route layer. The route starts at the distribution center and
    #visits the stores in the best order to yield the shortest travel time.
    result_object = arcpy.na.MakeRouteLayer(network, layer_name, impedance,
                                         "FIND_BEST_ORDER", "PRESERVE_FIRST",
                                         "", ['Meters'], "NO_UTURNS",
                                         start_date_time="8 AM")

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

    #Get the names of all the sublayers within the route layer.
    sublayer_names = arcpy.na.GetNAClassNames(layer_object)
    #Stores the layer names that we will use later
    stops_layer_name = sublayer_names["Stops"]

    #Load the distribution center as the start location using default field
    #mappings and search tolerance
    arcpy.na.AddLocations(layer_object, stops_layer_name, start_location, "",
                            "", exclude_restricted_elements = "EXCLUDE")

    #Load the store locations as stops. Make sure the store locations are
    #appended to the Stops sublayer so the distribution center you just loaded
    #isn't overwritten. Map the ServiceTime field from the input data to the
    #Attr_TravelTime property in the Stops sublayer so that the time it takes to
    #service each store is included in the total travel time for the route.
    field_mappings = arcpy.na.NAClassFieldMappings(layer_object,
                                                            stops_layer_name)
    field_mappings["Name"].mappedFieldName = "Name"
    field_mappings["Attr_" + impedance].mappedFieldName = "ServiceTime"
    arcpy.na.AddLocations(layer_object, stops_layer_name, store_locations,
                          field_mappings, "", append="APPEND",
                          exclude_restricted_elements = "EXCLUDE")

    #Generate driving directions in an HTML file
    arcpy.na.Directions(layer_object, "HTML", output_directions, "Miles",
                        "REPORT_TIME", impedance)

    #Save the solved na layer as a layer file on disk
    layer_object.saveACopy(output_layer_file)

    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)))