概要
[ルートの検索 (Find Routes)] は、入力ストップを訪問するための最短パスを判定し、ルート案内、訪問先ストップの情報、および移動時間と距離を含むルート パスを返します。
このツールには、複数の入力ストップを事前定義された順序または全体の移動を最小化する順序で訪問するルートを検索する機能があります。[RouteName] フィールドを使用すると、入力ストップを複数のルートにグループ化できます。また、ストップの各グループに対して 1 つのルートを出力して、1 回の解析処理で多くの車両のルートを生成できます。
メモ:
[ルートの検索 (Find Routes)] を使用して複数の車両のルートを検索する場合、解析する前にストップをルートに割り当てる必要があります。複数の車両間でストップを分割する最適な方法を判定するツールが必要な場合は、代わりに [配車ルート (VRP) の解析 (Solve Vehicle Routing Problem)] ツールを使用します。
注意:
このツールの最新情報については、Web ヘルプの最新エディションでこのトピックをご参照ください。ArcGIS Online このようにサービスに対する機能的な更新を定期的に行っているため、インストールされているヘルプは最新でない可能性があります。
図
使用法
オンライン ツールボックスに収容されているツールは、ArcGIS Online でホストしているデータと機能を使って解析する ArcGIS Online ジオプロセシング サービスです。
このツールは、[Measurement Units] パラメーターの値が時間ベースの場合は移動時間、距離ベースの場合は移動距離に基づいて最短ルートを検索します。
ツールを正しく実行するには、ストップを少なくとも 2 つ指定する必要があります。最大で 10,000 のストップを読み込み、1 つのルートに最大 150 のストップを割り当てることができます。
最大で 250 のポイント バリアを追加できます。ライン バリアまたはポリゴン バリアは必要なだけ追加できますが、ライン バリアが交差する道路フィーチャは 500 以下にする必要があり、ポリゴン バリアが交差するフィーチャは 2,000 以下にする必要があります。
結果を短時間で生成できるように、解析時に実際のルートではなく道路階層を使用することもできます。ただし、ソリューションの精度は最適な結果よりもやや劣ります。
[階層を使用] パラメーターがオン (True) であるかどうかにかかわらず、ストップのペア間の直線距離が 50 マイル (80.46 キロメートル) を超えている場合は、常に階層が使用されます。
[移動モード] が [徒歩] に設定されている場合、または [カスタム] に設定されていて [徒歩] 規制が使用されている場合は、ストップのペア間の直線距離は 27 マイル (43.45 キロメートル) を超えることはできません。
入力したポイントと通行可能な最も近い道路の距離が 12.42 マイル (20 キロメートル) を超える場合、そのポイントは解析から除外されます。
このサービスを使用すると、クレジットが消費されます。詳細については、「サービス クレジットの概要」をご参照ください。
構文
arcpy.agolservices.FindRoutes(Stops, Measurement_Units, {Analysis_Region}, {Reorder_Stops_to_Find_Optimal_Routes}, {Preserve_Terminal_Stops}, {Return_to_Start}, {Use_Time_Windows}, {Time_of_Day}, {Time_Zone_for_Time_of_Day}, {UTurn_at_Junctions}, {Point_Barriers}, {Line_Barriers}, {Polygon_Barriers}, {Use_Hierarchy}, {Restrictions}, {Attribute_Parameter_Values}, {Route_Shape}, {Route_Line_Simplification_Tolerance}, {Populate_Route_Edges}, {Populate_Directions}, {Directions_Language}, {Directions_Distance_Units}, {Directions_Style_Name}, {Travel_Mode}, {Impedance}, {Time_Zone_for_Time_Windows}, {Save_Output_Network_Analysis_Layer}, {Overrides}, {Save_Route_Data}, {Time_Impedance}, {Distance_Impedance}, {Output_Format})
パラメーター | 説明 | データ タイプ |
Stops | 出力ルートで訪問する位置を指定します。 1 つのルートに最大 10,000 ストップを追加し、最大 150 ストップを割り当てることができます。(RouteName 属性を使用して、ストップをルートに割り当てます)。 ストップを指定する場合は、次の属性を使用して、各ストップのプロパティ (ストップの名前やサービス時間など) を設定できます。 Name ストップの名前。この名前は、ルート案内に使用されます。名前を指定しない場合は、出力ストップ、ルート、およびルート案内において接頭辞 Location が付いた一意な名前が自動的に生成されます。 RouteName ストップが割り当てられるルートの名前。同じルート名を異なるストップに割り当てると、それらのストップがグループ化され、同じルートで訪問されるようになります。一意のルート名をストップの異なるグループに割り当てることで、1 回の解析で多くのルートを生成できます。 最大 150 のストップを 1 つのルートにグループ化できます。 Sequence 出力ルートは、この属性で指定した順序でストップを訪問します。RouteName 値が同じストップのグループ内では、シーケンス値は 0 より大きく、ストップの合計数以下である必要があります。また、シーケンス値は重複してはなりません。 [ストップを並べ替えて最適ルートを検出] をオン (True) にすると、各ルート名の最初と最後の値を除くすべての値が無視されるため、ツールは、各ルートの全体の移動を最小化する順序を見つけることができます。([ストップの順番を維持] および [スタートに戻る] の設定は、各ルートの最初と最後の値を無視するかどうかを決定します)。 AdditionalTime ストップで費やされる時間の長さ。これは、ルートの合計時間に追加されます。デフォルト値は 0 です。 この属性値の単位は、[計測単位] パラメーターで指定されます。計測単位が時間ベースである場合に限り、この属性値が解析に含められます。 機器の修理、パッケージの配達、前提の検査など、タスクを完了するためにストップでかかるその他の時間を考慮できます。 AdditionalDistance ストップで移動する追加の距離。これは、ルートの合計距離に追加されます。デフォルト値は 0 です。 この属性値の単位は、[計測単位] パラメーターで指定されます。計測単位が距離ベースである場合に限り、この属性値が解析に含められます。 通常、ストップの場所 (家など) は厳密には道路に接していません。道路から多少離れて配置されています。ストップの実際の場所と道路に接した場所の間の距離を合計移動距離に含めることが重要である場合は、この属性値を使用してその距離をモデル化できます。 AdditionalCost ストップで費やされる追加のコスト。これは、ルートの合計コストに加算されます。デフォルト値は 0 です。 この属性値は、解析の移動モードが時間ベースでも距離ベースでもないインピーダンス属性を使用する場合に使用する必要があります。属性値の単位は、未知の単位として解釈されます。 TimeWindowStart ストップに訪問できる最も早い時刻。ストップのタイム ウィンドウの開始時間と終了時間を指定することで、ルートでストップを訪問する時刻を定義します。解析の移動モードが時間ベースのインピーダンス属性を使用する場合、タイム ウィンドウ値を指定することで、全体的な移動を最小限に抑えながら所定の時間内にストップに到達するソリューションを見つけることができます。 この値は、2015/8/12 12:15 PM のように日時で指定してください。 解析が複数のタイム ゾーンにまたがる場合、タイム ウィンドウ値はそのストップが属しているタイム ゾーンの日時を表します。 このフィールドには NULL 値を含めることができます。NULL 値は、TimeWindowEnd 属性で指定された値より前の任意の時間に到着できることを示しています。TimeWindowEnd も NULL 値である場合は、ストップに任意の時間に訪問できます。 TimeWindowEnd ストップに訪問できる最も遅い時刻。ストップのタイム ウィンドウの開始時間と終了時間を指定することで、ルートでストップを訪問する時刻を定義します。解析の移動モードが時間ベースのインピーダンス属性を使用する場合、タイム ウィンドウ値を指定することで、全体的な移動を最小限に抑えながら所定の時間内にストップに到達するソリューションを見つけることができます。 この値は、2015/8/12 12:15 PM のように日時で指定してください。 解析が複数のタイム ゾーンにまたがる場合、タイム ウィンドウ値はそのストップが属しているタイム ゾーンの日時を表します。 このフィールドには NULL 値を含めることができます。NULL 値は、TimeWindowStart 属性で指定された値より後の任意の時間に到着できることを示しています。TimeWindowStart も NULL 値である場合は、ストップに任意の時間に訪問できます。 CurbApproach 車両がストップに到着する方向およびストップから出発する方向を指定します。このフィールド値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。
CurbApproach 属性は、米国の右側通行の標準と英国の左側通行の標準の両方に対応するように設計されています。まず、ストップが車両の左側にあるとします。これは、車両が移動するのが道路の左側であるか右側であるかに関係なく、常に左側にあります。右側通行か左側通行かに応じて異なるのは、2 つの方向のうちどちらからストップに到着するかです。つまり、結局のところ車両の右側または左側になります。たとえば、ストップに到着するときに、車両とストップの間に交通レーンがない方がいい場合は、米国では 1 (車両の右側) を選択し、英国では 2 (車両の左側) を選択します。 LocationType ストップ タイプを指定します。このフィールド値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。
Bearing ポイントが移動している方向。単位は度で、北を基準に時計回りに測定されます。このフィールドは BearingTol フィールドと組み合わせて使用されます。 通常、方位データは、GPS 受信機を備えたモバイル デバイスから自動的に送信されます。歩行者や車両などの移動している入力場所を読み込んでいる場合は、方位データを含めてみてください。 このフィールドを使用すると、たとえば、車両が交差点や高架の近くにいる場合に、ロケーションが間違ったエッジに追加されるのを避けることができます。方位は、ツールがポイントを道路のどちら側に配置するかを決定する際にも役立ちます。 BearingTol 方位許容値は、Bearing フィールドを使用して移動ポイントをエッジに配置するときに、許容される方位の範囲を作成します。Bearing フィールドの値が、エッジの方位許容値から生成される許容範囲内にある場合は、ポイントをその場所にネットワーク ロケーションとして配置できます。許容範囲から外れている場合は、次に近いエッジの最も近いポイントが評価されます。 単位は度で、デフォルト値は 30 です。値は 0 より大きく 180 未満でなければなりません。値が 30 の場合、Network Analyst がネットワーク ロケーションをエッジに追加しようとすると、方位値の許容範囲がエッジの両側 (左と右) に 15 度ずつ、どちらもエッジのデジタイズされた方向に生成されます。 NavLatency このフィールドは、Bearing と BearingTol の値が存在する場合にのみ、解析処理で使用されます。ただし、NavLatency と Bearing の値が存在する場合でも、BearingTol 値の入力は任意です。NavLatency は、移動中の車両からサーバーに GPS 情報が送信されてから、車両のナビゲーション デバイスが処理されたルートを受信するまでの予想コストを示します。 NavLatency の単位は、インピーダンス属性の単位と同じです。 | Feature Set |
Measurement_Units | 出力ルートの合計移動時間または合計距離を計測およびレポートするときに使用される単位を指定します。 このパラメーターに選択する単位によって、最適なルートを検出するときに距離が計測されるか、時間が計測されるかが決まります。選択した移動モード (運転時間、歩行時間など) での移動時間を最小にするには、時間単位を選択します。指定した移動モードでの移動距離を最短にするには、距離単位を選択します。結果にレポートされる合計時間または合計距離の単位も、この選択によって決まります。
| String |
Analysis_Region (オプション) | 解析が実行される地域。このパラメーターに値を指定しない場合、入力ポイントの位置に基づいて地域名が自動的に計算されます。地域の名前は、地域名の自動検出が入力に対して正確ではない場合にのみ設定する必要があります。 地域を指定するには、次のいずれかの値を使用します。
レガシー:次の地域名は現在はサポートされておらず、今後のリリースで削除される予定です。廃止された地域名のいずれかを指定すると、サポートされている地域名がツールによって自動的に割り当てられます。
| String |
Reorder_Stops_to_Find_Optimal_Routes (オプション) | 定義した順序、またはツールが全体の移動を最小化すると判断した順序のどちらでストップに訪問するかを指定します。
最適なストップ順序と最適なルートの検索は、一般に、巡回セールスマン問題 (Traveling Salesperson Problem: TSP) の解析と呼ばれています。 | Boolean |
Preserve_Terminal_Stops (オプション) | ターミナル ストップを維持する方法を指定します。[ストップを並べ替えて最適ルートを検出] がオン (または True) の場合、最初と最後のストップを維持して、残りの順序を変更できます。 最初と最後のストップは、Sequence 属性値によって決定されます。Sequence 値が NULL の場合、Object ID 値によって決定されます。
[ストップを並べ替えて最適ルートを検出] がオフ (または False) の場合、[ターミナル ストップを維持] は無視されます。 | String |
Return_to_Start (オプション) | ルートを同じ位置で開始および終了するかどうかを指定します。このオプションを使用すると、最初のストップ フィーチャを複製して、複製したストップを最後に配置する必要がなくなります。 ルートの開始位置は、Sequence 属性の値が最も低いストップ フィーチャです。Sequence 値が NULL の場合、Object ID 値が最低のストップ フィーチャになります。
| Boolean |
Use_Time_Windows (オプション) | タイム ウィンドウに従うかどうかを指定します。ルートでストップに到着する時刻が入力ストップのタイム ウィンドウで指定されている場合、このオプションをオンにします (または、True に設定します)。TimeWindowStart および TimeWindowEnd 属性に時間を入力することで、入力ストップにタイム ウィンドウを追加できます。
[タイム ウィンドウを使用] がオン (または True) の場合、入力ストップにタイム ウィンドウがなくても、ツールの実行に少し時間がかかります。そのため、可能な場合は、このオプションをオフに (False に設定) することをお勧めします。 | Boolean |
Time_of_Day (オプション) | ルートの開始の日時。 運転移動モードをモデリングする場合、このパラメーターの値として現在の日時を指定すると、ライブ交通状況を使用して最適なルートが検出され、合計移動時間は交通状況に基づくものとなります。 時刻を指定すると、ルートと移動時間の推定がより正確になります。これは、その日時に該当する交通状況が移動時間に考慮されるためです。 [時刻のタイム ゾーン] パラメーターは、この日時が UTC を参照するか、ストップの場所のタイム ゾーンを参照するかを指定します。 [使用する単位] が時間ベース単位に設定されていない場合、このパラメーターは無視されます。 | Date |
Time_Zone_for_Time_of_Day (オプション) | [時刻] パラメーターのタイム ゾーンを指定します。
| String |
UTurn_at_Junctions (オプション) | ジャンクションでの U ターン ポリシーを指定します。U ターンを許可するということは、解析においてジャンクションで方向転換し、同じ道路を引き返すことができるということを意味します。 ジャンクションが道路の交差と行き止まりを表すことを前提に、さまざまな車両が、一部のジャンクションでは方向転換でき、他のジャンクションでは方向転換できない、というように設定できます。これは、ジャンクションが交差と行き止まりのどちらを表すかによって変わります。これに対応するには、ジャンクションに接続するエッジの数 (ジャンクションでのノードへの接続数) によって、暗黙的に U ターン ポリシーを指定します。以下では、このパラメーターで選択できる値と、ジャンクションの接続におけるそれぞれの意味について示します。
このパラメーターは、[移動モード] を [カスタム] に設定しなければ無視されます。 | String |
Point_Barriers (オプション) | 一時的な規制として機能する 1 つ以上のポイント、または対象の道路を通行するために必要とされる追加の時間や距離を表す 1 つ以上のポイントを指定する場合に、このパラメーターを使用します。たとえば、ポイント バリアを使用して、道路沿いの倒木や、踏切で生じる遅延時間を表すことができます。 このツールでは、バリアとして追加できるポイントの数は 250 に制限されています。 ポイント バリアを指定する場合は、次の属性を使用して、各ポイント バリアのプロパティ (ポイント バリアの名前やバリアの種類など) を設定できます。 Name バリアの名前。 BarrierType ポイント バリアの通過を完全に禁止するか、通過時に時間または距離を追加するかを指定します。この属性の値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。
Additional_Time バリアを通過するときに追加される移動時間。このフィールドは追加コスト バリアにのみ適用されます。 このフィールドには 0 以上の値を指定する必要があります。単位は [計測単位] パラメーターで指定した単位と同じです。 Additional_Distance バリアを通過するときに追加される距離。このフィールドは追加コスト バリアにのみ適用されます。 このフィールドには 0 以上の値を指定する必要があります。単位は [計測単位] パラメーターで指定した単位と同じです。 Additional_Cost バリアを通過するときに追加されるコスト。このフィールドは追加コスト バリアにのみ適用されます。 FullEdge 解析時に、通行不可ポイント バリアをエッジ要素に適用する方法を指定します。このフィールド値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。
CurbApproach バリアによって影響を受ける移動方向を指定します。このフィールド値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。
ジャンクションは特定のポイントなので、右側/左側がありません。したがって、ジャンクション上にバリアを配置した場合は、アプローチ制限にかかわらずすべての車両に影響を与えます。 CurbApproach 属性は、米国の右側通行の標準と英国の左側通行の標準の両方に対応しています。はじめに、施設が車両の左側にあるとします。これは、車両が移動するのが道路の左側であるか右側であるかに関係なく、常に左側にあります。右側通行か左側通行かに応じて異なるのは、2 つの方向のうちどちらから施設に到着するかです。つまり、結局のところ車両の右側または左側になります。たとえば、施設に到着するときに、車両と施設の間に交通レーンがない場合は、米国では 1 (車両の右側) を選択し、英国では 2 (車両の左側) を選択します。 Bearing ポイントが移動している方向。単位は度で、北を基準に時計回りに測定されます。このフィールドは BearingTol フィールドと組み合わせて使用されます。 通常、方位データは、GPS 受信機を備えたモバイル デバイスから自動的に送信されます。歩行者や車両などの移動している入力場所を読み込んでいる場合は、方位データを含めてみてください。 このフィールドを使用すると、たとえば、車両が交差点や高架の近くにいる場合に、ロケーションが間違ったエッジに追加されるのを避けることができます。方位は、ツールがポイントを道路のどちら側に配置するかを決定する際にも役立ちます。 BearingTol 方位許容値は、Bearing フィールドを使用して移動ポイントをエッジに配置するときに、許容される方位の範囲を作成します。Bearing フィールドの値が、エッジの方位許容値から生成される許容範囲内にある場合は、ポイントをその場所にネットワーク ロケーションとして配置できます。許容範囲から外れている場合は、次に近いエッジの最も近いポイントが評価されます。 単位は度で、デフォルト値は 30 です。値は 0 より大きく 180 未満でなければなりません。値が 30 の場合、Network Analyst がネットワーク ロケーションをエッジに追加しようとすると、方位値の許容範囲がエッジの両側 (左と右) に 15 度ずつ、どちらもエッジのデジタイズされた方向に生成されます。 NavLatency このフィールドは、Bearing と BearingTol の値が存在する場合にのみ、解析処理で使用されます。ただし、NavLatency と Bearing の値が存在する場合でも、BearingTol 値の入力は任意です。NavLatency は、移動中の車両からサーバーに GPS 情報が送信されてから、車両のナビゲーション デバイスが処理されたルートを受信するまでの予想コストを示します。 NavLatency の単位は、インピーダンス属性の単位と同じです。 | Feature Set |
Line_Barriers (オプション) | 道路と交差しているラインの場所を移動できないようにする 1 つ以上のラインを指定する場合に、このパラメーターを使用します。たとえば、複数の道路区間にわたって通行禁止となるパレードやデモを表すときに通過不可ライン バリアを使用します。また、ライン バリアを使用すれば、道路網の特定の区間を迂回して利用できる経路をすばやく見つけることができます。 このツールでは、[ライン バリア] パラメーターを使用して規制できる道路の数に制限があります。ライン バリアとして指定できるラインの数に制限はありませんが、すべてのラインと交差する道路の総数が 500 を超えることはできません。 ライン バリアを指定する場合は、次の属性を使用するごとに、名前プロパティおよびバリア タイプ プロパティを設定できます。 Name バリアの名前。 | Feature Set |
Polygon_Barriers (オプション) | 通過を完全に禁止するポリゴン、またはそのポリゴンと交差する道路を移動するときに時間または距離が係数に基づいて乗算されるポリゴンを指定する場合に、このパラメーターを使用します。 このサービスでは、[ポリゴン バリア] パラメーターを使用して規制できる道路の数に制限があります。ポリゴン バリアとして指定できるポリゴンの数に制限はありませんが、すべてのポリゴンと交差する道路の総数が 2,000 を超えることはできません。 ポリゴン バリアを指定する場合は、次の属性を使用して、各ポリゴン バリアのプロパティ (ポリゴン バリアの名前やバリアの種類など) を設定できます。 Name バリアの名前。 BarrierType バリアの通過を完全に禁止するか、バリアを通過する際のコスト (時間または距離など) を係数に基づいて計算するかを指定します。このフィールド値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。
ScaledTimeFactor これは、バリアが交差している道路の移動時間に乗算する係数です。このフィールドには 0 より大きい値を指定する必要があります。 このフィールドは、コスト係数指定バリアに対してのみ適用されます。 ScaledDistanceFactor これは、バリアが交差している道路の距離に乗算する係数です。このフィールドには 0 より大きい値を指定する必要があります。 このフィールドは、コスト係数指定バリアに対してのみ適用されます。 ScaledCostFactor これは、バリアと交差する道路のコストに乗算する係数です。このフィールドには 0 より大きい値を指定する必要があります。 このフィールドは、コスト係数指定バリアに対してのみ適用されます。 | Feature Set |
Use_Hierarchy (オプション) | ストップ間の最短パスを検索するときに階層を使用するかどうかを指定します。
施設と需要地点の間の直線距離が 50 マイル (80.46 キロメートル) を超える場合は、このパラメーターをオフに (Python では False に設定) しても、自動的に階層が使用されます。 このパラメーターは、[移動モード] を [カスタム] に設定しなければ無視されます。カスタム歩行モードをモデリングする場合、階層が動力付き車両用に設計されているため、階層をオフにすることをお勧めします。 | Boolean |
Restrictions [Restrictions,...] (オプション) | 最適なルートを検索する際に使用される規制。 規制は、運転上の優先事項や要件を表します。ほとんどの場合は、規制により道路は通行禁止になります。たとえば、[Avoid Toll Roads] の規制を使用すると、ルートに有料道路が含まれるのは、インシデントまたは施設を訪問するために有料道路の使用が必要な場合のみになります。[Height Restriction] は、車両の高さより低い車高規制の場所を迂回できるようにします。車両に腐食性物質を積載している場合は、[Any Hazmat Prohibited] の規制を使用して、腐食性物質の運搬が法律で禁止されている道路の通行を回避します。 メモ:このパラメーターに指定した値は、[移動モード] を [カスタム] に設定しなければ無視されます。 メモ:一部の規制では、用途に関する追加の値を指定する必要があります。この値は、規制の名前、および規制に対応させることを意図している特定のパラメーターに関連付ける必要があります。[属性パラメーター値] パラメーターの [AttributeName] 列に規制の名前が表示されている場合、その規制を識別できます。通行可能な道路を検索するときに、規制が正しく使用されるように、規制に対応する [属性パラメーター値] パラメーター内で [ParameterValue] フィールドを指定する必要があります。 メモ:一部の規制は、特定の国でのみサポートされます。それらの規制の利用可否は、次のリスト内で地域ごとに記述されています。領域内で規制の利用可否が制限されている場合、ネットワーク解析範囲の国リストのセクションにあるテーブルを確認して、規制が特定の国で利用できるかどうかを決定できます。国の [ロジスティック属性] 列に [Yes] という値が指定されている場合、その国では、その地域内で選択可能な規制を利用できます。解析を行う範囲の国で利用できない規制の名前を指定した場合、無効な規制はサービスによって無視されます。また、[規制の使用] 属性パラメーターの値が 0 ~ 1 の範囲内にある規制も、サービスによって無視されます ([属性パラメーター値] パラメーターを参照)。[規制の使用] パラメーターの値が 0 より大きいすべての規制は禁止されます。 ツールは、次の規制をサポートしています。
| String |
Attribute_Parameter_Values (オプション) | 規制が、制限された道路上の移動を禁止するか、回避するか、優先するかのいずれかを指定する場合など、属性または規制に必要な追加の値を指定する場合に、このパラメーターを使用します。規制が道路を回避または優先するためのものである場合は、このパラメーターを使用して道路が回避または優先される度合いも指定できます。たとえば、有料道路を決して使用しないこと、できるだけ避けること、または優先することを選択できます。 メモ:このパラメーターに指定した値は、[移動モード] を [カスタム] に設定しなければ無視されます。 フィーチャクラスから [属性パラメーター値] パラメーターを指定する場合は、フィーチャクラスのフィールド名が、次のフィールドと一致する必要があります。
[属性パラメーター値] パラメーターは、[規制] パラメーターに依存します。ParameterValue フィールドは、規制の名前が [規制] パラメーターの値として指定されている場合に限り適用できます。 [属性パラメーター値] では、AttributeName で指定した各規制の ParameterName フィールドに [規制の使用] という値があります。この値は、規制に関連付けられた道路での移動を禁止、回避、または優先するかどうか、および道路を回避または優先する場合のレベルを指定します。[ParameterName] フィールドの [規制の使用] の値には、次のいずれかの文字列、またはそれぞれの括弧に示した数値を割り当てることができます。
規制が車両の高さなどの車両の特性に依存している場合はほとんど、[Restriction Usage] の値にデフォルト値の PROHIBITED を使用できます。ただし、[規制の使用] の値がルートの優先度に依存している場合もあります。たとえば、[Avoid Toll Roads] の規制では、[規制の使用] 属性のデフォルト値は [AVOID_MEDIUM] になります。つまり、この規制を使用すると、可能な場合は有料道路を回避するルートが検索されます。また、[AVOID_MEDIUM] は、最適なルートを検索する際に有料道路を回避することの重要度も表しています (中程度の優先度)。[AVOID_LOW] を選択すると、有料道路を回避する重要度が下がります。AVOID_HIGH を選択すると重要度が上がり、有料道路を回避するためにより長い距離のルートも生成可能になります。[PROHIBITED] を選択すると有料道路の通行は完全に禁止され、ルートでは有料道路のいずれの部分も通行できなくなります。一部のユーザーは、有料道路を回避または禁止して、料金所での支払いを回避することが目的であることに注意してください。一方、料金所で支払うことよりも交通渋滞を避けることのほうに価値があるため、有料道路で運転することを優先するユーザーもいます。後者の場合は、[規制の使用] として [PREFER_LOW]、[PREFER_MEDIUM]、または [PREFER_HIGH] を選択できます。優先度が高いほど、規制に関連付けられている道路を通行するために遠回りするようになります。 | Record Set |
Route_Shape (オプション) | ツールによって出力されるルート フィーチャのタイプを指定します。
[ルート形状] パラメーターが [正確な形状] または [正確な形状 (メジャー付き)] に設定されている場合は、[ルート ラインの単純化許容値] パラメーターの適切な値を使用して、ルートの形状の一般化をさらに制御できます。 [ルート形状] パラメーターにどのような値を選択しても、最適ルートは常に、ストップ間の直線距離を使用するのではなく、移動時間または移動距離を最小化することで決定されます。つまり、ルート形状が異なるだけで、ルート検索時に対象となる道路は同じであることを意味します。 | String |
Route_Line_Simplification_Tolerance (オプション) | ルート、ルート案内、およびルート エッジの出力ラインのジオメトリをどの程度単純化するかを指定します。 [ルート形状] パラメーターが [正確な形状] に設定されていない場合、このパラメーターは無視されます。 単純化によって、ルートの基本的な形状を定義する重要ポイント (交差点でのターンなど) は維持され、その他のポイントは削除されます。ここで指定する単純化の距離は、単純化されたラインの元のラインからの逸脱として認められる、最大許容オフセットです。ラインの単純化では、ルート ジオメトリを構成する頂点の数が削減されます。これにより、ツールの実行時間が短縮されます。 | Linear Unit |
Populate_Route_Edges (オプション) | 各ルートに対してエッジを生成するかどうかを指定します。ルート エッジは、ルートが通過する個別の道路フィーチャまたはその他の類似フィーチャを表します。出力ルート エッジ レイヤーは一般的に、結果のルートで最も多く/少なく利用される道路またはパスを確認するために使用されます。
| Boolean |
Populate_Directions (オプション) | 各ルートに対してルート案内を生成するかどうかを指定します。
| Boolean |
Directions_Language (オプション) | 移動方向を生成する際に使用する言語。 このパラメーターは、[ルート案内の設定] パラメーターがオンである (Python では True) 場合にのみ使用されます。 パラメーター値は、次の 2 文字または 5 文字の言語コードのいずれかを使用して指定できます。
このツールは、はじめに、言語ローカライズを含め、指定された言語の完全一致を検索します。完全一致が見つからなかった場合は、言語ファミリーの一致を試みます。それでも一致が見つからない場合、ルート案内にはデフォルト言語である英語が使用されます。たとえば、ルート案内の言語が [es-MX] (メキシコ スペイン語) として指定されている場合、ツールは [es-MX] ではなく [es] 言語コードをサポートしているため、ルート案内をスペイン語で返します。 注意:言語がポルトガル語 (ブラジル) (pt-BR) とポルトガル語 (ポルトガル) (pt-PT) などのローカライズをサポートしている場合は、言語ファミリーとローカライズを指定します。言語ファミリーのみを指定した場合、ツールは言語ファミリーの一致を試みず、ルート案内にはデフォルト言語である英語が使用されます。たとえば、ルート案内の言語が [pt] として指定されている場合、ツールはルート案内を英語で返します。これは、ルート案内を [pt-BR] で返すべきか [pt-PT] で返すべきか判断できないからです。 | String |
Directions_Distance_Units (オプション) | ルート案内で移動距離を表示する単位を指定します。このパラメーターは、[ルート案内の設定] パラメーターがオンである (Python では True) 場合にのみ使用されます。
| String |
Directions_Style_Name (オプション) | ルート案内の書式スタイルの名前を指定します。このパラメーターは、[ルート案内の設定] パラメーターがオンである (Python では True) 場合にのみ使用されます。
| String |
Travel_Mode (オプション) | 解析でモデル化する交通モード。移動モードは ArcGIS Online で管理されます。組織の管理者は、移動モードを構成することで、組織のワークフローを反映することができます。 組織がサポートする移動モードの名前を指定する必要があります。 サポートされている移動モード名のリストを取得するには、このツールへのアクセスに使用した GIS サーバー接続で、[ユーティリティ] ツールボックスの [移動モードの取得 (GetTravelModes)] ツールを実行します。[移動モードの取得 (GetTravelModes)] ツールは、アプリケーションに [サポートされている移動モード] テーブルを追加します。[サポートされている移動モード] テーブルの [Travel Mode Name] フィールドの任意の値を、入力として指定できます。Travel Mode Settings フィールドの値を入力として指定することもできます。これにより、ツールが移動モード名に基づいて設定を検索する必要がなくなるため、ツールの実行時間を短縮します。 デフォルト値 [カスタム] を使用すると、カスタム移動モード パラメーター ([ジャンクションでの U ターン]、[階層の使用]、[規制]、[属性パラメーター値]、および [インピーダンス]) を使用して、独自の移動モードを構成できます。カスタム移動モード パラメーターのデフォルト値は、自動車による移動をモデル化します。歩くのが速い歩行者や、指定された高さ、重量、および特定危険物を積載したトラックなどをモデル化する場合に、[カスタム] を選択して、上記のカスタム移動モード パラメーターを設定することもできます。必要な解析結果を取得するために、異なる設定を試すことができます。解析設定を決定したら、組織の管理者と連携して、その設定を新規または既存の移動モードの一部として保存します。これにより、組織のすべてのユーザーが同じ設定で解析を実行できます。 注意:[カスタム] を選択すると、カスタム移動モード パラメーターに設定した値が解析に組み込まれます。組織で定義されている別の移動モードを指定すると、カスタム移動モード パラメーターで設定した値は無視されます。ツールはカスタムの設定ではなく、指定した移動モードの値を適用します。 | String |
Impedance (オプション) | インピーダンスを設定します。インピーダンスは、道路セグメントや交通ネットワークのその他の部分を移動する労力やコストを表す値です。 移動時間もインピーダンスです。自動車は、空いている道路を 1 マイル移動するのに 1 分かかります。移動時間は、移動モードによって異なります。歩行者は、同じマイル数を歩くのに 20 分以上かかる可能性があります。そのため、モデル化している移動モードに対して適切なインピーダンスを選択することが重要です。 移動距離もインピーダンスになる可能性があります。道路の長さ (キロメートル) もインピーダンスと見なすことができます。この場合の移動距離は、すべてのモデルで同じです。歩行者の 1 キロメートルは、自動車でも 1 キロメートルです (変化する可能性があるのは、別のモデルでは移動が許可される通路で、ポイント間の距離に影響します。これは移動モード設定でモデル化されます)。 注意:このパラメーターに指定した値は、[移動モード] を [カスタム] (デフォルト値) に設定しなければ無視されます。 次のインピーダンス値から選択します。
[TravelTime]、[TruckTravelTime]、[Minutes]、[TruckMinutes]、[WalkTime] などの時間ベースのインピーダンスを選択する場合、[Measurement Units] パラメーターを時間ベースの値に設定する必要があります。[Miles]、[Kilometers] などの距離ベースのインピーダンスを選択する場合、[Measurement Units] が距離ベースである必要があります。 レガシー:[到達圏]、[トラック輸送時間]、[歩行時間]、[移動距離] インピーダンス値のサポートは終了するので、今後のリリースからは削除されます。これらのいずれかの値を使用している場合、時間ベースの値に対しては [時間インピーダンス] パラメーター、距離ベースの値に対しては [距離インピーダンス] パラメーターが使用されます。 | String |
Time_Zone_for_Time_Windows (オプション) | ストップでのタイム ウィンドウ値のタイム ゾーンを指定します。タイム ウィンドウは、ストップの TimeWindowStart フィールドと TimeWindowEnd フィールドの一部として指定されます。このパラメーターは、[タイム ウィンドウの使用] パラメーターがオン (または True に設定) の場合にのみ適用されます。
| String |
Save_Output_Network_Analysis_Layer (オプション) | 解析設定をネットワーク解析レイヤー ファイルとして保存するかどうかを指定します。このファイルは、ArcMap などの ArcGIS Desktop アプリケーションで開いた場合でも、直接操作することはできません。これは、ツールから返される結果の品質を診断するために、Esri テクニカル サポートに送信されることを想定しています。
| Boolean |
Overrides (オプション) | ネットワーク解析問題の解決法を見つける場合に、解析の動作に影響を与えることができる追加設定。 JSON (JavaScript Object Notation) で、このパラメーターの値を指定する必要があります。たとえば、有効な値は {"overrideSetting1" : "value1", "overrideSetting2" : "value2"} という形式です。オーバーライド設定名は、必ず二重引用符で囲みます。値には、数値、ブール型、または文字列を使用できます。 このパラメーターのデフォルト値は、値なしであり、解析の設定を上書きしません。 オーバーライドは、設定を適用する前後で得られた結果を慎重に分析した後にのみ使用する必要のある高度な設定です。解析ごとにサポートされているオーバーライド設定の一覧およびそれらの許容される値については、Esri テクニカル サポートにお問い合わせください。 | String |
Save_Route_Data (オプション) | ルート レイヤーを ArcGIS Online または Portal for ArcGIS で共有するのに使用できる形式で、解析の入力と出力を保持するファイル ジオデータベースを含む *.zip ファイルを出力に含めるかどうかを指定します。
| Boolean |
Time_Impedance (オプション) | 時間ベースのインピーダンス。インピーダンスは、道路セグメントや交通ネットワークのその他の部分の移動時間を表す値です。 メモ:[インピーダンス] パラメーターを使用して指定された移動モードのインピーダンスが時間ベースである場合、[時間インピーダンス] パラメーターと [インピーダンス] パラメーターの値が同じである必要があります。同一でなければ、サービスはエラーを返します。
| String |
Distance_Impedance (オプション) | 距離ベースのインピーダンス。インピーダンスは、道路セグメントや交通ネットワークのその他の部分の移動距離を表す値です。 メモ:[インピーダンス] パラメーターを使用して指定された移動モードのインピーダンスが距離ベースである場合、[距離インピーダンス] パラメーターと [インピーダンス] パラメーターの値が同じである必要があります。同一でなければ、サービスはエラーを返します。
| String |
Output_Format (オプション) | 出力フィーチャを作成する形式を指定します。
[JSON ファイル] や [GeoJSON ファイル] など、ファイルベースの出力形式が指定されている場合は、ディスプレイに出力は追加されません。これは、ArcMap や ArcGIS Pro のようなアプリケーションは結果ファイルのコンテンツを描画できないからです。代わりに、結果ファイルはコンピューター上の一時ディレクトリにダウンロードされます。ArcGIS Pro でダウンロードされたファイルの場所を調べるには、プロジェクトのジオプロセシング履歴で、ツールの実行に対応するエントリの [出力結果ファイル] パラメーターの値を表示します。ArcMap でファイルの場所を調べるには、[ジオプロセシング結果] ウィンドウで、ツールの実行に対応するエントリの [出力結果ファイル] パラメーターから、ショートカット メニューの [ロケーションのコピー] オプションにアクセスします。 | String |
派生した出力
名前 | 説明 | データ タイプ |
Solve_Succeeded | サービスがルートを正常に検出できたかどうかを特定します。 | ブール型 |
Output_Routes | 結果ルートへのアクセスを提供します。 | フィーチャ セット |
Output_Route_Edges | ルートが移動する個々のネットワーク エッジへのアクセスを提供します。 | フィーチャ セット |
Output_Directions | 各結果ルートのターンごとのルート案内へのアクセスを提供します。 | フィーチャ セット |
Output_Stops | ルートによって訪問されたストップや、どのルートでも到達できないストップの属性へのアクセスを提供します。 | フィーチャ セット |
Output_Network_Analysis_Layer | ツールのパラメーターでプロパティが構成されているネットワーク解析レイヤー。これは、マップ内でさらに詳細な解析やデバッグに使用できます。 | ファイル |
Output_Route_Data | 特定のルートに関するすべての情報を含む *.zip ファイル。 | ファイル |
Output_Result_File | 解析結果を含んでいる *.zip ファイル。出力ごとに 1 つ以上のファイルが含まれます。個々のファイルの形式は [出力形式] パラメーターで指定されます。 | ファイル |
コードのサンプル
次の Python スクリプトは、Find Routes ツールをスクリプトで使用する方法を示しています。
"""This example shows how to find a best route that optimizes the sequence in which the stops are visitied."""
import sys
import time
import datetime
import arcpy
# Change the username and password applicable to your own ArcGIS Online account
username = "<your user name>"
password = "<your password>"
route_service = "https://logistics.arcgis.com/arcgis/services;World/Route;{0};{1}".format(username, password)
# Add the geoprocessing service as a toolbox.
# Check https://pro.arcgis.com/en/pro-app/arcpy/functions/importtoolbox.htm for
# other ways in which you can specify credentials to connect to a geoprocessing service.
arcpy.ImportToolbox(route_service)
# Set the variables to call the tool
stops = "C:/data/Inputs.gdb/Stores"
output_routes = "C:/data/Results.gdb/Routes"
output_directions = "C:/data/Results.gdb/Directions"
# Call the tool specifying current UTC time as start time. This will ensure that the route is
# calculated based on the current traffic conditions. We also want to find the best sequence in
# which to visit the stops but do not want to change the sequence of the first stop since the
# first stop is a pre-defined start location such as an office.
result = arcpy.FindRoutes_Route(stops, "Minutes",
Reorder_Stops_to_Find_Optimal_Routes=True,
Preserve_Terminal_Stops="Preserve First",
Time_of_Day=datetime.datetime.utcnow(),
Time_Zone_for_Time_of_Day="UTC")
arcpy.AddMessage("Running the analysis with result ID: {}".format(result.resultID))
# Check the status of the result object every 1 second until it has a value of 4 (succeeded)
# or greater
while result.status < 4:
time.sleep(1)
# print any warning or error messages returned from the tool
result_severity = result.maxSeverity
if result_severity == 2:
arcpy.AddError("An error occured when running the tool")
arcpy.AddError(result.getMessages(2))
sys.exit(2)
elif result_severity == 1:
arcpy.AddWarning("Warnings were returned when running the tool")
arcpy.AddWarning(result.getMessages(1))
# Save the output route and driving directions to a geodatabase
result.getOutput(1).save(output_routes)
result.getOutput(3).save(output_directions)
次に、カスタム移動モードを使用してルート解析を行う方法を例示します。
"""This example shows how to perform a route analysis using a custom travel mode
that models trucks carrying wide load."""
import sys
import time
import datetime
import json
import arcpy
username = "<your user name>"
password = "<your password>"
route_service = "https://logistics.arcgis.com/arcgis/services;World/Route;{0};{1}".format(username, password)
# Add the geoprocessing service as a toolbox.
arcpy.ImportToolbox(route_service)
# Set the variables to call the tool
stops = "C:/data/Inputs.gdb/Stops"
output_routes = "C:/data/Results.gdb/Routes"
output_directions = "C:/data/Results.gdb/Directions"
# Change Vehicle Width attribute parameter value to 4.5 (about 15 feet) for the Trucking Time travel mode
# used for the analysis
portal_url = "https://www.arcgis.com"
arcpy.SignInToPortal(portal_url, username, password)
travel_mode_list = arcpy.na.GetTravelModes(portal_url)
tt = travel_mode_list["Trucking Time"]
tt_json = str(tt)
tt_dict = json.loads(tt_json)
tt_dict["restrictionAttributeNames"].append("Width Restriction")
for attr_param in tt_dict["attributeParameterValues"]:
if attr_param['attributeName'] == 'Width Restriction' and attr_param['parameterName'] == 'Vehicle Width (meters)':
attr_param['value'] = 4.5
travel_mode = json.dumps(tt_dict)
# Call the tool
result = arcpy.FindRoutes_Route(stops, "Minutes", Travel_Mode=travel_mode,
Time_of_Day=datetime.datetime(2019, 6, 25, 8, 0, 0))
# Check the status of the result object every 1 second until it has a value of 4 (succeeded)
# or greater
while result.status < 4:
time.sleep(1)
# print any warning or error messages returned from the tool
result_severity = result.maxSeverity
if result_severity == 2:
arcpy.AddError("An error occured when running the tool")
arcpy.AddError(result.getMessages(2))
sys.exit(2)
elif result_severity == 1:
arcpy.AddWarning("Warnings were returned when running the tool")
arcpy.AddWarning(result.getMessages(1))
# Save the output route and driving directions to a geodatabase
result.getOutput(1).save(output_routes)
result.getOutput(3).save(output_directions)