配車ルート (VRP) の解析 (Solve Vehicle Routing Problem) (オンライン)

概要

配車ルート (VRP) を解析して、各車両の最適ルートを検索します。

保有車両を管理する担当者は、配車ルートを決定しなければならないことがよくあります。このような決定には、顧客グループを保有車両に最適に割り当てる方法、車両の立ち寄りの順序およびスケジュールを設定する方法が含まれます。このような配車ルート (VRP) の解析を実行する目的は、各ルートの運用および投資コスト全体を最小限に維持しながらタイム ウィンドウを遵守することで、高レベルな顧客サービスを提供することにあります。制約として、使用可能なリソースを使用し、運転者の交代制勤務、走行速度、および顧客の約束事項によって課される時間制限の範囲内にルートを完了する必要があります。

このサービスを使用すると、これらの複雑な車両管理タスクに対するソリューションを決定できます。

中央の倉庫から食品雑貨店に商品を配達する例を考えてみましょう。倉庫では全部で 3 台のトラックを使用できます。倉庫は、特定の時間帯 (午前 8 時から午後 5 時) でのみ運用されます。- その時間内に、すべてのトラックは倉庫に戻る必要があります。各トラックの積載制限は 15,000 ポンドであり、搬送できる商品の量には制限があります。各食品雑貨店からは、配達を必要とする商品の需要が特定量 (ポンド単位) あります。また、各食品雑貨店は、配達の時間を制限する時間帯を設定しています。さらに、運転者の労働時間は、1 日あたり 8 時間に制限されています。運転者には昼休みが必要で、運転および食品雑貨店へのサービス提供に費やした時間に対して賃金が支払われます。目標は、配達を行うにあたりすべてのサービス要件を満たし運転者が特定のルートで費やす合計時間を最小にすることができるように、運転者 (ルート) ごとに配送プランを決定することにあります。次の図は、上記の配車ルート解析を実行して得られる 3 つのルートを示しています。

配車ルート (VRP) の解析 (Solve Vehicle Routing Problem) からの出力の詳細

配車ルート解析の結果

使用法

  • [配車ルート (VRP) の解析 (Solve Vehicle Routing Problem)] ツールは、多数の訪問先で配達、集荷、またはサービス呼び出しに対応する必要がある各車両のルートを生成します。このツールは非同期モードで動作し、実行に時間のかかる大規模な解析に適しています。

  • オンライン ツールボックスに収容されているツールは、ArcGIS Online でホストしているデータと機能を使って解析する ArcGIS Online ジオプロセシング サービスです。

  • 2,000 件の訪問先と 100 のルートを追加できます。また、1 つのルートに最大 200 件の訪問先を割り当てることができます。

  • 最大で 250 のポイント バリアを追加できます。ライン バリアまたはポリゴン バリアは必要なだけ追加できますが、ライン バリアが交差する道路フィーチャは 500 以下にする必要があり、ポリゴン バリアが交差するフィーチャは 2,000 以下にする必要があります。

  • [use_hierarchy_in_analysis] パラメーターがオン (True) であるかどうかにかかわらず、訪問先間、拠点間、または訪問先と拠点間の直線距離が 50 マイル (80.46 キロメートル) を超えている場合は、常に階層が使用されます。

  • travel_mode[徒歩] に設定されている場合や [カスタム] に設定されていて [徒歩] 規制が使用されている場合は、訪問先間または拠点間の直線距離が 27 マイル (43.45 キロメートル) を超えてはなりません。

  • 入力したポイントと通行可能な最も近い道路の距離が 12.42 マイル (20 キロメートル) を超える場合、そのポイントは解析から除外されます。

  • このサービスを使用すると、クレジットが消費されます。詳細については、「サービス クレジットの概要」をご参照ください。

構文

SolveVehicleRoutingProblem(orders, depots, routes, breaks, time_units, distance_units, {analysis_region}, {default_date}, {uturn_policy}, {time_window_factor}, {spatially_cluster_routes}, {route_zones}, {route_renewals}, {order_pairs}, {excess_transit_factor}, {point_barriers}, {line_barriers}, {polygon_barriers}, {use_hierarchy_in_analysis}, restrictions, {attribute_parameter_values}, {populate_route_lines}, {route_line_simplification_tolerance}, {populate_directions}, {directions_language}, {directions_style_name}, {travel_mode}, {impedance}, {time_zone_usage_for_time_fields}, {save_output_layer}, {overrides}, {save_route_data}, {time_impedance}, {distance_impedance}, {populate_stop_shapes}, {output_format})
パラメーター説明データ タイプ
orders

VRP 解析のルートで訪問先となる場所を 1 つ以上指定します。1 つの訪問先は、配達 (家具の配達など)、引き取り (空港のシャトル バスによる乗客の送迎など)、または何らかのサービスや調査 (伐採作業や建物調査など) を表すことができます。

訪問先を指定する場合は、次の属性を使用して、各訪問先のプロパティ (訪問先の名前やサービス時間など) を設定できます。

ObjectID

システムで管理される ID フィールド。

Name

訪問先の名前。名前は一意でなければなりません。名前を NULL のままにした場合、名前は解析時に自動的に生成されます。

Description

訪問先に関する説明的な情報。訪問先に関するあらゆるテキスト情報を保持することができ、一意でなくてもかまいません。Name フィールドに顧客 ID 番号を格納し、Description フィールドに顧客の実際の名前または住所を格納すると便利なことがあります。

ServiceTime

このプロパティは、ルートがネットワーク ロケーションを訪れたときの滞在時間を指定します。つまり、ネットワーク ロケーションのインピーダンス値を格納します。0 または NULL 値は、ネットワーク ロケーションでサービス時間が必要ないことを表します。

このフィールド値の単位は、[time_units] パラメーターで指定します。

TimeWindowStart1

ネットワーク ロケーションの第 1 のタイム ウィンドウの開始時刻。このフィールドは NULL 値を含むことができます。NULL 値を指定した場合、開始時刻は設定されません。

タイム ウィンドウは、訪問先への車両の到着が許される時間帯を示すだけです。サービス時間が完了しなければならない時間帯を示すものではありません。サービス時間を考慮に入れ、タイム ウィンドウが終了する前に出発するには、ServiceTime フィールドから TimeWindowEnd1 を引き算します。

タイム ウィンドウ フィールド (TimeWindowStart1TimeWindowEnd1TimeWindowStart2TimeWindowEnd2) は、日付フィールドに時刻のみの値または日時の値を含めることができますが、エポックからのミリ秒を表す整数は使用できません。タイム ウィンドウ フィールドのタイム ゾーンは、time_zone_usage_for_time_fields パラメーターを使用して指定されます。TimeWindowStart1 などの時間フィールドが時刻のみを示す値 (たとえば、午前 8:00) である場合、日付は解析に対して設定されたデフォルトの日付と見なされます。日時の値 (たとえば、7/11/2010 8:00 a.m.) を使用すると、複数日にわたるタイム ウィンドウを設定することができます。

解析が複数のタイム ゾーンにまたがる場合、各訪問先のタイム ウィンドウ値はその訪問先が属しているタイム ゾーンの日時を表します。

TimeWindowEnd1

ネットワーク ロケーションの第 1 のタイム ウィンドウの終了時刻。このフィールドは NULL 値を含むことができます。NULL 値を指定した場合、終了時刻は設定されません。

TimeWindowStart2

ネットワーク ロケーションの第 2 のタイム ウィンドウの開始時刻。このフィールドは NULL 値を含むことができます。NULL 値を指定した場合、第 2 のタイム ウィンドウは設定されません。

TimeWindowStart1 および TimeWindowEnd1 フィールドで第 1 のタイム ウィンドウを NULL に指定した場合は、第 2 のタイム ウィンドウも NULL にする必要があります。

両方のタイム ウィンドウに NULL 以外の値を指定する場合、これらのタイム ウィンドウを重なるように指定することはできません。また、第 2 のタイム ウィンドウは第 1 のタイム ウィンドウよりも後になるように設定する必要があります。

TimeWindowEnd2

ネットワーク ロケーションの第 2 のタイム ウィンドウの終了時刻。このフィールドは、NULL 値を含むことができます。

TimeWindowStart2TimeWindowEnd2 の両方が NULL の場合、第 2 のタイム ウィンドウは設定されません。

TimeWindowStart2 が NULL 以外で TimeWindowEnd2 が NULL の場合、第 2 のタイム ウィンドウの開始時間は設定されますが、終了時間は設定されません。これは有効な設定です。

MaxViolationTime1

到着時刻がタイム ウィンドウの終了よりも後になった場合は、タイム ウィンドウが超過されたと見なされます。このフィールドでは、訪問先の第 1 のタイム ウィンドウについて最大許容超過時間を指定します。このフィールドは値としてゼロを含むことはできますが、負の値を含むことはできません。値がゼロの場合、訪問先の第 1 のタイム ウィンドウにおいてタイム ウィンドウ違反は許されません。つまり、第 1 のタイム ウィンドウは条件が厳しいということです。一方、NULL 値の場合、許容超過時間は無制限です。ゼロ以外の値は、最大遅延時間を指定します。たとえば、第 1 のタイム ウィンドウの終了時刻から最大で 30 分遅れて到着することが許されます。

このフィールドの値の単位は、[Time Field Units] パラメーターで指定します。

解析によってタイム ウィンドウ違反を追跡し、重み付けすることが可能です。したがって、次のいずれかを行うように VRP 解析機能に指示することができます。

  • 保有車両の移動コストの増大を無視して、全体の超過時間を最小にする。
  • 全体の超過時間と移動コストのバランスをとるソリューションを検索する。
  • 全体の超過時間を無視して、保有車両の移動コストを最小にする。

[タイム ウィンドウ違反の重要度] パラメーターに重要度を割り当てることで、これらのオプションの中から実質的に 1 つを選択できます。ただし、いずれの場合も、MaxViolationTime1 の値セットを超えるとエラーが返されます。

MaxViolationTime2

訪問先の第 2 のタイム ウィンドウの最大許容超過時間。このフィールドは、MaxViolationTime1 フィールドと同様です。

InboundArriveTime

訪問先に配達されるアイテムが開始拠点で準備される時間を定義します。

このインバウンド到着時間がルートの最新の開始時間値より前の場合のみ、訪問先をルートに割り当てることができます。このため、アイテムを積み込む準備ができるまで、拠点を出発することはできません。

このフィールドは、インバウンド到着後の積み替えに関わるシナリオのモデリングに役立ちます。たとえば、訪問先のジョブで、現在拠点にない特別なマテリアルが必要であるとします。このマテリアルは、別のロケーションから発送され、午前 11 時に拠点に到着する予定です。マテリアルの到着前に出発するルートが訪問先に割り当てられないようにするために、訪問先のインバウンド到着時間を午前 11 時に設定します。特別なマテリアルが午前 11 時に到着し、車両に積み込まれ、車両が拠点から出発して割り当てられた訪問先に移動します。

備考:

  • サービス時間を含むルートの開始時間は、インバウンド到着時間の後に設定する必要があります。訪問先のインバウンド到着時間の前にルートが開始する場合、訪問先をそのルートに割り当てることはできません。ルートの開始拠点のサービス時間がインバウンド到着時間の後まで続く場合でも、その割り当ては無効になります。

  • この時間フィールドは、時刻のみを示す値を含むことも、日時を示す値を含むこともできます。時刻のみを示す値 (たとえば、11:00 AM) が設定されている場合、日付は解析に対して設定されたデフォルトの日付と見なされます。ただし、拠点、ルート、訪問先、または休憩の時間フィールドに時刻を含む日付が指定されている場合、デフォルトの日付は無視されます。その場合、それらすべてのフィールドを日時 (たとえば、7/11/2015 11:00 AM) で指定します。

  • VRP 解析では、DeliveryQuantities の値に関係なく、InboundArriveTime を優先します。

  • アウトバウンド出発時間も指定されている場合、その時間値はインバウンド到着時間より後である必要があります。

OutboundDepartTime

訪問先で積み込むアイテムが終了拠点に到着しなくてはならない時間を定義します。

指定したアウトバウンド出発時間より前にルートが訪問先に移動でき、終了拠点に到着できる場合のみ、訪問先をルートに割り当てることができます。

このフィールドは、アウトバウンド出発時刻の積み替えに関わるシナリオのモデリングに役立ちます。たとえば、発送会社が配達トラックを使って訪問先からパッケージを積み込み、拠点に運び、それを最終目的地へのルートの途中で、別の施設に送るとします。毎日、午後 3 時に、セミトレーラーが拠点に立ち寄り、優先度の高いパッケージを積み込み、それを中央処理ステーションに直接輸送します。発送会社は、優先度の高いパッケージの輸送が次の日の午後 3 時まで遅れないように、配達トラックで訪問先から優先度の高いパッケージを積み込み、それを締め切りの午後 3 時より前に拠点に輸送しようと努めます。このために、アウトバウンド出発時間を午後 3 時に設定します。

備考:

  • サービス時間を含むルートの終了時間は、アウトバウンド出発時間より前である必要があります。ルートが拠点に到着しても、訪問先のアウトバウンド出発時間の前に、終了拠点のサービス時間が完了していない場合、訪問先をそのルートに割り当てることはできません。

  • この時間フィールドは、時刻のみを示す値を含むことも、日時を示す値を含むこともできます。時刻のみを示す値 (たとえば、11:00 AM) が設定されている場合、日付は解析に対して設定されたデフォルトの日付と見なされます。ただし、拠点、ルート、訪問先、または休憩の時間フィールドに日時が含まれている場合、デフォルトの日付は無視されます。その場合、それらすべてのフィールドを日時 (たとえば、7/11/2015 11:00 AM) で指定します。

  • VRP 解析では、PickupQuantities の値に関係なく、OutboundDepartTime を優先します。

  • インバウンド到着時間も指定されている場合、その時間値はアウトバウンド出発時間より前である必要があります。

DeliveryQuantities

配達される荷物のサイズ。重量、体積、数量など、任意の計測単位で容量を指定できます。重量と体積など、複数の計測方法でサイズを指定することもできます。

単位を指定しないで配達数量を入力します。たとえば、ある訪問先に 300 ポンドの物品を配達する必要がある場合は、「300」と入力します。値がポンド単位であることを覚えておく必要があります。

複数の計測方法を記録する場合、数値をスペースで区切ります。たとえば、配達について重量と体積を記録する場合、重量が 2,000 ポンド、体積が 100 立法フィートであれば、「2000 100」と入力します。この場合も、単位がポンドと立方フィートであることを覚えておく必要があります。また、入力した値と対応する単位の順序も覚えておく必要があります。

ルートの Capacities と訪問先の DeliveryQuantities および PickupQuantities が同じ方法で指定されていることを確認します。つまり、値は同じ単位を使用する必要があります。複数のディメンションを使用する場合、ディメンションはすべてのパラメーターに対して同じ順序でリストする必要があります。たとえば、DeliveryQuantities に、重量 (ポンド) と体積 (立方フィート) を順に指定した場合は、ルートの容量と訪問先の引き取り数量も同じ方法で (ポンド単位の重量、立方フィート単位の体積の順に) 指定する必要があります。単位が混在したり順序が異なったりすると正しい結果が得られません。この場合、警告メッセージは表示されません。

空の文字列または NULL 値は、すべての計測方法でサイズがゼロであることと同じです。積載制限 (または計測方法でのサイズ) の総数に対して文字列内の値の数が不足している場合、残りの値はゼロと見なされます。配送数量を負の値とすることはできません。

PickupQuantities

引き取る荷物のサイズ。重量、体積、数量など、任意の計測単位で容量を指定できます。重量と体積など、複数の計測方法でサイズを指定することもできます。ただし、負の値は指定できません。このフィールドは、[訪問先] の DeliveryQuantities フィールドと同様です。

交換訪問の場合、訪問先は配送数量と引き取り数量の両方を持つことができます。

Revenue

訪問先が解析に含まれる場合に生成される収入。このフィールドは NULL 値 (収入がゼロであることを示す) を含むことができますが、負の値を含むことはできません。

収入は、目的関数の値を最適化する際に算入されますが、ソリューションの運用コストには組み込まれません。つまり、ルートの TotalCost フィールドの出力に収入が取り込まれることはありません。ただし、収入によって、訪問先へのサービス提供の重要度が相対的に重み付けされます。

収入は、目的関数の値を最適化する際に算入されますが、ソリューションの運用コストには組み込まれません。つまり、ルート クラスの TotalCost フィールドの出力に収入が取り込まれることはありません。ただし、収入によって、訪問先へのサービス提供の重要度が相対的に重み付けされます。

SpecialtyNames

スペース区切りの文字列であり、訪問先が必要とする特別指定の名前が含まれます。NULL 値は、訪問先が特別指定を必要としていないことを示しています。

訪問先クラスおよびルート クラスに表示されるどの特別指定の綴りも、配車ルート (VRP) 解析でそれらを一緒にリンクできるようにするために、正確に一致している必要があります。

特別指定の説明とその機能を示す例として、芝の手入れと庭木の剪定を行う造園会社を考えます。この会社の一部の訪問先では、背の高い木を剪定するために高所作業車が必要です。これらの訪問先の [SpecialtyNames] フィールドに「BucketTruck」と入力して、特別指定があることを示します。他の訪問先の [SpecialtyNames] は NULL のままにします。同様に、油圧ブームを装備したトラックで移動するルートの [SpecialtyNames] フィールドにも「BucketTruck」と入力します。他のルートのフィールドは NULL のままにします。VRP 解析を実行すると、特別指定のない訪問先は任意のルートに割り当てられますが、高所作業車が必要な訪問先は、特別指定が設定されたルートにだけ割り当てられます。

AssignmentRule

訪問先をルートに割り当てるためのルールを指定します。このフィールド値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。

  • 0 (含まない) - 後続の解析から訪問先を除外します。
  • 1 (ルートと関連する順序を保持) - 解析処理において、解析機能は訪問先を、あらかじめ割り当てられたルートにあらかじめ割り当てられた相対的な順序で常に割り当てる必要があります。この割り当てルールが守られなかった場合は、訪問先違反が発生します。この設定では、相対的な順序は保持されますが、絶対的な順序は保持されません。例として、A と B の 2 つの訪問先を考えます。これらの訪問先の順序の値は、それぞれ 2 と 3 です。各訪問先の [AssignmentRule] フィールドの値を「ルートと関連する順序を保持」に設定した場合、他の訪問先、休憩地点、および拠点立ち寄りを A と B の前、間、または後に配置することができるため、解析後に A と B の実際の順序の値が変化する場合があります。ただし、B を A の前にすることはできません。
  • 2 (ルートを保持) - 解析処理において、解析機能はあらかじめ割り当てられたルートに訪問先を常に割り当てる必要があります。順序を保持できてもできなくても、有効な順序を設定する必要があります。訪問先を指定のルートに割り当てできない場合は、訪問先違反が発生します。
  • 3 (オーバーライド) - 解析処理において、解析機能は、訪問先に対するルートおよび順序の事前割り当てを保持しようとします。ただし、目的関数の全体の値を最小化するのに役立つ場合は、新規のルートまたは順序を訪問先に対して割り当てることができます。これがデフォルト値です。
  • 4 (最初にアンカー) - 解析の動作において、解析機能は、訪問先に対するルートおよび順序の事前割り当て (存在する場合) を無視します。これは、目的関数の全体の値を最小化するために、ルートを訪問先に割り当て、ルートの最初の訪問先にします。
  • 5 (最後にアンカー) - 解析の動作において、解析機能は、訪問先に対するルートおよび順序の事前割り当て (存在する場合) を無視します。これは、目的関数の全体の値を最小化するために、ルートを訪問先に割り当て、ルートの最後の訪問先にします。

このフィールドは、NULL 値を含むことができません。

CurbApproach

車両が訪問先に到着する方向および訪問先から出発する方向を指定します。このフィールド値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。

  • 0 (車両の両側) - 車両は訪問先に対してどちらの方向でも到着および出発できます。したがって、インシデントでの U ターンは許可されます。この設定は、車両が訪問先で方向転換することが可能かつ現実的である場合に選択できます。これは、道路の幅と交通量に基づいて決定されたり、訪問先に車両が進入して方向転換できる駐車場があるかどうかに応じて決定されたりします。
  • 1 (車両の右側) - 車両が訪問先に到着するとき、および訪問先から出発するときに、アプローチを車両の右側に制限します。U ターンは許可されません。これは、通常、バス停が右側にある状態で到着する必要があるバスなどの車両に使用されます。
  • 2 (車両の左側) - 車両が訪問先に到着するとき、および訪問先から出発するときに、アプローチを車両の左側に制限します。U ターンは許可されません。これは、通常、バス停が左側にある状態で到着する必要があるバスなどの車両に使用されます。
  • 3 (U ターンを許可しない) - 車両が訪問先に到着するときはどちらの側でも到着できますが、方向転換せずに出発する必要があります。

CurbApproach 属性は、米国の右側通行の標準と英国の左側通行の標準の両方に対応するように設計されています。まず、訪問先が車両の左側にある場合を考えます。これは、車両が移動するのが道路の左側であるか右側であるかに関係なく、常に左側にあります。右側通行か左側通行かに応じて異なるのは、訪問先に 2 つの方向のどちらから到着するか、つまり、車両の右側と左側のどちらで到着するかということです。たとえば、訪問先に到着するときに、車両と訪問先の間に交通レーンがない方がいい場合は、米国では 1 (車両の右側) を選択し、英国では 2 (車両の左側) を選択します。

RouteName

訪問先が割り当てられるルートの名前。

このフィールドを使用し、訪問先を特定のルートにあらかじめ割り当てておきます。このフィールドは NULL 値を含むことができます。NULL 値の場合、訪問先はどのルートにもあらかじめ割り当てられず、解析機能が訪問先にとって最良のルート割り当てを決定します。このフィールドを NULL に設定した場合は、Sequence フィールドも NULL に設定する必要があります。

解析の後、訪問先のルートが解析されると、RouteName フィールドには訪問先が割り当てられるルートの名前が入ります。

Sequence

このフィールドは、訪問先に割り当てられたルートでの訪問先の順序を示します。

このフィールドを使用して、ルート上での訪問先の相対的な順序を指定します。このフィールドは NULL 値を含むことができます。NULL 値は、訪問先をルート上のどこにでも配置できることを示します。NULL 値にする場合は、RouteName の値も NULL 値でなければなりません。

順序を示す入力値は、正の値であり、各ルートに対して一意です (リニューアル拠点立ち寄り状況、訪問先、および休憩の間で共有される)。ただし、1 から開始する必要も連続している必要もありません。

解析の後、[Sequence] フィールドには、割り当てられたルート上での訪問先の順序の値が入ります。ルートに対して出力される順序の値は、拠点立ち寄り状況、訪問先、および休憩の間で共有され、1 (開始拠点) から始まり、連続的な値となります。ルートは常に拠点から始まるので、ルート解析対象の訪問先に対して出力される最小限の順序の値は 2 となります。

Bearing

ポイントが移動している方向。単位は度で、北を基準に時計回りに測定されます。このフィールドは BearingTol フィールドと組み合わせて使用されます。

通常、方位データは、GPS 受信機を備えたモバイル デバイスから自動的に送信されます。歩行者や車両などの移動している入力場所を読み込んでいる場合は、方位データを含めてみてください。

このフィールドを使用すると、たとえば、車両が交差点や高架の近くにいる場合に、ロケーションが間違ったエッジに追加されるのを避けることができます。方位は、ツールがポイントを道路のどちら側に配置するかを決定する際にも役立ちます。

方位と方位許容値の詳細

BearingTol

方位許容値は、Bearing フィールドを使用して移動ポイントをエッジに配置するときに、許容される方位の範囲を作成します。Bearing フィールドの値が、エッジの方位許容値から生成される許容範囲内にある場合は、ポイントをその場所にネットワーク ロケーションとして配置できます。許容範囲から外れている場合は、次に近いエッジの最も近いポイントが評価されます。

単位は度で、デフォルト値は 30 です。値は 0 より大きく 180 未満でなければなりません。値が 30 の場合、Network Analyst がネットワーク ロケーションをエッジに追加しようとすると、方位値の許容範囲がエッジの両側 (左と右) に 15 度ずつ、どちらもエッジのデジタイズされた方向に生成されます。

方位と方位許容値の詳細

NavLatency

このフィールドは、BearingBearingTol の値が存在する場合にのみ、解析処理で使用されます。ただし、BearingBearingTol の値が存在する場合でも、NavLatency 値の入力は任意です。NavLatency は、移動中の車両からサーバーに GPS 情報が送信されてから、車両のナビゲーション デバイスが処理されたルートを受信するまでの予想経過時間を示します。

NavLatency の時間単位は、解析オブジェクトの timeUnits プロパティで指定された単位と同じです。

Feature Set
depots

配車ルートの拠点を 1 つ以上指定します。拠点とは、車両が就業日の初めに出発し、就業日の終わりに戻ってくる場所です。車両は、ルートが開始される拠点で荷積み (配達の場合) または荷降ろし (引き取りの場合) を行います。拠点は、場合によっては、リニューアル ロケーションとしての役割を果たすこともできます。これにより、車両は荷を降ろしたり再度積み込んだりして、配達と引き取りを引き続き行うことができます。拠点には、絶対的なタイム ウィンドウで指定される開始時刻と終了時刻があります。車両はこのタイム ウィンドウ外の時間に拠点に到着することは許されません。

拠点を指定する場合は、次の属性を使用して、各拠点のプロパティ (拠点の名前やサービス時間など) を設定できます。

ObjectID

システムで管理される ID フィールド。

Name

拠点の名前。ルートの StartDepotName フィールドと EndDepotName フィールドは、ここで指定した名前を参照します。ルート リニューアルを使用する場合は、このレコード セットもこれを参照します。

拠点の名前は大文字と小文字を区別しませんが、空白以外の一意の値にする必要があります。

Description

拠点の場所に関する説明的な情報。あらゆるテキスト情報を保持することができ、一意でなくてもかまいません。

たとえば、拠点が存在する領域や、拠点の住所および電話番号をメモしておきたい場合、このような情報は Name フィールドではなく、このフィールドに入力できます。

TimeWindowStart1

ネットワーク ロケーションの第 1 のタイム ウィンドウの開始時刻。このフィールドは NULL 値を含むことができます。NULL 値を指定した場合、開始時刻は設定されません。

タイム ウィンドウ フィールド (TimeWindowStart1TimeWindowEnd1TimeWindowStart2TimeWindowEnd2) は、日付フィールドに時刻のみの値または日時の値を含めることができますが、エポックからのミリ秒を表す整数は使用できません。タイム ウィンドウ フィールドのタイム ゾーンは、time_zone_usage_for_time_fields パラメーターを使用して指定されます。TimeWindowStart1 などの時間フィールドが時刻のみを示す値 (たとえば、午前 8:00) である場合、日付は解析に対して設定されたデフォルトの日付と見なされます。日時の値 (たとえば、7/11/2010 8:00 a.m.) を使用すると、複数日にわたるタイム ウィンドウを設定することができます。

解析が複数のタイム ゾーンにまたがる場合、各拠点のタイム ウィンドウ値はその拠点が属しているタイム ゾーンの日時を表します。

TimeWindowEnd1

ネットワーク ロケーションの第 1 のタイム ウィンドウの終了時刻。このフィールドは NULL 値を含むことができます。NULL 値を指定した場合、終了時刻は設定されません。

TimeWindowStart2

ネットワーク ロケーションの第 2 のタイム ウィンドウの開始時刻。このフィールドは NULL 値を含むことができます。NULL 値を指定した場合、第 2 のタイム ウィンドウは設定されません。

TimeWindowStart1 および TimeWindowEnd1 フィールドで第 1 のタイム ウィンドウを NULL に指定した場合は、第 2 のタイム ウィンドウも NULL にする必要があります。

両方のタイム ウィンドウに NULL 以外の値を指定する場合、これらのタイム ウィンドウを重なるように指定することはできません。また、第 2 のタイム ウィンドウは第 1 のタイム ウィンドウよりも後になるように設定する必要があります。

TimeWindowEnd2

ネットワーク ロケーションの第 2 のタイム ウィンドウの終了時刻。このフィールドは、NULL 値を含むことができます。

TimeWindowStart2TimeWindowEnd2 の両方が NULL の場合、第 2 のタイム ウィンドウは設定されません。

TimeWindowStart2 が NULL 以外で TimeWindowEnd2 が NULL の場合、第 2 のタイム ウィンドウの開始時間は設定されますが、終了時間は設定されません。これは有効な設定です。

CurbApproach

  • 0 (車両の両側) - 車両は拠点に対してどちらの方向でも到着および出発できます。したがって、インシデントでの U ターンは許可されます。この設定は、車両が拠点で方向転換することが可能かつ現実的である場合に選択できます。これは、道路の幅と交通量に基づいて決定されたり、拠点に車両が進入して方向転換できる駐車場があるかどうかに応じて決定されたりします。
  • 1 (車両の右側) - 車両が拠点に到着するとき、および拠点から出発するときに、アプローチを車両の右側に制限します。U ターンは許可されません。これは、通常、バス停が右側にある状態で到着する必要があるバスなどの車両に使用されます。
  • 2 (車両の左側) - 車両が拠点に到着するとき、および拠点から出発するときに、アプローチを車両の左側に制限します。U ターンは許可されません。これは、通常、バス停が左側にある状態で到着する必要があるバスなどの車両に使用されます。
  • 3 (U ターンを許可しない) - 車両が拠点に到着するときはどちらの側でも到着できますが、方向転換せずに出発する必要があります。

CurbApproach 属性は、米国の右側通行の標準と英国の左側通行の標準の両方に対応するように設計されています。まず、拠点が車両の左側にあるとします。これは、車両が移動するのが道路の左側であるか右側であるかに関係なく、常に左側にあります。右側通行か左側通行かに応じて異なるのは、2 つの方向のうちどちらから拠点に到着するかです。つまり、結局のところ車両の右側または左側になります。たとえば、拠点に到着するときに、車両と拠点の間に交通レーンがない方がいい場合は、米国では 1 (車両の右側) を選択し、英国では 2 (車両の左側) を選択します。

Bearing

ポイントが移動している方向。単位は度で、北を基準に時計回りに測定されます。このフィールドは BearingTol フィールドと組み合わせて使用されます。

通常、方位データは、GPS 受信機を備えたモバイル デバイスから自動的に送信されます。歩行者や車両などの移動している入力場所を読み込んでいる場合は、方位データを含めてみてください。

このフィールドを使用すると、たとえば、車両が交差点や高架の近くにいる場合に、ロケーションが間違ったエッジに追加されるのを避けることができます。方位は、ツールがポイントを道路のどちら側に配置するかを決定する際にも役立ちます。

方位と方位許容値の詳細

BearingTol

方位許容値は、Bearing フィールドを使用して移動ポイントをエッジに配置するときに、許容される方位の範囲を作成します。Bearing フィールドの値が、エッジの方位許容値から生成される許容範囲内にある場合は、ポイントをその場所にネットワーク ロケーションとして配置できます。許容範囲から外れている場合は、次に近いエッジの最も近いポイントが評価されます。

単位は度で、デフォルト値は 30 です。値は 0 より大きく 180 未満でなければなりません。値が 30 の場合、Network Analyst がネットワーク ロケーションをエッジに追加しようとすると、方位値の許容範囲がエッジの両側 (左と右) に 15 度ずつ、どちらもエッジのデジタイズされた方向に生成されます。

方位と方位許容値の詳細

NavLatency

このフィールドは、BearingBearingTol の値が存在する場合にのみ、解析処理で使用されます。ただし、BearingBearingTol の値が存在する場合でも、NavLatency 値の入力は任意です。NavLatency は、移動中の車両からサーバーに GPS 情報が送信されてから、車両のナビゲーション デバイスが処理されたルートを受信するまでの予想経過時間を示します。

NavLatency の時間単位は、解析オブジェクトの timeUnits プロパティで指定された単位と同じです。

Feature Set
routes

車両や運転手の特性を指定する 1 つ以上のルートを指定します。ルートには、開始拠点と終了拠点のサービス時間、固定または可変の開始時間、時間ベースの運用コスト、距離ベースの運用コスト、複数の容量、運転手の就業日に関するさまざまな制約などを含めることができます。

ルートには次の属性を指定できます。

Name

ルートの名前。名前は一意でなければなりません。

フィールドが NULL 値の場合は、解析時に一意の名前が生成されます。このため、ほとんどの場合、値の入力は必須ではありません。ただし、ルートに事前に割り当てられている休憩、ルート リニューアル、ルート ゾーン、または訪問先が解析に含まれる場合、名前の入力は必須です。これは、このような場合にルート名が外部キーとして使用されるためです。ルート名の大文字と小文字は区別されません。

StartDepotName

ルートの開始拠点の名前。このフィールドは、拠点の Name フィールドに対する外部キーです。

StartDepotName の値が NULL の場合、ルートは指定されている最初の訪問先から始まります。開始拠点を省略するのは、車両の出発点が不明か、解析に関係ない場合に有効です。ただし、StartDepotName が NULL の場合は、EndDepotName を NULL にすることはできません。

訪問先/拠点が複数のタイム ゾーンにある場合、仮想の開始拠点は使用できません。

ルートが配達を行っていて、StartDepotName が NULL の場合、荷物はルートの開始前に仮想拠点で車両に積み込まれるものと想定されます。リニューアル拠点を持たないルートの場合、その配達訪問先 ([訪問先] の DeliveryQuantities がゼロ以外の値) の荷物は、開始拠点または仮想拠点で積み込まれます。リニューアル拠点を持つルートの場合、最初のリニューアル拠点の手前にある配達訪問先の荷物のみが開始拠点または仮想拠点で積み込まれます。

EndDepotName

ルートの終了拠点の名前。このフィールドは、拠点の Name フィールドに対する外部キーです。

StartDepotServiceTime

開始拠点でのサービス時間。このフィールドを使用して、車両に荷物を積み込むのに要する時間をモデリングします。このフィールドは NULL 値を含むことができます。NULL 値はサービス時間がゼロであることを示します。

このフィールドの値の単位は、[Time Field Units] パラメーターで指定します。

開始拠点と終了拠点でのサービス時間は固定値で (StartDepotServiceTime および EndDepotServiceTime フィールドの値で指定)、ルートの実際の積み込み時間は考慮されません。たとえば、開始拠点で車両への積み込みにかかる時間は、訪問先のサイズによって異なります。拠点のサービス時間に満載の積荷または平均的な積荷に応じた値を割り当てるか、独自に見積もりを行います。

EndDepotServiceTime

終了拠点でのサービス時間。このフィールドを使用して、車両から荷物を降ろすのに要する時間をモデリングします。このフィールドは NULL 値を含むことができます。NULL 値はサービス時間がゼロであることを示します。

このフィールドの値の単位は、[Time Field Units] パラメーターで指定します。

開始拠点と終了拠点でのサービス時間は固定値で (StartDepotServiceTime および EndDepotServiceTime フィールドの値で指定)、ルートの実際の積み込み時間は考慮されません。たとえば、開始拠点で車両への積み込みにかかる時間は、訪問先のサイズによって異なります。拠点のサービス時間に満載の積荷または平均的な積荷に応じた値を割り当てるか、独自に見積もりを行います。

EarliestStartTime

ルートにおいて許容される最も早い開始時刻。解析では、このフィールドを開始拠点のタイム ウィンドウと組み合わせて使用し、ルートの実現可能な開始時刻を決定します。

このフィールドは NULL 値を含むことができません。時刻のみを示す値のデフォルト値は午前 8 時となります。デフォルト値は、解析に対して設定されたデフォルトの日付の午前 8 時と見なされます。

解析が複数のタイム ゾーンにまたがる場合、EarliestStartTime フィールドのタイム ゾーンは開始拠点のタイム ゾーンと同じになります。

LatestStartTime

ルートにおいて許容される最も遅い開始時刻。

このフィールドは NULL 値を含むことができません。時刻のみを示す値のデフォルト値は午前 10 時となります。デフォルト値は、解析に対して設定されたデフォルトの日付の午前 10 時と見なされます。

解析が複数のタイム ゾーンにまたがる場合、LatestStartTime フィールドのタイム ゾーンは開始拠点のタイム ゾーンと同じになります。

ArriveDepartDelay

このフィールドには、車両を通常の移動速度まで加速し、停止するまで減速し、ネットワークに出入りする (たとえば、駐車場に出入りする) のに必要な移動時間が格納されます。ArriveDepartDelay 値を含めることにより、VRP 解析で、物理的に一致する訪問先にサービスを提供するために多くのルートを送り出すことがなくなります。

このプロパティのコストは、一致しない訪問先、拠点、およびルート リニューアルへの訪問の間に発生します。たとえば、ルートが拠点から出発し、最初の訪問先を訪問したときに、到着と出発の遅延の合計が移動時間に追加されます。最初の訪問先から 2 番目の訪問先まで移動するときにも同じことが起こります。2 番目と 3 番目の訪問先が一致している場合、車両は移動する必要がないため、この間については ArriveDepartDelay 値は追加されません。ルートがルート リニューアルに移動する場合、この値が再び移動時間に追加されます。

休憩の場合、車両は減速して停止し、後で加速する必要がありますが、VRP 解析では ArriveDepartDelay 値を加算できません。これは、ルートが訪問先を離れ、休憩のために停止し、さらに次の訪問先に向かった場合に、到着と出発の遅延は 2 度ではなく、1 度しか追加されないことを意味します。

たとえば、1 つの高層ビル内に 5 つの一致する訪問先があり、それらが 3 つの異なるルートでサービスを提供されているとします。この場合は、到着と出発の遅延が 3 回発生します。つまり、3 人の運転手がそれぞれ駐車場所を見つけ、同じ建物に入ることが必要になります。しかし、これらの訪問先に 1 つのルートでサービスを提供できれば、駐車して建物に入る運転手は 1 人だけになり、到着と出発の遅延の発生も 1 回だけになります。VRP 解析ではコストの最小化が図られるため、到着と出発の遅延を抑えるために、単一ルートのオプションが特定されます (特別指定、タイム ウィンドウ、積載制限などの制約によって、複数のルートが必要になる場合があります)。

このフィールド値の単位は、[time_units] パラメーターで指定します。

Capacities

車両の最大容量。重量、体積、数量など、任意の計測単位で容量を指定できます。重量と体積など、複数の計測方法でサイズを指定することもできます。

単位を指定しないで容量を入力します。たとえば、車両の最大積載量が 40,000 ポンドである場合は、「40000」と入力します。値がポンド単位であることを覚えておく必要があります。

複数の計測方法を記録する場合、数値をスペースで区切ります。たとえば、配達について重量と体積を記録する場合、重量が 2,000 ポンド、体積が 100 立法フィートであれば、「2000 100」と入力します。この場合も、単位がポンドと立方フィートであることを覚えておく必要があります。また、入力した値と対応する単位の順序も覚えておく必要があります。

単位と単位の順序を覚えておくことは、次の 2 つの理由から重要です。1 つ目は、後で情報を再解釈できるようにするため、2 つ目は、訪問先の DeliveryQuantities フィールドと PickupQuantities フィールドの値を正しく入力できるようにするためです。ルートが過積載にならないようにするために、配車ルート (VRP) 解析では、CapacitiesDeliveryQuantities、および PickupQuantities が同時に参照されるということに注意する必要があります。単位をフィールドに入力することはできず、VRP ツールは単位変換を実行できません。値が正しく解釈されるようにするために、同じ単位および同じ単位の順序を使用して 3 つのフィールドに値を入力する必要があります。3 つのフィールドのいずれかの単位または順序が異なると、正しい結果が得られません。この場合、警告メッセージは表示されません。事前に標準の単位と単位の順序を設定しておくこと、また、これら 3 つのフィールドの値を入力する度に単位と単位の順序を参照することをお勧めします。

空の文字列または NULL 値は、すべての数量がゼロであることを示します。積載制限を負の値とすることはできません。

訪問先の DeliveryQuantities フィールドまたは PickupQuantities フィールドに対して Capacities フィールド内の値の数が不足している場合、残りの値はゼロと見なされます。

VRP 解析では、簡単なブール テストを実行するだけで、積載制限を超過したかを確認できます。ルートの積載制限値が運送する合計数量以上である場合、車両に積荷が収まると見なされます。ただし、積荷および車両の実際の形状によっては、この判断は正しくない可能性があります。たとえば、VRP 解析では、1,000 立方フィートの球体を、幅が 8 フィートで容積が 1,000 立方フィートのトラックに収容することができます。しかし、実際には、球体の直径は 12.6 フィートであり、8 フィート幅のトラックに球体を収容することはできません。

FixedCost

ルートがソリューションで使用される (つまり、訪問先がソリューションに割り当てられている) 場合に限り適用される金銭上の固定コスト。このフィールドは NULL 値を含むことができます。NULL 値は固定コストがゼロであることを示します。このコストは、ルートの合計運用コストの一部です。

CostPerUnitTime

合計ルート所要時間 (移動時間に加えて、訪問先、拠点、休憩でのサービス時間および待機時間も含む) に対して作業の単位時間ごとに適用される金銭上のコスト。このフィールドは NULL 値を含むことができず、デフォルト値は 1.0 となります。

このフィールド値の単位は、[time_units] パラメーターで指定します。

CostPerUnitDistance

ルート長 (合計移動距離) に対して (移動距離の単位ごとに) 適用される金銭上のコスト。このフィールドは NULL 値を含むことができます。NULL 値はコストがゼロであることを示します。

このフィールド値の単位は、[distance_units] パラメーターで指定します。

OvertimeStartTime

規定労働時間の長さで、この時間を超過すると規定外労働時間の計算が開始されます。このフィールドは NULL 値を含むことができます。NULL 値は規定外労働時間が適用されないことを示します。

このフィールド値の単位は、[time_units] パラメーターで指定します。

たとえば、合計ルート所要時間が 8 時間を上回るときに、運転手に規定外労働賃金を支払う必要がある場合は、OvertimeStartTime に「480」 (8 時間× 60 分) を指定し、時間単位を [分] に設定します。

CostPerUnitOvertime

規定外労働時間の単位時間ごとに適用される金銭上のコスト。このフィールドは NULL 値を含むことができます。NULL 値は CostPerUnitOvertime の値が CostPerUnitTime の値と同じであることを示します。

MaxOrderCount

ルートに組み込むことができる訪問先の最大数。このフィールドは NULL 値を含むことができません。デフォルト値は 30 となります。

MaxTotalTime

ルートの最大許容所要時間。ルートの所要時間には、移動時間に加えて、訪問先、拠点、休憩でのサービス時間および待ち時間も含まれます。このフィールドは NULL 値を含むことができます。NULL 値はルートの所要時間に制約がないことを示します。

このフィールド値の単位は、[time_units] パラメーターで指定します。

MaxTotalTravelTime

ルートの最大許容移動時間。移動時間に含まれるのはネットワークの走行に費やされた時間だけで、サービス時間または待ち時間は含まれません。

このフィールドは NULL 値を含むことができます。NULL 値は最大許容移動時間に制約がないことを示します。このフィールドは [MaxTotalTime] フィールドより小さくする必要があります。

このフィールド値の単位は、[time_units] パラメーターで指定します。

MaxTotalDistance

ルートへの最大許容移動距離。

このフィールド値の単位は、[distance_units] パラメーターで指定します。

このフィールドは NULL 値を含むことができます。NULL 値は最大許容移動距離に制約がないことを示します。

SpecialtyNames

スペース区切りの文字列であり、訪問先が必要とする特別指定の名前が含まれます。NULL 値は、訪問先が特別指定を必要としていないことを示しています。

訪問先クラスおよびルート クラスに表示されるどの特別指定の綴りも、配車ルート (VRP) 解析でそれらを一緒にリンクできるようにするために、正確に一致している必要があります。

特別指定の説明とその機能を示す例として、芝の手入れと庭木の剪定を行う造園会社を考えます。この会社の一部の訪問先では、背の高い木を剪定するために高所作業車が必要です。これらの訪問先の [SpecialtyNames] フィールドに「BucketTruck」と入力して、特別指定があることを示します。他の訪問先の [SpecialtyNames] は NULL のままにします。同様に、油圧ブームを装備したトラックで移動するルートの [SpecialtyNames] フィールドにも「BucketTruck」と入力します。他のルートのフィールドは NULL のままにします。VRP 解析を実行すると、特別指定のない訪問先は任意のルートに割り当てられますが、高所作業車が必要な訪問先は、特別指定が設定されたルートにだけ割り当てられます。

AssignmentRule

訪問先をルートに割り当てるためのルールを指定します。このフィールド値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。

このフィールドは、NULL 値を含むことができません。

  • 1 (含む) - ルートは解析処理に含まれます。これがデフォルト値です。
  • 2 (含まない) - ルートは解析処理に含まれません。

Record Set
breaks

特定の配車ルート解析のルートについての休憩時間や休憩を指定します。休憩は、厳密に 1 つのルートに関連付けられ、訪問先にサービスを提供した後、訪問先へのルート途中、または訪問先にサービスを提供する前に取ることができます。休憩には開始時間と継続時間があり、休憩中の賃金が運転手に支払われる場合もあれば、そうでない場合もあります。休憩の開始の設定には、タイム ウィンドウ、最大移動時間、または最大労働時間という 3 つのオプションがあります。

時間が UTC でない限り、訪問先または拠点が複数のタイム ゾーンにある場合、タイムウィンドウの休憩は使用できません。

休憩を指定する場合は、次の属性を使用して、各休憩のプロパティ (休憩の名前やサービス時間など) を設定できます。

ObjectID

システムで管理される ID フィールド。

RouteName

休憩を追加するルートの名前 休憩は 1 つのルートだけに割り当てられますが、多くの休憩を同じルートに割り当てることができます。

このフィールドは、ルートの Name フィールドに対する外部キーであり、NULL 値を持つことができません。

Precedence

優先順位値は、特定のルートの休憩を順序付けします。優先順位値が 1 の休憩は、2 の休憩よりも前に取られ、以降の休憩も優先順位値の順番に取られます。

タイム ウィンドウか、最大移動時間か、最大労働時間かにかかわりなく、すべての休暇が優先順位値を持たなければなりません。

ServiceTime

休憩時間の長さ。このフィールドは、NULL 値を含むことができません。デフォルト値は 60 です。

このフィールド値の単位は、[time_units] パラメーターで指定します。

TimeWindowStart

休憩のタイム ウィンドウの開始時間。開始時間と終了時間の両方を指定する必要があります。

このフィールドが値を持つ場合、MaxTravelTimeBetweenBreaksMaxCumulWorkTime フィールドの値は NULL でなければなりません。さらに、解析の他のすべての休憩についても、MaxTravelTimeBetweenBreaksMaxCumulWorkTime の値は NULL でなければなりません。

ルートにタイム ウィンドウが重なった複数の休憩があると、解析時にエラーになります。

休憩のタイム ウィンドウ フィールドは、日付フィールドに時刻のみの値または日時の値を含めることができますが、エポックからのミリ秒を表す整数は使用できません。タイム ウィンドウ フィールドのタイム ゾーンは、time_zone_usage_for_time_fields パラメーターを使用して指定されます。TimeWindowStart などの時間フィールドが時刻のみを示す値 (たとえば、午後 12:00) である場合、日付は、[デフォルトの日付] パラメーター (Python では default_date) に指定された日付と見なされます。日時を示す値 (たとえば、2012 年 11 月 7 日、午後 12:00) を使用すると、複数日にわたるタイム ウィンドウを指定することができます。これは、午前 0 時前後のどこかで休憩を取る必要がある場合に有用です。

TimeWindowEnd

休憩のタイム ウィンドウの終了時間。開始時間と終了時間の両方を指定する必要があります。

このフィールドが値を持つ場合、MaxTravelTimeBetweenBreaksMaxCumulWorkTime は NULL でなければなりません。また、解析の他のすべての休憩についても、MaxTravelTimeBetweenBreaksMaxCumulWorkTime の値は NULL でなければなりません。

MaxViolationTime

このフィールドでは、タイム ウィンドウによる休憩について最大許容超過時間を指定します。到着時刻がこの時間の範囲を超えている場合、タイム ウィンドウが超過されたと見なされます。

値がゼロの場合、タイム ウィンドウのどのような超過も許されません。つまり、タイム ウィンドウは条件が厳しい (ハード) ということです。ゼロ以外の値は最大遅延時間の指定を意味します。たとえば、タイム ウィンドウの終了時刻から最大で 30 分遅れて休憩を開始することができますが、この遅延時間には、[タイム ウィンドウ違反の重要度] パラメーターに従ってペナルティが適用されます。

このプロパティには NULL を指定できます。TimeWindowStartTimeWindowEnd 値が NULL 値の場合、許容超過時間は無制限です。MaxTravelTimeBetweenBreaks または MaxCumulWorkTime に値が設定されている場合、MaxViolationTime は Null でなければなりません。

このフィールド値の単位は、[time_units] パラメーターで指定します。

MaxTravelTimeBetweenBreaks

休憩を取る前に累積できる移動時間の最大値。移動時間は前の休憩の終了時か、休憩がまだ取られていないときはルートの開始時から累積されます。

これがルートの最後の休憩なら、MaxTravelTimeBetweenBreaks は最後の休憩から終了拠点までに累積可能な最大移動時間を示すことにもなります。

このフィールドの目的は、休憩が必要になるまでに運転できる時間を制限することです。たとえば、解析の時間単位が分に設定され、MaxTravelTimeBetweenBreaks の値が 120 の場合、運転手は 2 時間運転した後に休憩を取ります。さらに 2 時間運転した後に 2 回目の休憩を割り当てるには、2 回目の休憩の MaxTravelTimeBetweenBreaks プロパティを 120 にします。

このフィールドに値を設定した場合、解析を成功させるには、TimeWindowStartTimeWindowEndMaxViolationTime、および MaxCumulWorkTime が Null でなければなりません。

このフィールド値の単位は、[time_units] パラメーターで指定します。

MaxCumulWorkTime

休憩を取る前に累積できる作業時間の最大値。作業時間は常にルートの開始時から累積されます。

作業時間は、移動時間と、訪問先、拠点、休憩でのサービス時間の合計です。ただし、これには待ち時間は含まれません。待ち時間とは、ルート (または運転手) が訪問先または拠点でタイム ウィンドウの開始まで待機した時間のことです。

このフィールドは、休憩が必要になるまでに作業できる時間を制限します。たとえば、解析の時間単位が分に設定され、MaxCumulWorkTime の値が 120、ServiceTime の値が 15 になっている場合、運転手は 2 時間作業した後に 15 分間の休憩を取ります。

引き続き最後の例で、さらに 3 時間作業した後に 2 回目の休憩が必要とします。この休憩を指定するには、2 回目の休憩の MaxCumulWorkTime 値に 315 (5 時間と 15 分) を入力します。この数には、前の休憩の MaxCumulWorkTimeServiceTime の値に加えて、2 回目の休憩が許可される前の 3 時間の追加作業時間が含まれます。最大作業時間の休憩を誤って取ることを避けるために、ルートの開始から作業時間を累積していること、および作業時間にはそれまでに訪問した拠点、訪問先、休憩でのサービス時間が含まれることを再確認してください。

このフィールドに値を設定した場合、解析を成功させるには、TimeWindowStartTimeWindowEndMaxViolationTime、および MaxTravelTimeBetweenBreaks が Null でなければなりません。

このフィールド値の単位は、[time_units] パラメーターで指定します。

IsPaid

休憩に賃金を支払うかをブール値で指定します。このフィールド値に 1 を指定すると、休憩で費やされた時間はルートのコスト計算および規定外労働時間の判定で考慮されます。そうでない場合は、値 0 を指定します。デフォルト値は 1 です。

Sequence

ルートでの休憩の順序を示します。このフィールドは NULL 値を含むことができます。これにより、解析が休憩の順序を割り当てることができるようになります。順序の値は正の値で、かつ各ルートに対して一意として指定します (リニューアル拠点立ち寄り状況、訪問先、および休憩の間で共有される)。ただし、1 から開始する必要も連続している必要もありません。

Record Set
time_units

解析における、すべての時間ベースのフィールド値についての時間単位。配車ルート (VRP) 解析における多くのフィーチャとレコードには、時間値を格納するためのフィールド (訪問先の ServiceTime やルートの CostPerUnitTime など) があります。必要なデータ入力を最小限にするために、それらのフィールド値には単位が含まれていません。ただし、すべての距離ベースのフィールド値は同じ単位で入力する必要があります。このパラメーターは、それらの値の単位を指定するために使用されます。

なお、時間ベースの出力フィールドには、このパラメーターで指定した単位と同じ単位が使用されます。

String
distance_units

解析における、すべての距離ベースのフィールド値についての距離単位。配車ルート (VRP) 解析における多くのフィーチャとレコードには、距離値を格納するためのフィールド (ルートの MaxTotalDistanceCostPerUnitDistance など) があります。必要なデータ入力を最小限にするために、それらのフィールド値には単位が含まれていません。ただし、すべての距離ベースのフィールド値は同じ単位で入力する必要があります。このパラメーターは、それらの値の単位を指定するために使用されます。

なお、距離ベースの出力フィールドには、このパラメーターで指定した単位と同じ単位が使用されます。

String
analysis_region
(オプション)

解析を実行する地域。このパラメーターに値を指定しない場合、入力ポイントの位置に基づいて地域名が自動的に計算されます。地域の名前は、地域名の自動検出が入力に対して正確ではない場合にのみ設定する必要があります。

地域を指定するには、次のいずれかの値を使用します。

  • Europe
  • Japan
  • Korea
  • MiddleEastAndAfrica
  • NorthAmerica
  • SouthAmerica
  • SouthAsia
  • Thailand

レガシー:

次の地域名は現在はサポートされておらず、今後のリリースで削除される予定です。廃止された地域名のいずれかを指定すると、サポートされている地域名がツールによって自動的に割り当てられます。

  • 「Greece」は「Europe」にリダイレクトされます
  • 「India」は「SouthAsia」にリダイレクトされます
  • 「Oceania」は「SouthAsia」にリダイレクトされます
  • 「SouthEastAsia」は「SouthAsia」にリダイレクトされます
  • 「Taiwan」は「SouthAsia」にリダイレクトされます

String
default_date
(オプション)

日付を含まずに時刻を指定された時間フィールドの値に使用される、デフォルトの日付。これらの時間フィールドは、[orders] や [breaks] パラメーターの [ServiceTime] 属性など、さまざまな入力パラメーターで使用されます。

Date
uturn_policy
(オプション)

到達圏を生成する際に、ジャンクションでの U ターンを規制するか、許可するかを指定します。パラメーターの値を理解するために、ここでは次のような用語を使用します。ジャンクションは道路セグメントが終了するポイントを表し、一般的には 1 つ以上の別のセグメントに接続されます。疑似ジャンクションは 2 つの道路が相互に接続されるポイントです。交差点は 3 つ以上の道路が接続する場所を表し、行き止まりは道路セグメントが他の道路に接続せずに終了している場所を表します。

  • ALLOW_UTURNSすべての場所で U ターンを許可します。U ターンを許可するということは、車両がどのジャンクションでも方向転換可能で、同じ道路を引き返すことができるということを意味します。これがデフォルト値です。
  • NO_UTURNSすべてのジャンクション、疑似ジャンクション、交差点、および行き止まりで U ターンを禁止します。ただし、このオプションを選択した場合でも、U ターンが許可される場合があることに注意してください。インシデントおよび施設での U ターンを禁止するには、[CurbApproach] フィールド値を設定して U ターンを禁止します。
  • ALLOW_DEAD_ENDS_ONLY接続されている道路フィーチャが 1 つだけのジャンクション (行き止まり) を除いて、すべてのジャンクションで U ターンを禁止します。
  • ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLY隣接する 2 つの道路が接続された疑似ジャンクションでは U ターンを禁止しますが、交差点と行き止まりでは U ターンを許可します。1 つの道路が意図せず 2 つの道路フィーチャとしてデジタイズされた場合に、道路の途中で方向転換が発生するのを防ぎます。

このパラメーターに指定した値は、[移動モード][カスタム] (デフォルト値) に設定しなければ無視されます。

String
time_window_factor
(オプション)

タイム ウィンドウの重要度を指定します。

  • High (高) - 定刻でのストップ到着の重要度を高めに設定し、運転時間の最短化の重要度を低めに設定します。たとえば、時間に制約のある配達や顧客サービスを重視する組織である場合に、高を選択します。
  • Medium (中) - 走行時間の最小化とタイム ウィンドウ内での到着との間で、重要度のバランスを保ちます。これがデフォルト値です。
  • Low (低) - 運転時間の最短化の重要度を高めに設定し、定刻でのストップ到着の重要度を低めに設定します。未処理のサービス依頼が増えている場合は、この設定を使用すると便利です。車両の到着が遅れて顧客に迷惑をかけることになっても、1 日にサービスを提供する訪問先の数を増やして手持ちの注文をさばくために、[Low] を選択することができます。

String
spatially_cluster_routes
(オプション)

ルートが空間的にクラスター化されるかどうかを指定します。

  • CLUSTER (True) - 自動的にすべてのルートについて動的シード ポイントが作成され、個々のルートに割り当てられた訪問先が空間的に集約されます。訪問先をクラスタリングすると、ルートを含む領域がより小さく保たれ、異なるルート ラインの交点数が減少する傾向がありますが、同時に、移動時間全体が増加する傾向もあります。
  • NO_CLUSTER (False) - 動的シード ポイントは作成されません。ルート ゾーンを指定した場合は、このオプションを選択します。

Boolean
route_zones
(オプション)

指定されたルートの担当区域を描画します。ルート ゾーンはポリゴン フィーチャです。ルートゾーンを使用して、特定の領域内にある訪問先または領域の近くにある訪問先にのみサービスを提供するようにルートを制限します。どのようなときにルート ゾーンが役に立つかを以下の例で示します。

  • 従業員または車両の一部が特定の地域で作業を行うために必要な許可証を持っていません。この場合は、要件を満たす地域の訪問先のみを訪れるようにハード ルート ゾーンを作成することができます。
  • ある車両が頻繁に故障するので、対応時間を可能な限り短くするために、その車両の担当訪問先を修理工場の近くにのみ限定したいと考えます。車両を近隣での運用にとどめるために、ソフト ルート ゾーンまたはハード ルート ゾーンを作成できます。

ルート ゾーンを指定する場合は、次の属性を使用して、各ルート ゾーンのプロパティ (ルート ゾーンに関連するルートなど) を設定する必要があります。

ObjectID

システムで管理される ID フィールド。

RouteName

このゾーンが適用されるルートの名前。ルート ゾーンは、関連付けられたルートを最大で 1 つ持っています。このフィールドは、NULL 値を含むことができません。ルートの Name フィールドに対する外部キーとなります。

IsHardZone

ハード ルート ゾーンかソフト ルート ゾーンかをブール値で示します。[True] 値はルート ゾーンがハード ルート ゾーンであることを示します。つまり、ルート ゾーン ポリゴンの外にある訪問先をルートに割り当てることはできません。デフォルト値は 1 (True) です。[False] 値 (0) を指定した場合、ルート ゾーン ポリゴンの外にある訪問先をルートに割り当てることはできますが、訪問先へのサービス提供のコストはルート ゾーンからのユークリッド距離に基づく関数によって重み付けされます。基本的に、ソフト ゾーンから訪問先までの直線距離が長くなるに従い、訪問先をルートに割り当てる機会が低くなることを意味しています。

Feature Set
route_renewals
(オプション)

配達するか引き取る積荷の、再積み込みまたは荷降ろしを行うためにルートが訪問できる、中間拠点を指定します。特に、ルート リニューアルは、ルートを拠点にリンクします。このリレーションシップは、関連付けられた拠点でルートがリニューアル (途上での再積み込みまたは荷降ろし) できることを示します。

ルート リニューアルを使用してモデリング可能なシナリオとして、「開始拠点で配達する荷物を車両に満載し、訪問先に供給し、拠点に戻って配達用の荷物を再び積み込み、訪問先への供給を継続する」というものがあります。たとえば、プロパンガスの配達の場合は、車両はタンクがほとんどまたは完全に空になるまで複数回配達を行い、燃料補給ポイントに立ち寄り、さらに配達を継続することができます。

考慮するべきルールとオプションをいくつか示します。

  • 再積み込み/荷降ろしのポイントである、リニューアル ロケーションは、開始拠点または終了拠点とは異なる可能性があります。
  • 各ルートは、あらかじめ決定されたリニューアル ロケーションを 1 つまたは複数持つことができます。
  • リニューアル ロケーションは、1 つのルートで複数回使用することができます。
  • 1 つのルートにおいて使用できるリニューアル ロケーションがいくつか存在する場合は、一番近い有効なリニューアル ロケーションが解析によって識別されます。

ルート リニューアルを指定する際は、次の属性を使用してそれぞれのプロパティ (ルート リニューアルを行える拠点の名前など) を設定する必要があります。

ObjectID

システムで管理される ID フィールド。

DepotName

このリニューアルが行われる拠点の名前。このフィールドは、NULL 値を含むことができません。拠点の Name フィールドに対する外部キーとなります。

RouteName

このリニューアルが適用されるルートの名前。このフィールドは、NULL 値を含むことができません。ルートの Name フィールドに対する外部キーとなります。

ServiceTime

リニューアルのサービス時間。このフィールドは NULL 値を含むことができます。NULL 値はサービス時間がゼロであることを示します。

このフィールド値の単位は、[time_units] パラメーターで指定します。

リニューアル拠点で車両に荷積みするのにかかる時間は、車両のサイズと、車両にどれくらい荷物が積まれているかに左右される場合があります。ただし、ルート リニューアルのサービス時間は固定値であり、実際の積荷を考慮に入れません。したがって、リニューアル サービス時間には、満載の積荷の場合のサービス時間、平均的な積荷の場合の時間、または別の時間評価による値を指定してください。

Record Set
order_pairs
(オプション)

同じルートで引き取りと配達のサービスを提供できるように、引き取りと配達の訪問先をペアにします。訪問先のペアを指定すると、解析は訪問先の片方だけをルートに割り当てられなくなります。訪問先の両方を同じルートに割り当てるか、どちらも割り当てないようにします。

訪問先に対する引き取りと配達をペアにすることが必要な場合があります。たとえば、宅配会社が、ルートで訪問先から優先度の高い荷物を引き取り、拠点や選別ステーションに戻ることなくそれを別の訪問先に配達し、さらに配達時間を最小化する必要がある場合などです。これらの関連する訪問先を、訪問先のペアを使用して適切に順序付けし、同じルートに割り当てることができます。荷物を車両に載せておける時間の制限を割り当てることもできます。たとえば荷物が、病院から試験所まで 2 時間以内に輸送する必要のある血液サンプルの場合です。

場合によっては 2 つの訪問先ペアを必要とすることがあります。たとえば、高齢者を自宅から、かかりつけの病院まで連れて行き、その後、家につれて戻りたい場合があるとします。自宅から病院までの乗車は、1 つの訪問先ペアであり、病院への到着時刻が要求されます。一方、病院から自宅に帰る乗車はもう 1 つの訪問先ペアであり、病院に迎えに行く時刻が要求されます。

訪問先ペアを指定する際は、次の属性を使用して各ペアのプロパティ (2 つの訪問先の名前など) を設定する必要があります。

ObjectID

システムで管理される ID フィールド。

FirstOrderName

ペアの第 1 の訪問先の名前。このフィールドは、訪問先の Name フィールドに対する外部キーです。

SecondOrderName

ペアの第 2 の訪問先の名前。このフィールドは、訪問先の Name フィールドに対する外部キーです。

ペアの第 1 の訪問先は引き取り訪問先でなければなりません。つまり、その DeliveryQuantities フィールドは Null となります。ペアの第 2 の訪問先は配達訪問先でなければなりません。つまり、その PickupQuantities フィールドは Null となります。第 1 の訪問先で引き取られる数量は、第 2 の訪問先に配達される数量と対応する必要があります。特殊な場合として、積荷制限が使用されていないシナリオについては、両方の訪問先の数量がゼロになることがあります。

訪問先の数量は拠点で荷積みまたは荷降ろしされません。

MaxTransitTime

ペアの最大移動時間です。移動時間とは、第 1 の訪問先の出発時刻から第 2 の訪問先の到着時刻までの時間の長さです。この制約により、2 つの訪問先の間で車両に積まれている時間 (乗車時間) が制限されます。人または生鮮食料品を車両で輸送する場合、その乗車時間は、荷物または非生鮮食料品を車両で輸送する場合より短くなるのが普通です。このフィールドは NULL 値を含むことができます。NULL 値は乗車時間に制約がないことを示します。

このフィールドの値の単位は、解析オブジェクトの timeUnits プロパティで指定します。

解析では、超過移動時間 (訪問先ペア間の直接移動時間に基づく) を追跡し、重み付けすることができます。このため、次の 3 つの手法のいずれかを使用するように VRP 解析機能に指示することができます。

  • 保有車両の移動コストの増大を無視して、全体の超過移動時間を最小にする。
  • 全体の超過時間と移動コストのバランスをとるソリューションを検索する。
  • 全体の超過移動時間を無視して、保有車両の移動コストを最小にする。

[excess_transit_factor] パラメーターに重要度を割り当てることにより、これら 3 つの手法のいずれかを選択します。重要度にかかわりなく、[MaxTransitTime] 値が超過すると必ずエラーが返されます。

Record Set
excess_transit_factor
(オプション)

訪問先ペアの超過移動時間を減らすことの重要度を指定します。超過移動時間とは、訪問先ペア間を直接移動するのに必要な時間に対する超過時間です。超過時間は、運転手が休憩したり、中間の訪問先や拠点に移動したりすることで発生する場合があります。

  • High (高) - 全体の移動コストの増大を無視して、訪問先ペア間で超過移動時間を最短にすることの重要度を高く設定します。訪問先ペア間で人を輸送し、乗車時間を短くする場合は、通常、この設定を使用します。これはタクシー サービスの特徴を示します。
  • Medium (中) - 超過移動時間を短縮することと、全体のソリューション コストを削減することの間で、重要度のバランスを保ちます。これがデフォルト値です。
  • Low (低) - 超過移動時間にかかわらず、ソリューション コスト全体を最小化することの重要度を高く設定します。この設定は一般に宅配サービスで使用されます。宅配業者は人ではなく荷物を輸送するため、乗車時間を考慮する必要はありません。宅配業者は [低] を使用することで、訪問先ペアに適切な順序でサービスを提供し、全体のソリューション コストを最小にすることができます。

String
point_barriers
(オプション)

一時的な規制として機能する 1 つ以上のポイント、または対象の道路を通行するために必要とされる追加の時間や距離を表す 1 つ以上のポイントを指定する場合に、このパラメーターを使用します。たとえば、ポイント バリアを使用して、道路沿いの倒木や、踏切で生じる遅延時間を表すことができます。

このツールでは、バリアとして追加できるポイントの数は 250 に制限されています。

ポイント バリアを指定する場合は、次の属性を使用して、各ポイント バリアのプロパティ (ポイント バリアの名前やバリアの種類など) を設定できます。

Name

バリアの名前。

BarrierType

ポイント バリアの通過を完全に禁止するか、通過時に時間または距離を追加するかを指定します。この属性の値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。

  • 0 (通過不可): バリアを通過できません。バリアは通過不可として機能するので、通過不可ポイント バリアとも呼ばれます。

  • 2 (追加コスト) - バリアを通過するたびに、[Additional_Time]、[Additional_Distance] フィールドまたは [Additional_Cost] フィールドで指定した値だけ、移動時間または距離が加算されます。このバリア タイプは、追加コスト ポイント バリアとも呼ばれます。

Additional_Time

バリアを通過するときに追加される移動時間。このフィールドは、解析の移動モードが時間ベースのインピーダンス属性を使用する場合にのみ、追加コスト バリアにのみ適用されます。

このフィールドには 0 以上の値を指定する必要があります。単位は [計測単位] パラメーターで指定した単位と同じです。

Additional_Distance

バリアを通過するときに追加される距離。このフィールドは、解析の移動モードが距離ベースのインピーダンス属性を使用する場合にのみ、追加コスト バリアにのみ適用されます。

このフィールドには 0 以上の値を指定する必要があります。単位は [計測単位] パラメーターで指定した単位と同じです。

Additional_Cost

バリアを通過するときに追加されるコスト。このフィールドは、解析の移動モードが時間ベースでも距離ベースでもないインピーダンス属性を使用する場合にのみ、追加コスト バリアにのみ適用されます。

FullEdge

解析時に、通行不可ポイント バリアをエッジ要素に適用する方法を指定します。このフィールド値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。

  • 0 (False) - エッジ上をバリアまでは移動できますが、バリアを通過することはできません。これがデフォルト値です。
  • 1 (True) - バリアが配置されているエッジ全体が通行不可となります。

CurbApproach

バリアによって影響を受ける移動方向を指定します。このフィールド値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。

  • 0 (車両の両側) - エッジ上での両方向への移動がバリアの対象となります。
  • 1 (車両の右側) - バリアが移動車両の右側にある場合のみ影響を与えます。同じエッジ上で、バリアが移動車両の左側にある場合は影響を与えません。
  • 2 (車両の左側) - バリアが移動車両の左側にある場合のみ影響を与えます。同じエッジ上で、バリアが移動車両の右側にある場合は影響を与えません。

ジャンクションは特定のポイントなので、右側/左側がありません。したがって、ジャンクション上にバリアを配置した場合は、アプローチ制限にかかわらずすべての車両に影響を与えます。

CurbApproach 属性は、米国の右側通行の標準と英国の左側通行の標準の両方に対応するように設計されています。まず、施設が車両の左側にあるとします。これは、車両が移動するのが道路の左側であるか右側であるかに関係なく、常に左側にあります。右側通行か左側通行かに応じて異なるのは、2 つの方向のうちどちらから施設に到着するかです。つまり、結局のところ車両の右側または左側になります。たとえば、施設に到着するときに、車両と施設の間に交通レーンがない方がいい場合は、米国では 1 (車両の右側) を選択し、英国では 2 (車両の左側) を選択します。

Bearing

ポイントが移動している方向。単位は度で、北を基準に時計回りに測定されます。このフィールドは BearingTol フィールドと組み合わせて使用されます。

通常、方位データは、GPS 受信機を備えたモバイル デバイスから自動的に送信されます。歩行者や車両などの移動している入力場所を読み込んでいる場合は、方位データを含めてみてください。

このフィールドを使用すると、たとえば、車両が交差点や高架の近くにいる場合に、ロケーションが間違ったエッジに追加されるのを避けることができます。方位は、ツールがポイントを道路のどちら側に配置するかを決定する際にも役立ちます。

方位と方位許容値の詳細

BearingTol

方位許容値は、Bearing フィールドを使用して移動ポイントをエッジに配置するときに、許容される方位の範囲を作成します。Bearing フィールドの値が、エッジの方位許容値から生成される許容範囲内にある場合は、ポイントをその場所にネットワーク ロケーションとして配置できます。許容範囲から外れている場合は、次に近いエッジの最も近いポイントが評価されます。

単位は度で、デフォルト値は 30 です。値は 0 より大きく 180 未満でなければなりません。値が 30 の場合、Network Analyst がネットワーク ロケーションをエッジに追加しようとすると、方位値の許容範囲がエッジの両側 (左と右) に 15 度ずつ、どちらもエッジのデジタイズされた方向に生成されます。

方位と方位許容値の詳細

NavLatency

このフィールドは、BearingBearingTol の値が存在する場合にのみ、解析処理で使用されます。ただし、BearingBearingTol の値が存在する場合でも、NavLatency 値の入力は任意です。NavLatency は、移動中の車両からサーバーに GPS 情報が送信されてから、車両のナビゲーション デバイスが処理されたルートを受信するまでの予想経過時間を示します。

NavLatency の時間単位は、解析オブジェクトの timeUnits プロパティで指定された単位と同じです。

Feature Set
line_barriers
(オプション)

道路と交差しているラインの場所を移動できないようにする 1 つ以上のラインを指定する場合に、このパラメーターを使用します。たとえば、複数の道路区間にわたって通行禁止となるパレードやデモを表すときに通過不可ライン バリアを使用します。また、ライン バリアを使用すれば、道路網の特定の区間を迂回して利用できる経路をすばやく見つけることができます。

このツールでは、[ライン バリア] パラメーターを使用して規制できる道路の数に制限があります。ライン バリアとして指定できるラインの数に制限はありませんが、すべてのラインと交差する道路の総数が 500 を超えることはできません。

ライン バリアを指定する場合は、次の属性を使用するごとに、名前プロパティおよびバリア タイプ プロパティを設定できます。

Name

バリアの名前。

Feature Set
polygon_barriers
(オプション)

通過を完全に禁止するポリゴン、またはそのポリゴンと交差する道路を移動するときに時間または距離が係数に基づいて乗算されるポリゴンを指定する場合に、このパラメーターを使用します。

このサービスでは、[ポリゴン バリア] パラメーターを使用して規制できる道路の数に制限があります。ポリゴン バリアとして指定できるポリゴンの数に制限はありませんが、すべてのポリゴンと交差する道路の総数が 2,000 を超えることはできません。

ポリゴン バリアを指定する場合は、次の属性を使用して、各ポリゴン バリアのプロパティ (ポリゴン バリアの名前やバリアの種類など) を設定できます。

Name

バリアの名前。

BarrierType

バリアの通過を完全に禁止するか、バリアを通過する際のコスト (時間または距離など) を係数に基づいて計算するかを指定します。このフィールド値は、次のいずれかの整数として指定されます (括弧で囲まれた名前ではなく、数値コードを使用します)。

  • 0 (通過不可): バリアのどの部分も通過できません。バリアと交差する道路は通過不可になるので、バリアは通過不可ポリゴン バリアとも呼ばれます。たとえば、複数の道路を含む領域が浸水し、それらの道路を通過できない状況を表す場合などに、このタイプのバリアを使用します。

  • 1 (コスト係数指定) - [ScaledTimeFactor] フィールドまたは [ScaledDistanceFactor] フィールドで指定した係数が、対象の道路の通過に費やすコスト (移動時間または距離など) に乗算されます。道路の一部だけがバリアの対象になっている場合は、移動の時間または距離が比率に応じて乗算されます。たとえば、係数 0.25 を割り当てると、対象の道路での移動速度が通常の 4 倍速くなります。係数 3.0 を指定すると、対象道路での移動時間が通常の 3 倍長くなります。このバリア タイプは、コスト係数ポリゴン バリアとも呼ばれます。暴風のため特定領域の移動速度が低下する場合などに使用できます。

ScaledTimeFactor

これは、バリアが交差している道路の移動時間に乗算する係数です。このフィールドには 0 より大きい値を指定する必要があります。

このフィールドは、解析の移動モードが時間ベースのインピーダンス属性を使用する場合にのみ、コスト係数指定バリアにのみ適用されます。

ScaledDistanceFactor

これは、バリアが交差している道路の距離に乗算する係数です。このフィールドには 0 より大きい値を指定する必要があります。

このフィールドは、解析の移動モードが距離ベースのインピーダンス属性を使用する場合にのみ、コスト係数指定バリアにのみ適用されます。

ScaledCostFactor

これは、バリアと交差する道路のコストに乗算する係数です。このフィールドには 0 より大きい値を指定する必要があります。

このフィールドは、解析の移動モードが時間ベースでも距離ベースでもないインピーダンス属性を使用する場合にのみ、コスト係数指定バリアにのみ適用されます。

Feature Set
use_hierarchy_in_analysis
(オプション)

最適なルートを検索する際に、階層を使用するかどうかを指定します。

  • [オン] (True) - ルートを検索するときに階層を使用します。階層を使用する場合、このツールでは、下位レベルの道路 (一般道路など) の前に上位レベルの道路 (高速道路など) を識別します。また、このツールを使用して、運転者が遠回りであっても一般道路の代わりに高速道路を利用する状況をシミュレートできます。これは、長距離を移動する運転手は、停止場所、交差点、および進路変更を回避できる高速道路での移動を好む傾向があるため、遠い場所へのルート検索を実行する際に特に有効です。階層を使用すると、ツールが比較的小さい道路サブセットから最適ルートを識別するため、特に長距離ルートの場合は計算が速くなります。
  • [オフ] (False) - ルートを検索するときに階層を使用しません。階層を使用しない場合は、ルート検索時にすべての道路が検討に入れられ、上位レベルの道路を必ずしも識別しません。これは、多くの場合、市内の短距離ルートを検出する場合に使用されます。

このパラメーターがオフ (False) である場合でも、訪問先間、拠点間、または訪問先と拠点間の直線距離が 50 マイルを超えている場合は、自動的に階層を使用する設定に戻ります。

このパラメーターは、[移動モード][カスタム] (デフォルト値) に設定しなければ無視されます。

Boolean
restrictions

最適なルートを検索する際に使用される規制。

規制は、運転上の優先事項や要件を表します。ほとんどの場合は、規制により道路は通行禁止になります。たとえば、[Avoid Toll Roads] の規制を使用すると、ルートに有料道路が含まれるのは、インシデントまたは施設を訪問するために有料道路の使用が必要な場合のみになります。[Height Restriction] は、車両の高さより低い車高規制の場所を迂回できるようにします。車両に腐食性物質を積載している場合は、[Any Hazmat Prohibited] の規制を使用して、腐食性物質の運搬が法律で禁止されている道路の通行を回避します。

メモ:

このパラメーターに指定した値は、[移動モード][カスタム] に設定しなければ無視されます。

メモ:

一部の規制では、用途に関する追加の値を指定する必要があります。この値は、規制の名前、および規制に対応させることを意図している特定のパラメーターに関連付ける必要があります。[属性パラメーター値] パラメーターの [AttributeName] 列に規制の名前が表示されている場合、その規制を識別できます。通行可能な道路を検索するときに、規制が正しく使用されるように、規制に対応する [属性パラメーター値] パラメーター内で [ParameterValue] フィールドを指定する必要があります。

メモ:

一部の規制は、特定の国でのみサポートされます。それらの規制の利用可否は、次のリスト内で地域ごとに記述されています。領域内で規制の利用可否が制限されている場合、ネットワーク解析範囲の国リストのセクションにあるテーブルを確認して、規制が特定の国で利用できるかどうかを決定できます。国の [ロジスティック属性] 列に [Yes] という値が指定されている場合、その国では、その地域内で選択可能な規制を利用できます。解析を行う範囲の国で利用できない規制の名前を指定した場合、無効な規制はサービスによって無視されます。また、[規制の使用] 属性パラメーターの値が 0 ~ 1 の範囲内にある規制も、サービスによって無視されます ([属性パラメーター値] パラメーターを参照)。[規制の使用] パラメーターの値が 0 より大きいすべての規制は禁止されます。

ツールは、次の規制をサポートしています。

  • Any Hazmat Prohibited (すべての危険物を禁止) - 結果には、あらゆる種類の危険物の輸送が禁止されている道路が含まれません。

    利用可否: 北米およびヨーロッパの国を選択

  • Avoid Carpool Roads (相乗り用道路を使用しない) - 結果では、相乗り (多人数乗車) 車両専用として指定された道路を使用しません。

    利用可否: すべての国

  • Avoid Express Lanes (エクスプレス レーンを使用しない) - 結果では、エクスプレス レーンとして指定された道路を使用しません。

    利用可否: すべての国

  • Avoid Ferries (フェリーを使用しない) - 結果では、フェリーを使用しません。

    利用可否: すべての国

  • Avoid Gates (ゲートを使用しない) - 結果では、キーによるアクセスが必要なゲートや、守衛が管理する入口の存在する道路を使用しません。

    利用可否: すべての国

  • Avoid Limited Access Roads (通行が規制された道路を使用しない) - 結果では、通行が制限された高速道路として指定された道路を使用しません。

    利用可否: すべての国

  • Avoid Private Roads (私道を使用しない) - 結果では、公的に所有および管理されていない道路を使用しません。

    利用可否: すべての国

  • Avoid Roads Unsuitable for Pedestrians (歩行者に不向きな道路を回避) - 歩行者に向いていない道路を回避します。

    利用可否: すべての国

  • Avoid Stairways (階段を回避) - 歩行者向きの道路ですべての階段を回避します。

    利用可否: すべての国

  • Avoid Toll Roads (有料道路を回避) - 自動車用のすべての有料道路を回避します。

    利用可否: すべての国

  • Avoid Toll Roads for Trucks (トラック用の有料道路を回避) - トラック用のすべての有料道路を回避します。

    利用可否: すべての国

  • Avoid Truck Restricted Roads (トラック規制道路を使用しない) - 結果では、配送時以外はトラックが許可されていない道路を使用しません。

    利用可否: すべての国

  • Avoid Unpaved Roads (未舗装路を使用しない) - 舗装されていない道路 (砂利道、泥道など) を回避します。

    利用可否: すべての国

  • Axle Count Restriction (車軸数規制) - 結果には、指定した車軸数のトラックが禁止されている道路が含まれません。車軸数は、[Number of Axles restriction] パラメーターを使用して指定します。

    利用可否: 北米およびヨーロッパの国を選択

  • Driving a Bus (バスの通行) - 結果には、バスの通行が禁止されている道路が含まれません。また、この規制を使用すると、一方通行の規制に従っていることも保証されます。

    利用可否: すべての国

  • Driving a Taxi (タクシーの通行) - 結果には、タクシーの通行が禁止されている道路が含まれません。また、この規制を使用すると、一方通行の規制に従っていることも保証されます。

    利用可否: すべての国

  • Driving a Truck (トラックの通行) - 結果には、トラックの通行が禁止されている道路が含まれません。また、この規制を使用すると、一方通行の規制に従っていることも保証されます。

    利用可否: すべての国

  • Driving an Automobile (自動車の通行) - 結果には、自動車の通行が禁止されている道路が含まれません。また、この規制を使用すると、一方通行の規制に従っていることも保証されます。

    利用可否: すべての国

  • Driving an Emergency Vehicle (緊急車両の通行) - 結果には、緊急車両の通行が禁止されている道路が含まれません。また、この規制を使用すると、一方通行の規制に従っていることも保証されます。

    利用可否: すべての国

  • Height Restriction (高さ規制) - 結果には、車両の高さが道路で許可されている最大高さを超えている道路は含まれません。車高は、[Vehicle Height] パラメーターを使用して指定します (メートル単位)。

    利用可否: 北米およびヨーロッパの国を選択

  • Kingpin to Rear Axle Length Restriction (キングピンから後車軸までの長さ規制) - 結果には、車両の長さが、すべてのトラックに対して許可されているキングピンから後車軸までの最大許容値を超える道路が含まれません。車両の先端と後軸の間の長さは、[Vehicle Kingpin to Rear Axle Length (meters) restriction] パラメーターを使用して指定します。

    利用可否: 北米およびヨーロッパの国を選択

  • Length Restriction (車長規制) - 結果には、車両の長さが道路で許可されている最大長さを超えている道路は含まれません。車両の長さは、[Vehicle Length] パラメーターを使用して指定します (メートル単位)。

    利用可否: 北米およびヨーロッパの国を選択

  • Preferred for Pedestrians (歩行者用に優先) - 歩行ナビゲーションに適した優先ルートを使用します。

    利用可否: 北米およびヨーロッパの国を選択

  • Riding a Motorcycle (オートバイの通行) - 結果には、オートバイが禁止されている道路が含まれません。また、この規制を使用すると、一方通行の規制に従っていることも保証されます。

    利用可否: すべての国

  • Roads Under Construction Prohibited (工事中の道路を使用しない) - 結果には、工事中の道路が含まれません。

    利用可否: すべての国

  • Semi or Tractor with One or More Trailers Prohibited (1 台以上のトレーラーをけん引するセミトレーラーまたはトラクターの禁止) - 結果には、1 台以上のトレーラーをけん引するセミトレーラーまたはトラクターが禁止されている道路が含まれません。

    利用可否: 北米およびヨーロッパの国を選択

  • Single Axle Vehicles Prohibited (一軸車両の禁止) - 結果には、一軸の車両の通行が禁止されている道路が含まれません。

    利用可否: 北米およびヨーロッパの国を選択

  • Tandem Axle Vehicles Prohibited (タンデム車軸車両の禁止) - 結果には、タンデム車軸車両の通行が禁止されている道路が含まれません。

    利用可否: 北米およびヨーロッパの国を選択

  • [通過交通の禁止]: 結果には、通過交通 (地元向け車両以外) が禁止されている道路が含まれません。

    利用可否: すべての国

  • Truck with Trailers Restriction (トレーラーをけん引するトラックの規制) - 結果には、指定した台数のトレーラーが連結されたトラックの通行が禁止されている道路が含まれません。トラックがけん引するトレーラーの数は、[Number of Trailers on Truck] パラメーターを使用して指定します。

    利用可否: 北米およびヨーロッパの国を選択

  • Use Preferred Hazmat Routes (危険物用の優先道路を使用する) - 結果では、あらゆる種類の危険物の輸送用として指定されている道路が優先されます。

    利用可否: 北米およびヨーロッパの国を選択

  • [優先されるトラック ルートの使用]: 結果では、米国の National Surface Transportation Assistance Act (米国陸上交通支援法) で指定された全国ネットワークの一部の道路などの、トラックのルートとして指定されている道路、都道府県または公共団体によってトラック ルートとして指定されている道路、または地域内で運転するときにトラック運転手に好まれる道路が優先されます。

    利用可否: 北米およびヨーロッパの国を選択

  • Walking (歩行者) - 結果には、歩行者の通行が禁止されている道路が含まれません。

    利用可否: すべての国

  • Weight Restriction (重量規制) - 結果には、車両の重量がその道路で許可されている最大重量を超える道路が含まれません。車両の重量は、[Vehicle Weight per Axle] パラメーターを使用して指定します (キログラム単位)。

    利用可否: 北米およびヨーロッパの国を選択

  • Weight per Axle Restriction (車軸あたりの重量規制) - 結果には、車両の車軸あたりの重量が、その道路で許可されている車軸あたりの最大重量を超える道路が含まれません。軸重は、[Vehicle Weight per Axle (kilograms) restriction] パラメーターを使用して指定します。

    利用可否: 北米およびヨーロッパの国を選択

  • Width Restriction (車幅規制) - 結果には、車両の幅が道路で許可されている最大幅を超える道路が含まれません。幅員は、[Vehicle Width] パラメーターを使用して指定します (メートル単位)。

    利用可否: 北米およびヨーロッパの国を選択

レガシー:

[Driving a Delivery Vehicle (配送車両の通行)] 規制属性は、使用できなくなりました。この規制は無効なので、サービスはこれを無視します。同様の結果を得るには、[Driving a Truck (トラックの通行)] 規制属性を [Avoid Truck Restricted Roads (トラック規制道路を使用しない)] 規制属性とともに使用します。

String
attribute_parameter_values
(オプション)

規制が、制限された道路上の移動を禁止するか、回避するか、優先するかのいずれかを指定する場合など、属性または規制に必要な追加の値を指定する場合に、このパラメーターを使用します。規制が道路を回避または優先するためのものである場合は、このパラメーターを使用して道路が回避または優先される度合いも指定できます。たとえば、有料道路を決して使用しないこと、できるだけ避けること、または優先することを選択できます。

メモ:

このパラメーターに指定した値は、[移動モード][カスタム] に設定しなければ無視されます。

フィーチャクラスから [属性パラメーター値] パラメーターを指定する場合は、フィーチャクラスのフィールド名が、次のフィールドと一致する必要があります。

  • AttributeName - 規制の名前。
  • ParameterName - 規制に関連付けられたパラメーターの名前。規制は、その使用目的に基づいて、1 つまたは複数の ParameterName フィールド値を持つことができます。
  • ParameterValue - 規制を評価するときにツールによって使用される ParameterName の値。

[属性パラメーター値] パラメーターは、[規制] パラメーターに依存します。ParameterValue フィールドは、規制の名前が [規制] パラメーターの値として指定されている場合に限り適用できます。

[属性パラメーター値] では、AttributeName で指定した各規制の ParameterName フィールドに [規制の使用] という値があります。この値は、規制に関連付けられた道路での移動を禁止、回避、または優先するかどうか、および道路を回避または優先する場合のレベルを指定します。[ParameterName] フィールドの [規制の使用] の値には、次のいずれかの文字列、またはそれぞれの括弧に示した数値を割り当てることができます。

  • PROHIBITED (-1) - 規制を使用する道路上の移動が完全に禁止されます。
  • AVOID_HIGH (5) - 規制に関連付けられている道路がルートに含められる可能性が非常に低くなります。
  • AVOID_MEDIUM (2) - 規制に関連付けられている道路がルートに含められる可能性が低くなります。
  • AVOID_LOW (1.3) - 規制に関連付けられている道路がルートに含められる可能性がやや低くなります。
  • PREFER_LOW (0.8) - 規制に関連付けられている道路がルートに含められる可能性がやや高くなります。
  • PREFER_MEDIUM (0.5) - 規制に関連付けられている道路がルートに含められる可能性が高くなります。
  • PREFER_HIGH (0.2) - 規制に関連付けられている道路がルートに含められる可能性が非常に高くなります。

規制が車両の高さなどの車両の特性に依存している場合はほとんど、[Restriction Usage] にデフォルト値の PROHIBITED を使用できます。ただし、[規制の使用] の値がルートの優先度に依存している場合もあります。たとえば、[Avoid Toll Roads] の規制では、[規制の使用] 属性のデフォルト値は [AVOID_MEDIUM] になります。つまり、この規制を使用すると、可能な場合は有料道路を回避するルートが検索されます。また、[AVOID_MEDIUM] は、最適なルートを検索する際に有料道路を回避することの重要度も表しています (中程度の優先度)。[AVOID_LOW] を選択すると、有料道路を回避する重要度が下がります。AVOID_HIGH を選択すると重要度が上がり、有料道路を回避するためにより長い距離のルートも生成可能になります。[PROHIBITED] を選択すると有料道路の通行は完全に禁止され、ルートでは有料道路のいずれの部分も通行できなくなります。一部のユーザーは、有料道路を回避または禁止して、料金所での支払いを回避することが目的であることに注意してください。一方、料金所で支払うことよりも交通渋滞を避けることのほうに価値があるため、有料道路で運転することを優先するユーザーもいます。後者の場合は、[規制の使用] として [PREFER_LOW]、[PREFER_MEDIUM]、または [PREFER_HIGH] を選択できます。優先度が高いほど、規制に関連付けられている道路を通行するために遠回りするようになります。

Record Set
populate_route_lines
(オプション)

出力ルート ラインを生成するかどうかを指定します。

  • オン (True) - 出力ルートは道路の正確な形状を保持します。
  • オフ (False) - 出力ルートに形状は生成されませんが、ルートにはソリューションに関する表形式の情報が含まれています。ルート ラインが作成されない場合、ルート案内を生成することはできません。

[ルート形状] パラメーターが [正確な形状] に設定されている場合は、[ルートの単純化許容値] パラメーターの適切な値を使用して、ルートの形状の一般化をさらに制御できます。

[ルート形状] パラメーターで選択した値にかかわらず、最適なルートは常に道路に沿った移動が最小になるように決定され、直線距離が使用されることはありません。つまり、ルート形状が異なるだけで、ルート検索時に対象となる道路は同じであることを意味します。

Boolean
route_line_simplification_tolerance
(オプション)

ルートおよびルート案内の出力ラインのジオメトリの単純化に使用される量。

このパラメーターに指定した値は、[移動モード][カスタム] (デフォルト値) に設定しなければ無視されます。

[populate_route_lines] パラメーターがオフ (False) に設定されている場合、このパラメーターは無視されます。

単純化によって、ルートの基本的な形状を定義する重要ポイント (交差点でのターンなど) は維持され、その他のポイントは削除されます。ここで指定する単純化の距離は、単純化されたラインの元のラインからの逸脱として認められる、最大許容オフセットです。ラインの単純化では、ルート ジオメトリを構成する頂点の数が削減されます。これにより、ツールの実行時間が短縮されます。

Linear Unit
populate_directions
(オプション)

各ルートに対してルート案内を生成するかどうかを指定します。

  • [オン] (Python では True) - [Directions Language][Directions Style Name]、および [Directions Distance Units] パラメーターの値に基づいて、ルート案内が生成および設定されます。
  • [オフ] (Python では False) - ルート案内は生成されず、空のルート案内レイヤーが返されます。

Boolean
directions_language
(オプション)

移動方向を生成する際に使用する言語。

このパラメーターは、[ルート案内の設定] パラメーターがオンである (Python では True) 場合にのみ使用されます。

パラメーター値は、次の 2 文字または 5 文字の言語コードのいずれかを使用して指定できます。

  • ar - アラビア語
  • bs - ボスニア語
  • ca - カタロニア語
  • cs - チェコ語
  • da - デンマーク語
  • de - ドイツ語
  • el - ギリシャ語
  • en - イングリッシュ
  • es - スペイン語
  • et - エストニア語
  • fi - フィンランド語
  • fr - フランス語
  • he - ヘブライ語
  • hr - クロアチア語
  • hu - ハンガリー語
  • id - インドネシア語
  • it - イタリア語
  • ja - 日本語
  • ko - 韓国語
  • lt - リトアニア語
  • lv - ラトビア語
  • nb - ノルウェー語
  • nl - オランダ語
  • pl - ポーランド語
  • pt-BR - ブラジル ポルトガル語
  • pt-PT - ヨーロッパ ポルトガル語
  • ro - ルーマニア語
  • ru - ロシア語
  • sl - スロベニア語
  • sr - セルビア語
  • sv - スウェーデン語
  • th - タイ語
  • tr - トルコ語
  • uk - ウクライナ語
  • vi - ベトナム語
  • zh-CN - 簡体字中国語
  • zh-HK - 繁体字中国語 (香港)
  • zh-TW - 繁体字中国語 (台湾)

このツールは、まず、言語ローカライズを含め、指定された言語の完全一致を検索します。完全一致が見つからなかった場合は、言語ファミリーの一致を試みます。それでも一致が見つからない場合、ルート案内にはデフォルト言語である英語が使用されます。たとえば、ルート案内の言語が [es-MX] (メキシコ スペイン語) として指定されている場合、ツールは [es-MX] ではなく [es] 言語コードをサポートしているため、ルート案内をスペイン語で返します。

注意:

言語がポルトガル語 (ブラジル) (pt-BR) とポルトガル語 (ポルトガル) (pt-PT) などのローカライズをサポートしている場合は、言語ファミリーとローカライズを指定します。言語ファミリーのみを指定した場合、ツールは言語ファミリーの一致を試みず、ルート案内にはデフォルト言語である英語が使用されます。たとえば、ルート案内の言語が [pt] として指定されている場合、ツールはルート案内を英語で返します。これは、ルート案内を [pt-BR] で返すべきか [pt-PT] で返すべきか判断できないからです。

String
directions_style_name
(オプション)

ルート案内の書式スタイルの名前を指定します。このパラメーターは、[ルート案内の設定] パラメーターがオンである (Python では True) 場合にのみ使用されます。

  • [NA Desktop] - 印刷に適したターンごとのルート案内。
  • [NA Navigation] - 車載ナビゲーション デバイス用に設計されたターンごとのルート案内。
  • [NA Campus] - 歩行者ルート用に設計された詳細な歩行ルート案内。

String
travel_mode
(オプション)

解析でモデル化する交通モード。移動モードArcGIS Online で管理されます。組織の管理者は、移動モードを構成することで、組織のワークフローを反映することができます。 組織がサポートする移動モードの名前を指定する必要があります。

サポートされている移動モード名のリストを取得するには、ツールへのアクセスに使用したのと同じ GIS サーバー接続で、[ユーティリティ] ツールボックスから [移動モードの取得 (Get Travel Modes)] ツールを実行します。[移動モードの取得 (Get Travel Modes)] ツールは、アプリケーションに [サポートされている移動モード] テーブルを追加します。[サポートされている移動モード] テーブルの [Travel Mode Name] フィールドの任意の値を、入力として指定できます。Travel Mode Settings フィールドの値を入力として指定することもできます。これにより、ツールが移動モード名に基づいて設定を検索する必要がなくなるため、ツールの実行が高速化されます。

デフォルト値 [カスタム] を使用すると、カスタム移動モード パラメーター ([ジャンクションでの U ターン][階層の使用][規制][属性パラメーター値]、および [インピーダンス]) を使用して、独自の移動モードを構成できます。カスタム移動モード パラメーターのデフォルト値は、自動車による移動をモデル化します。歩くのが速い歩行者や、指定された高さ、重量、および特定危険物を積載したトラックなどをモデル化する場合に、[カスタム] を選択して、上記のカスタム移動モード パラメーターを設定することもできます。必要な解析結果を取得するために、異なる設定を試すことができます。解析設定を決定したら、組織の管理者と連携して、その設定を新規または既存の移動モードの一部として保存します。これにより、組織のすべてのユーザーが同じ設定で解析を実行できます。

注意:

[カスタム] を選択すると、カスタム移動モード パラメーターに設定した値が解析に組み込まれます。組織で定義されている別の移動モードを指定すると、カスタム移動モード パラメーターで設定した値は無視されます。ツールはカスタムの設定ではなく、指定した移動モードの値を適用します。

String
impedance
(オプション)

インピーダンスを設定します。インピーダンスは、道路セグメントや交通ネットワークのその他の部分を移動する労力やコストを表す値です。

移動時間もインピーダンスです。自動車は、空いている道路を 1 マイル移動するのに 1 分かかります。移動時間は、移動モードによって異なります。歩行者は、同じマイル数を歩くのに 20 分以上かかる可能性があります。そのため、モデル化している移動モードに対して適切なインピーダンスを選択することが重要です。

注意:

このパラメーターに指定した値は、[移動モード][カスタム] (デフォルト値) に設定しなければ無視されます。

次のインピーダンス値から選択します。

  • [TravelTime] - 履歴交通量データおよびライブ交通量データが使用されます。このオプションは、ライブ交通量速度データ (利用可能な場合) に基づいて 1 日のうちの特定の時間帯に自動車が道路を走行する時間をモデル化するのに役立ちます。[TravelTime] を使用するとき、必要に応じて TravelTime::車両最大速度 (km/h) 属性パラメーターを設定して、車両が移動できる物理的な速度制限を指定できます。
  • [Minutes] - ライブ交通量データが使用されず、自動車データの履歴平均速度が使用されます。
  • [TruckTravelTime] - 履歴交通量データおよびライブ交通量データが使用されますが、速度がトラックの規制速度に制限されます。これは、特定の時間帯にトラックが道路を走行する時間をモデル化するのに役立ちます。[TruckTravelTime] を使用するとき、必要に応じて TruckTravelTime::車両最大速度 (km/h) 属性パラメーターを設定して、トラックが移動できる物理的な速度制限を指定できます。
  • [TruckMinutes] - ライブ交通量データが使用されず、自動車の履歴平均速度とトラックの規制速度のうち、どちらか小さい方の値が使用されます。
  • [WalkTime] - すべての道路や通路で時速 5 キロにデフォルトで設定されていますが、これは、WalkTime::歩行速度 (km/h) 属性パラメーターを使用して構成できます。
  • [TimeAt1KPH] - すべての道路や歩行路で時速 1 キロにデフォルトで設定されています。速度は、任意の属性パラメーターを使用して変更できません。

レガシー:

[到達圏][トラック輸送時間][歩行時間] インピーダンス値のサポートは終了するので、今後のリリースからは削除されます。これらのいずれかの値を使用する場合、ツールでは [時間インピーダンス] パラメーターの値を使用します。

String
time_zone_usage_for_time_fields
(オプション)

このツールでサポートされている入力日時フィールドのタイム ゾーンを指定します。このパラメーターには、次のフィールドのタイム ゾーンを指定します。訪問先の TimeWindowStart1TimeWindowEnd1TimeWindowStart2TimeWindowEnd2InboundArriveTime、および OutboundDepartTime。拠点の TimeWindowStart1TimeWindowEnd1TimeWindowStart2、および TimeWindowEnd2。ルートの EarliestStartTime および LatestStartTime。休憩の TimeWindowStart および TimeWindowEnd

  • GEO_LOCAL - 訪問先または拠点に関連付けられた日時の値は、それらの訪問先と拠点のタイム ゾーンにあります。ルートの場合、日時の値は、ルートの開始拠点があるタイム ゾーンをベースとします。ルートの開始拠点がない場合は、全ルートにわたるすべての訪問先と拠点が 1 つのタイム ゾーンにある必要があります。休憩の場合、日時の値は、ルートのタイム ゾーンをベースとします。たとえば、東部標準時に準拠する地域内に拠点があり、その拠点の最初のタイム ウィンドウ値 ([TimeWindowStart1] と [TimeWindowEnd1] で指定) が午前 8 時と午後 5 時である場合、このタイム ウィンドウ値は、東部標準時の午前 8 時と午後 5 時と見なされます。
  • [UTC] - 訪問先または拠点に関連付けられた日時の値は、UTC (協定世界時) 形式であり、それらの訪問先や拠点のタイム ゾーンをベースとしません。たとえば、東部標準時に準拠する地域内に拠点があり、その拠点の最初のタイム ウィンドウ値 ([TimeWindowStart1] と [TimeWindowEnd1] で指定) が午前 8 時と午後 5 時である場合、このタイム ウィンドウ値は、東部標準時がサマー タイムに従うと仮定すると、東部標準時の午後 12 時 (正午) と午後 9 時と見なされます。

UTC 形式での日時の値の指定は、訪問先や拠点があるタイム ゾーンが不明な場合や、訪問先と拠点が複数のタイムゾーンに分散しているときに、すべての日時の値を同時に開始する必要がある場合に役立ちます。[UTC] オプションは、ネットワーク データセットでタイム ゾーン属性が定義されている場合のみ適用されます。定義されていない場合、すべての日時の値は常に GEO_LOCAL と見なされます。

string
save_output_layer
(オプション)

解析設定をネットワーク解析レイヤー ファイルとして保存するかどうかを指定します。このファイルは、ArcMap などの ArcGIS Desktop アプリケーションで開いた場合でも、直接操作することはできません。これは、ツールから返される結果の品質を診断するために、Esri テクニカル サポートに送信されることを想定しています。

  • [オン] (True) - ネットワーク解析レイヤー ファイルを保存します。このファイルは、コンピューター上の一時ディレクトリにダウンロードされます。ArcGIS Pro でダウンロードされたファイルの場所を調べるには、プロジェクトのジオプロセシング履歴で、ツールの実行に対応するエントリの [出力ネットワーク解析レイヤー] パラメーターの値を表示します。ArcMap でファイルの場所を調べるには、[ジオプロセシング結果] ウィンドウで、ツールの実行に対応するエントリの [出力ネットワーク解析レイヤー] パラメーターから、ショートカット メニューの [ロケーションのコピー] オプションにアクセスします。
  • [オフ] (False) - ネットワーク解析レイヤー ファイルを保存しません。これがデフォルトです。

Boolean
overrides
(オプション)

ネットワーク解析問題の解決法を見つける場合に、解析の動作に影響を与えることができる追加設定。

JSON (JavaScript Object Notation) で、このパラメーターの値を指定する必要があります。たとえば、有効な値は {"overrideSetting1" : "value1", "overrideSetting2" : "value2"} という形式です。オーバーライド設定名は、必ず二重引用符で囲みます。値には、数値、ブール型、または文字列を使用できます。

このパラメーターのデフォルト値は、値なしであり、解析の設定を上書きしません。

オーバーライドは、設定を適用する前後で得られた結果を慎重に分析した後にのみ使用する必要のある高度な設定です。解析ごとにサポートされているオーバーライド設定の一覧およびそれらの許容される値については、Esri テクニカル サポートにお問い合わせください。

String
save_route_data
(オプション)

ルート レイヤーを ArcGIS Online または Portal for ArcGIS で共有するのに使用できる形式で、解析の入力と出力を保持するファイル ジオデータベースを含む *.zip ファイルを出力に含めるかどうかを指定します。

  • [オン] (True) - ルート データが *.zip ファイルとして保存されます。このファイルは、コンピューター上の一時ディレクトリにダウンロードされます。ArcGIS Pro でダウンロードされたファイルの場所を調べるには、プロジェクトのジオプロセシング履歴で、ツールの実行に対応するエントリの [出力ルート データ] パラメーターの値を表示します。ArcMap でファイルの場所を調べるには、[ジオプロセシング結果] ウィンドウで、ツールの実行に対応するエントリの [出力ルート データ] パラメーターから、ショートカット メニューの [ロケーションのコピー] オプションにアクセスします。

  • [オフ] (False) - ルート データが保存されません。これがデフォルトです。

Boolean
time_impedance
(オプション)

時間ベースのインピーダンス。インピーダンスは、道路セグメントや交通ネットワークのその他の部分の移動時間を表す値です。

メモ:
[インピーダンス] パラメーターを使用して指定された移動モードのインピーダンスが時間ベースである場合、[時間インピーダンス] パラメーターと [インピーダンス] パラメーターの値が同じである必要があります。同一でなければ、サービスはエラーを返します。
String
distance_impedance
(オプション)
メモ:
[インピーダンス] パラメーターを使用して指定された移動モードのインピーダンスが距離ベースである場合、[距離インピーダンス] パラメーターと [インピーダンス] パラメーターの値が同じである必要があります。同一でなければ、サービスはエラーを返します。

距離ベースのインピーダンス。インピーダンスは、道路セグメントや交通ネットワークのその他の部分の移動距離を表す値です。

String
populate_stop_shapes
(オプション)

ツールが、出力割り当てストップと未割り当てストップの形状を作成するかどうかを指定します。

  • [オン] (True) - 出力割り当てストップと未割り当てストップは、ポイント フィーチャとして作成されます。これは、ルートに割り当てたストップと、どのルートにも割り当てることができなかったルートを視覚化したい場合に便利です。

  • [オフ] (False) - 出力割り当てストップと未割り当てストップはテーブルとして作成され、形状は持ちません。これがデフォルトです。アプリケーションで出力ストップを視覚化する必要がなく、ストップの属性だけで作業を行える場合にのみ、このオプションを使用します。

Boolean
output_format
(オプション)

出力フィーチャを作成する形式を指定します。

  • フィーチャ セット - 出力フィーチャは、フィーチャクラスとテーブルとして返されます。これがデフォルトです。
  • JSON ファイル - 出力フィーチャは、出力の JSON の表現を含む圧縮ファイルとして返されます。このオプションが指定されている場合、出力は単一ファイル (拡張子は *.zip) です。このファイルには、サービスが各出力に対して作成する 1 つ以上の JSON ファイル (拡張子は *.json) が含まれます。
  • GeoJSON ファイル - 出力フィーチャは、出力の GeoJSON の表現を含む圧縮ファイルとして返されます。このオプションが指定されている場合、出力は単一ファイル (拡張子は *.zip) です。このファイルには、サービスが各出力に対して作成する 1 つ以上の GeoJSON ファイル (拡張子は *.geojson) が含まれます。

[JSON ファイル][GeoJSON ファイル] など、ファイルベースの出力形式が指定されている場合は、ディスプレイに出力は追加されません。これは、ArcMapArcGIS Pro のようなアプリケーションは結果ファイルのコンテンツを描画できないからです。代わりに、結果ファイルはコンピューター上の一時ディレクトリにダウンロードされます。ArcGIS Pro でダウンロードされたファイルの場所を調べるには、プロジェクトのジオプロセシング履歴で、ツールの実行に対応するエントリの [出力結果ファイル] パラメーターの値を表示します。ArcMap でファイルの場所を調べるには、[ジオプロセシング結果] ウィンドウで、ツールの実行に対応するエントリの [出力結果ファイル] パラメーターから、ショートカット メニューの [ロケーションのコピー] オプションにアクセスします。

String

派生した出力

名前説明データ タイプ
solve_succeeded

配車ルートの解析が成功したかどうかを特定します。

ブール型
out_unassigned_stops

どのルートも立ち寄ることのできない訪問先へのアクセスを提供します。訪問先に立ち寄れない理由を確認し、必要な変更を行って問題を修正することもできます。

フィーチャ セット
out_stops

拠点、訪問先、および休憩地点で止まるストップについての情報を提供します。この情報には、それらのストップに立ち寄るルート、到着時間と出発時間、およびストップの順序が含まれます。

フィーチャ セット
out_routes

運転手、車両、および配車ルートでの車両のルート パス解析へのアクセスを提供します。

フィーチャ セット
out_directions

各結果ルートのターンごとのルート案内へのアクセスを提供します。

フィーチャ セット
out_network_analysis_layer

ツールのパラメーターでプロパティが構成されているネットワーク解析レイヤー。これは、マップ内でさらに詳細な解析やデバッグに使用できます。

ファイル
out_route_data

特定のルートに関するすべての情報を含む *.zip ファイル。

ファイル
out_result_file

解析結果を含んでいる *.zip ファイル。出力ごとに 1 つ以上のファイルが含まれます。個々のファイルの形式は [出力形式] パラメーターで指定されます。

ファイル

コードのサンプル

SolveVehicleRoutingProblem (配車ルート (VRP) の解析) の例 1 (スタンドアロン スクリプト)

次の Python スクリプトは、 Solve Vehicle Routing Problem ツールをスクリプトで使用する方法を示しています。

"""This example shows how to obtain the schema for the inputs, populate the inputs,
excute the tool and save the results.
"""

import sys
import time
import arcpy

# Change the username and password applicable to your own ArcGIS Online account
username = "<your user name>"
password = "<your password>"

vrp_service = "https://logistics.arcgis.com/arcgis/services;World/VehicleRoutingProblem;{0};{1}".format(username, password)

# Add the geoprocessing service as a toolbox.
# Check https://pro.arcgis.com/en/pro-app/2.6/arcpy/functions/importtoolbox.htm for
# other ways in which you can specify credentials to connect to a geoprocessing service.
arcpy.ImportToolbox(vrp_service)
vrp_tool_name = "SolveVehicleRoutingProblem_VehicleRoutingProblem"

# Set the variables to store results from the tool. Overwrite the results if they already exist.
arcpy.env.overwriteOutput = True
output_routes = "C:/data/Results.gdb/Routes"
assigned_orders = "C:/data/Results.gdb/AssignedOrders"
unassigned_orders = "C:/data/Results.gdb/UnassignedOrders"

# Get the schema for input orders, depots and routes
input_orders = arcpy.GetParameterValue(vrp_tool_name, 0)
input_depots = arcpy.GetParameterValue(vrp_tool_name, 1)
input_routes = arcpy.GetParameterValue(vrp_tool_name, 2)

# Create two orders as input. The coordinate values are in WGS84 spatial reference.
# AssignmentRule for orders is 3 which specifies that the tool should assign a new
# sequence and route for every order.
orders = [(-122.51, 37.7724), (-122.4889, 37.7538)]
sr = arcpy.SpatialReference(4326)
with arcpy.da.InsertCursor(input_orders, ("SHAPE@", "Name", "AssignmentRule")) as cursor:
    for i, order in enumerate(orders):
        order_shape = arcpy.PointGeometry(arcpy.Point(order[0], order[1]), sr)
        row = (order_shape, "O{}".format(i + 1), 3)
        cursor.insertRow(row)

# Create one depot as input. The coordinate values are in WGS84 spatial reference
depots = [(-122.3943, 37.7967)]
with arcpy.da.InsertCursor(input_depots, ("SHAPE@", "Name")) as cursor:
    for i, depot in enumerate(depots):
        depot_shape = arcpy.PointGeometry(arcpy.Point(depot[0], depot[1]), sr)
        row = (depot_shape, "D{}".format(i + 1))
        cursor.insertRow(row)

# Create one route as input. Ensure that the StartDepotName and EndDepotName fields on 
# routes has same value as the Name field on input depots. AssignmentRule for routes
# is 1 which specifies that the tool must include the route.
# CostPerUnitTime and MaxOrderCount are fields that cannot have null values if the route
# is to be considered as a valid route.  
with arcpy.da.InsertCursor(input_routes, ("Name", "StartDepotName",
                                          "EndDepotName", "AssignmentRule",
                                          "CostPerUnitTime", "MaxOrderCount")) as cursor:
    row = ("R1", "D1", "D1", 1, 1, 10)
    cursor.insertRow(row)

# Call the tool
result = arcpy.SolveVehicleRoutingProblem_VehicleRoutingProblem(input_orders, input_depots, input_routes)
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 routes and orders to a local geodatabase
result.getOutput(0).save(unassigned_orders)
result.getOutput(1).save(assigned_orders)
result.getOutput(2).save(output_routes)
SolveVehicleRoutingProblem (配車ルート (VRP) の解析) の例 2 (スタンドアロン スクリプト)

次に、幅広の荷物を積んだトラックのカスタム移動モードを使用して、配車ルートの解析を行う方法を例示します。

"""This example shows how to perform a vehicle routing problem analysis using a custom travel mode that
models trucks carrying wide load."""

import sys
import time
import json
import arcpy

# Change the username and password applicable to your own ArcGIS Online account
username = "<your user name>"
password = "<your password>"

vrp_service = "https://logistics.arcgis.com/arcgis/services;World/VehicleRoutingProblem;{0};{1}".format(username, password)

# Add the geoprocessing service as a toolbox.
arcpy.ImportToolbox(vrp_service)
vrp_tool_name = "SolveVehicleRoutingProblem_VehicleRoutingProblem"

# Set the variables to store results from the tool. Overwrite the results if they already exist.
arcpy.env.overwriteOutput = True
output_routes = "C:/data/Results.gdb/Routes"
assigned_orders = "C:/data/Results.gdb/AssignedOrders"
unassigned_orders = "C:/data/Results.gdb/UnassignedOrders"

# Get the schema for input orders, depots and routes
input_orders = arcpy.GetParameterValue(vrp_tool_name, 0)
input_depots = arcpy.GetParameterValue(vrp_tool_name, 1)
input_routes = arcpy.GetParameterValue(vrp_tool_name, 2)

# Create two orders as input. The coordinate values are in WGS84 spatial reference.
# AssignmentRule for orders is 3 which specifies that the tool should assign a new
# sequence and route for every order.
orders = [(-122.51, 37.7724), (-122.4889, 37.7538)]
sr = arcpy.SpatialReference(4326)
with arcpy.da.InsertCursor(input_orders, ("SHAPE@", "Name", "AssignmentRule")) as cursor:
    for i, order in enumerate(orders):
        order_shape = arcpy.PointGeometry(arcpy.Point(order[0], order[1]), sr)
        row = (order_shape, "O{}".format(i + 1), 3)
        cursor.insertRow(row)

# Create one depot as input. The coordinate values are in WGS84 spatial reference
depots = [(-122.3943, 37.7967)]
with arcpy.da.InsertCursor(input_depots, ("SHAPE@", "Name")) as cursor:
    for i, depot in enumerate(depots):
        depot_shape = arcpy.PointGeometry(arcpy.Point(depot[0], depot[1]), sr)
        row = (depot_shape, "D{}".format(i + 1))
        cursor.insertRow(row)

# Create one route as input. Ensure that the StartDepotName and EndDepotName fields on routes has same
# value as the Name field on input depots. AssignmentRule for routes is 1 which specifies that the tool
# must include the route. CostPerUnitTime and MaxOrderCount are fields that cannot have null values if
# the route is to be considered as a valid route.  
with arcpy.da.InsertCursor(input_routes, ("Name", "StartDepotName",
                                          "EndDepotName", "AssignmentRule",
                                          "CostPerUnitTime", "MaxOrderCount")) as cursor:
    row = ("R1", "D1", "D1", 1, 1, 10)
    cursor.insertRow(row)

# 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.SolveVehicleRoutingProblem_VehicleRoutingProblem(input_orders, input_depots,
                                                                input_routes, travel_mode=travel_mode)
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 routes and orders to a local geodatabase
result.getOutput(0).save(unassigned_orders)
result.getOutput(1).save(assigned_orders)
result.getOutput(2).save(output_routes)

環境

このツールは、ジオプロセシング環境を使用しません。

関連トピック