訪問先ペアへの最適なルートを検索
Network Analyst ライセンスで利用可能。
この演習の目的は、複数のワゴン車を利用し、他に移動手段がない患者を診察のために自宅から病院へ搬送する際の最適なルートを検索することです。 そのためには、訪問先ペアを使用して「配車ルート (VRP) 解析」を実行します。つまり、2 つの訪問先 (ストップ) を関連付けおよび順序付けし、ワゴン車で乗客を迎えに行き、それぞれの目的地まで搬送できるようにします。 さらに、配車ルート解析レイヤーの他のフィーチャを使用して、追加の要件が満たされるようにします。 たとえば、乗客の移動時間が長くなりすぎないよう、訪問先ペアの最大移動時間を入力したり、乗客が診察時間に遅れないよう、訪問先にタイム ウィンドウを使用したりします。 車椅子を使用する乗客のために、特別指定を使用して、車椅子リフトを備えたワゴン車を使用できるようにします。 ルートが決定したら ArcGIS.com に公開して、運転者が Navigator からルートにアクセスできるようにします。
注意:
このチュートリアルを完了するには、ネットワーク データ ソースとして解析の入力データの地理をカバーするネットワーク データセットを使用して公開された、指定されたチュートリアル ネットワーク データセットである ArcGIS Online、または ArcGIS Enterprise ルート検索サービスを使用します。 ArcGIS Online をネットワーク データ ソースとして使用すると、クレジットが消費されます。
データの取得
このチュートリアルのデータは、ダウンロードして使用できます。
「データ ダウンロード ページ」に移動します。
ダウンロード ボタンをクリックしてファイルをローカルに保存します。
ダウンロードしたファイルを展開します。
マップの作成
マップを作成するには、次の手順を実行します。
ArcGIS Pro を起動します。
マップ テンプレートをクリックしてプロジェクトを作成します。 必要に応じて、プロジェクトの名前と位置を変更します。
OK をクリックします。
マップを含む新しいプロジェクトが表示されます。
プロジェクトへのチュートリアル データの追加
ネットワーク データセットは、道路システムの高機能なモデルです。 ネットワーク データセットには、道路の位置と属性だけでなく、どの道路が接続されているか、接続されている道路間のどのターンが許可または禁止されているかなどの、道路の相互関係に関する情報や、可能な移動パスや移動時間に影響する他の情報も含まれています。 VRP 解析では、ネットワーク データセットを参照して、ストップ間の最短距離のパスが特定されます。
注意:
ArcGIS Online を使用して解析する場合は、その解析で、ArcGIS Online クラウドに格納されている高品質な世界規模のネットワーク データセットが参照され、ArcGIS Online クレジットが使用されます。 また、自分のコンピューターのローカルに保存した独自のネットワーク データセットを使用するか、または ArcGIS Enterprise を使用して、独自のネットワーク データセットを使用する ルート検索サービスを公開 して Enterprise ポータルでサービスを構成し、ArcGIS Pro で利用することもできます。
ネットワーク データセットをマップに追加するには、次の手順を実行します。
カタログ ウィンドウ (デフォルトではアプリケーションの右側にあります) で フォルダー を右クリックし、フォルダー接続の追加
を選択します。フォルダー接続の追加 ダイアログ ボックスが表示されます。
チュートリアル データを置いたフォルダーを参照して、Network Analyst をダブルクリックし、Tutorial をクリックしてこのフォルダーを選択します。
OK をクリックします。
Tutorial フォルダーへの接続が作成されます。
次に、このフォルダーに含まれているネットワーク データセットの 1 つをマップに追加します。
注意:
ArcGIS Online または ArcGIS Enterprise ルート検索サービスをネットワーク データ ソースとして使用する場合は、ネットワーク データセットをマップに追加する必要はありません。
カタログ ウィンドウで、フォルダー > チュートリアル > SanFrancisco.gdb > 交通 の順に展開します。
Streets_ND (ネットワーク データセット アイコン
が付いています) をマップにドラッグします。ネットワーク データセットが コンテンツ ウィンドウとマップに追加されます。
必要に応じて、コンテンツ ウィンドウで Streets_ND を右クリックし、レイヤーにズーム
を選択して、サンフランシスコ エリアを表示します。デフォルトでは、交通量データで構築されたネットワーク データセットは、マップに追加されると、現在の時刻の交通状況を表示します。 このネットワーク データセットには履歴交通量データが含まれているため、現在の時刻と曜日の標準的な交通状況が表示されます。 このネットワーク データセット内のすべての道路に交通量が含まれているわけではないため、デフォルトでは交通量を含む道路だけが表示されます。
ネットワーク データセットによってカバーされるエリアに対して、ネットワーク解析を実行できます。
解析を実行するためにネットワーク データセットを表示する必要はありません。そこで次に、ネットワーク データセットを非表示にします。
コンテンツ ウィンドウで、Streets_ND をオフにして、ベースマップだけを表示します。
マップ上のワゴン車の拠点ロケーションを表すポイントを追加します。
カタログ ウィンドウで、Tutorial > SanFrancisco.gdb > Analysis の順に参照します。
カタログ ウィンドウで、CentralDepots レイヤーを右クリックして 現在のマップに追加
を選択します。注意:
レイヤーを カタログ ウィンドウからマップにドラッグして、マップに追加することもできます。
CentralDepots レイヤーが コンテンツ ウィンドウとマップに追加されます。
配車ルート (VRP) レイヤーの作成
「配車ルート (VRP) レイヤー」は、複数の配車ルート解析の設定と実行に必要な構造およびプロパティを提供します。 このレイヤーには、解析後の結果も含まれます。
解析 タブの ワークフロー グループで、ネットワーク解析 > 配車ルート (VRP)
の順にクリックします。VRP レイヤーが コンテンツ ウィンドウに追加されます。 このレイヤーには、解析の入力と出力を保持するいくつかのサブレイヤーが含まれます。
ルート レイヤーの作成時にサンフランシスコ ネットワークが コンテンツ ウィンドウ内にあったため、ルートはサンフランシスコ ネットワーク データセットを参照しています。
注意:
ネットワーク解析レイヤーの作成に使用されるネットワーク データ ソースを表示または変更するには、解析 タブの ワークフロー グループで、ネットワーク解析 ドロップダウン メニューをクリックして、ネットワーク データ ソース の下を確認します。
コンテンツ ウィンドウで、配車ルート (VRP) をクリックし、グループ レイヤーを選択します。
アプリケーションの中央上に VRP レイヤー タブが表示されます。
VRP レイヤー をクリックして、リボンで使用できる設定を表示します。
これらの設定を使用して、生成する VRP モデルを定義します。
ヒント:
VRP レイヤー タブは、コンテンツ ウィンドウで配車ルート レイヤーを選択した場合のみ表示されます。 また、複数の配車ルート レイヤーが存在する場合は、個別にレイヤーの設定を変更することも、複数のレイヤーを選択してそのすべてのレイヤーの設定を編集することもできます (それらのレイヤーが同じネットワーク データ ソースを共有している場合)。
訪問先の追加
このチュートリアル データにはスプレッドシートが用意されており、 患者の氏名、自宅住所、通院している病院の名前と住所、迎えに行く時間帯など、各患者に関する詳細情報が記録されています。 このスプレッドシートのフィールドとその内容は次のとおりです。
|
属性 |
説明 |
|---|---|
|
OrderName1 |
送迎を必要とする患者の名前 |
|
PatientAddress |
患者を車に乗せる場所 |
|
OrderName2 |
目的地の一意な名前 |
|
HospitalAddress |
患者が予約している病院の場所 |
|
PickFrom |
PatientAddress に患者を迎えに行く最早時刻 |
|
PickTo |
PatientAddress に患者を迎えに行く最遅時刻 |
|
TotalPassengers |
迎えに行く合計乗客数 |
|
MaxTransitTime |
患者がワゴン車で移動する最長時間 |
|
SpecialityNames |
乗客が必要とするアクセシビリティー ニーズ (車椅子など) を指定します。 |
この場合、乗客はそれぞれ決められた病院へ行く必要があるので、乗客と病院訪問は相互に関連しています。 このシナリオをモデリングするには、患者ロケーションと病院ロケーションの両方を訪問先ネットワーク解析クラスに読み込み、新しい訪問先ペア オブジェクトを使用してそれらを関連付けます。
ここでは、患者と病院の住所をジオコーディングし、その結果得られるポイントを訪問先として読み込みます。
カタログ ウィンドウで、チュートリアル データの場所を参照し、OrderPairs.xls ファイルを選択し、ダブルクリックします。
OrderPairs.xlsファイルが展開され、Patients$ というテーブルが表示されます。注意:
必要な Microsoft ドライバーがインストールされていない場合、エラー メッセージが表示されます。 「Microsoft Excel ファイルを操作するためのドライバーのインストール」についての詳細をご参照ください。
Patients$ テーブルを右クリックし、ショートカット メニューから テーブルのジオコーディング をクリックします。
テーブルのジオコーディング ガイド付きのワークフロー ウィンドウが表示されます。 最初のページには、これから実行する手順の説明が表示されます。
スタート ボタンをクリックします。
入力ロケーター パラメーターの横にある 参照 ボタンをクリックし、チュートリアル データが保存された場所を参照して、SanFranciscoLocator.loc を選択します。
OK をクリックします。
次へ をクリックします。
文頭が データはどのように構成されていますか? となっている質問で、ドロップダウン リストから 1 つのフィールド を選択します。

次へ をクリックします。
データ フィールド ドロップダウン リストで PatientAddress フィールドを選択して、次へ をクリックします。
まず、患者の自宅の住所をジオコーディングします。
出力 フィールド名で、新しいフィーチャクラス名として Patients_Geocoded が表示されていることを確認します。
次へ をクリックします。
カテゴリーで制限 ステップでは、何も更新しないでください。 完了 をクリックします。
テーブルのジオコーディング ジオプロセシング ツールの入力を確認し、ウィンドウの下部にある 実行 ボタン
をクリックします。
ジオコーディングの完了 ポップアップで いいえ をクリックします。
住所名が完全に一致したため、再照合プロセスを開始する必要はありません。 独自のワークフローでは、再照合によって一部の住所情報を削除する必要があることもあります。
次の変更を加えて手順 1 ~ 13 を繰り返し、患者の診察用に病院の場所をジオコーディングします。
手順 8 で HospitalAddress を選択します。
手順 9 で、参照ボタンをクリックして 名前 テキスト ボックスに「DestinationHospitals_Geocoded」と入力して、出力 名前フィールドを DestinationHospitals_Geocoded に変更します。 保存 をクリックします。
ヒント:
テーブルのジオコーディング ジオプロセシング ツールを上記の値で更新し、ガイド付きのワークフロー全体の設定を繰り返すことなくツールを再実行できます。
コンテンツ ウィンドウでこれら 2 つのジオコーディング結果レイヤーをオフにして、マップに表示されないようにします。
次の手順では、これらのレイヤーを訪問先ネットワーク解析クラスに読み込みます。
VRP レイヤー タブの 入力データ グループで、訪問先のインポート
をクリックします。ロケーションの追加 ウィンドウが表示されます。
入力ネットワーク解析レイヤー が 配車ルート (VRP) に設定され、サブ レイヤー が 訪問先 に設定されていることを確認します。
入力ロケーション のドロップダウン矢印をクリックし、Patients_Geocoded を選択します。
これは、前の手順で作成し、マップに自動的に追加されたポイント フィーチャクラスです。
フィールド マッピング で プロパティ から Name を選択し、フィールド名 パラメーターで USER_OrderName1 を選択します。
これは、訪問先をインポートする際、フィーチャクラス内の USER_OrderName1 フィールドを Name フィールドにマッピングする必要があることを示しています。
自動的にマップピングされない場合は、次のフィールドをマッピングします。
Description > USER_PatientAddress
TimeWindowStart > USER_PickFrom
TimeWindowEnd > USER_PickTo
PickupQuantity_1 > USER_TotalPassengers
フィールド マッピング で プロパティ から ServiceTime を選択し、デフォルト値 パラメーターに「2」を入力します。
読み込んだすべての患者住所ロケーションに ServiceTime 値 2 が適用されます。これは、患者がワゴン車に乗り込むときの平均時間 (分単位) を表します。
フィールド マッピング で プロパティ から MaxViolationTime を選択し、デフォルト値 パラメーターに「0」と入力します。
すべての MaxViolationTime プロパティをゼロに設定することで、指定の時間内に訪問先を訪問できるルートのみが検索されます。
残りのパラメーターをデフォルト設定のままにして OK をクリックします。
合計 15 レコードが訪問先属性テーブルに追加され、マップに表示されます。
次の変更を加えて手順 16 ~ 18 を繰り返します。
ステップ 18 で DestinationHospitals_Geocoded を選択します。
次のフィールド マッピングを作成します。
Name > USER_OrderName2
Description > USER_HospitalAddress
DeliveryQuantity_1 > USER_TotalPassengers
注意:
Name 属性の値は、訪問先ネットワーク解析クラスで一意にする必要があります。 この場合は、同じ病院に送迎する患者が多くいるため、 訪問先の Name 属性の値に病院の住所を使用すると、Name 属性の値が重複するため、配車ルート解析でエラー メッセージが返されます。
残りのパラメーターをデフォルト設定のままにして OK をクリックします。
合計 15 レコードが訪問先属性テーブルに追加され、マップに表示されます。
訪問先ペアの追加
患者を決められた病院へ送り届ける必要があります。 訪問先ペア ネットワーク解析クラスにオブジェクトを追加することで、患者の搬送先の病院や、搬送中にワゴン車に乗っていられる最大時間を指定する情報を追加できます。
VRP レイヤー タブの 入力データ グループで、インポート オプションのドロップダウン リストから 訪問先ペアのインポート
をクリックします。
ロケーションの追加 ウィンドウが表示されます。
以前にこのツールを使用して、フィーチャクラスから訪問先を読み込みました。 ここでは、このツールを使用して、Excel ファイルから OrderPairs テーブルにデータを読み込みます。
入力ネットワーク解析レイヤー が 配車ルート (VRP) に設定され、サブ レイヤー が 訪問先ペア に設定されていることを確認します。
入力ロケーション フィールドの横にある参照ボタンをクリックし、チュートリアル データの場所を参照して、OrderPairs.xls ファイル内から Patients$ テーブルを選択します。
次のフィールド マッピングが自動的に入力されていることを確認します。
FirstOrderName > OrderName1
SecondOrderName > OrderName2
MaxTransitTime > MaxTransitTime
残りのパラメーターをデフォルト設定のままにして OK をクリックします。
合計 15 レコードが OrderPairs テーブルに追加されます。
拠点の追加
この送迎会社では 3 か所を拠点としてワゴン車を運行します。これらの拠点のロケーションは、以前マップに追加した CentralDepots レイヤーに表示されます。 ここでは、これらのポイント フィーチャを 拠点 ネットワーク解析クラスに追加します。
VRP レイヤー タブの 入力データ グループで、拠点のインポート
をクリックします。ロケーションの追加 ウィンドウが表示されます。
入力ネットワーク解析レイヤー が 配車ルート (VRP) に設定され、サブ レイヤー が 拠点 に設定されていることを確認します。
入力ロケーション のドロップダウン矢印をクリックし、CentralDepots を選択します。
フィールド マッピング で プロパティ から 名前 を選択し、名前 が フィールド名 パラメーターに自動的に割り当てられていることを確認します。
残りのパラメーターをデフォルト設定のままにして OK をクリックします。
3 つのレコードが 拠点 属性テーブルに追加され、マップに表示されます。
ルートの追加
この送迎会社は 3 台のワゴン車を所有しており、いずれも乗車定員は 6 人です。 送迎用ワゴン車は拠点を出発し、すべての送迎が終了したら拠点に戻ります。 3 台のうち 1 台のワゴン車は中心街を運行し、車椅子用のリフトが装備されています。
各ワゴン車に対して 1 つずつ、計 3 つのルートを追加します。 このセクションでは、ルート 属性テーブルを使用してルートを追加します。 ロケーションの追加 ツールを使用して作成済みのテーブルをインポートしたり、配車ルートの追加 ジオプロセシング ツールを使用して同じパラメーターでルート セットを作成したりする方法もあります。 この場合、各ルートに十分な設定値があるため、値を直接テーブルに入力するのが最も簡単です。
コンテンツ ウィンドウで、ルート を右クリックして、ショートカット メニューから 属性テーブル を選択します。
各ルートの入力フィールドと出力フィールドを含む属性テーブルが表示されます。
クリックして、新しい行を追加します。 ボタンをクリックして、以下の 3 つのルートの情報を追加します:
NameStartDepotNameEndDepotNameCapacity_1Downtown
Downtown Depot
Downtown Depot
6
North Bay
North Bay Depot
North Bay Depot
6
East Bay
East Bay Depot
East Bay Depot
6

編集 タブをクリックし、編集の管理 グループにある 保存 ボタン
をクリックします。編集の保存 ダイアログ ボックスで、はい をクリックします。
ルート 属性テーブルを閉じます。
特別指定の追加
迎えに行く患者の一部は車椅子に乗っていますが、車椅子の患者が車両に乗降しやすいリフトを備えているワゴン車は 1 台のみです。 このため、特別指定を設定して、車椅子の患者がそのルートでのみ提供されるサポートを必要とすることを示します。 チュートリアル データに付属している Excel ドキュメントを確認すると、3 人の患者 (Tony、Tim、Bill) が車椅子の対応を必要としていることがわかります。また、中心街ルートのワゴン車のみが車椅子用のリフト機能を備えています。 次の一連の手順では、この情報を示す値を 訪問先特別指定 および ルート特別指定 属性テーブルに追加します。
最初に、訪問先特別指定の情報を入力します。
コンテンツ ウィンドウで、訪問先特別指定 を右クリックして、ショートカット メニューから 開く を選択します。
属性テーブルが表示され、各訪問先と特別指定に関する情報を入力できます。
クリックして、新しい行を追加します。 ボタンをクリックして、以下の情報を追加します:
OrderNameSpecialtyNameTony (Home)
Wheelchair
Tony (Doctor)
Wheelchair
Tim (Home)
Wheelchair
Tim (Doctor)
Wheelchair
Bill (Home)
Wheelchair
Bill (Doctor)
Wheelchair

編集 タブをクリックし、編集の管理 グループにある 保存 ボタン
をクリックします。編集の保存 ダイアログ ボックスで、はい をクリックします。
訪問先特別指定 属性テーブルを閉じます。
次に、ルート特別指定の情報を入力します。
コンテンツ ウィンドウで、ルート特別指定 を右クリックして、ショートカット メニューから 開く を選択します。
属性テーブルが表示され、特別指定に対応できる各ルートに関する情報を入力できます。
クリックして、新しい行を追加します。 ボタンをクリックします。
RouteNameに「Downtown」と入力します。SpecialtyNameに「Wheelchair」と入力します。編集 タブをクリックし、編集の管理 グループにある 保存 ボタン
をクリックします。編集の保存 ダイアログ ボックスで、はい をクリックします。
ルート特別指定 属性テーブルを閉じます。
ルート ゾーンの追加
この送迎会社で使用している 3 台のワゴン車は、訪問先を巡回できるエリアが決められています。 ここでは、ルート ゾーンを追加し、それらをワゴン車またはルートに関連付けます。
このセクションでは、フィーチャ作成 ウィンドウを使用してこれらのゾーンの境界線を描画しますが、ゾーンのデジタイズが完了している場合は、ロケーションの追加 ジオプロセシング ツールを使用してゾーンをインポートできます。
VRP レイヤー タブの 入力データ グループで、フィーチャ作成
をクリックします。選択した VRP レイヤーに関連付けられているフィーチャクラスのテンプレートを示す フィーチャ作成 ウィンドウが表示されます。
フィーチャ作成 ウィンドウで、配車ルート: ルート ゾーン を選択します。
マップ画面上で、次のように、市街地を囲むポリゴンを大まかにデジタイズします。

コンテンツ ウィンドウで、ルート ゾーン を右クリックして、ショートカット メニューから 属性テーブル を選択します。
属性テーブルが表示され、作成したルート ゾーンに関する情報を入力できます。
RouteNameの下にある最初の行をダブルクリックして値を編集し、「Downtown」と入力します。これは、このルート ゾーンに関連付けられているルートの名前です。
IsHardZoneの値が True に設定されていることを確認します。送迎ワゴン車は、ルート ゾーン外では送迎業務ができません。 この値を True に設定すると、ルート ゾーン内の訪問先のみがワゴン車に割り当てられます。
手順 3 ~ 6 を繰り返して、さらに 2 つのルート ゾーン (North Bay と East Bay) を追加します。

編集 タブをクリックし、編集の管理 グループにある 保存 ボタン
をクリックします。編集の保存 ダイアログ ボックスで、はい をクリックします。
ルート ゾーン 属性テーブルを閉じます。
配車ルート (VRP) 解析用のプロパティ設定
次に、配車ルート (VRP) 解析のプロパティを指定します。
VRP レイヤー タブの 移動モード で、モード が 運転時間 に設定されていることを確認します。
この移動モードは、U ターン ポリシー、道路制限ポリシー、時間コストおよび距離コストに使用する値など、複数の設定をカプセル化しています。
移動モード グループで、時間フィールドの単位 が 分、距離フィールドの単位 が マイル に設定されていることを確認します。
デフォルトの日付 グループで デフォルトの日付タイプ ドロップダウン リストから 曜日 を選択します。
曜日が表示されたドロップダウン リストから、月曜日 を選択します。
出力ジオメトリー グループで、出力ジオメトリの線形形状タイプ ドロップダウン リストから ネットワーク沿い を選択します。
注意:
出力ジオメトリー オプションはルート表示のみに影響し、VRP 解析の結果には影響しません。
ルート ゾーンを作成して、ルートと関連付けたため、空間クラスタリングをオフにする必要があります。
高度な設定 グループで、クラスター ドロップダウン メニューをクリックして、クラスタリングしない を選択します。
クラスタリングする を選択すると、解析の解決後に空間クラスタリングが自動的にオフになり、解決が完了したら、ルート ゾーンが空でない場合、訪問先の空間クラスタリングは無効になります。 という警告メッセージが表示されます。
解析の実行
VRP 解析を実行して、最適なルート割り当てを決定します。
VRP レイヤー タブで、実行
をクリックします。配車ルート解析により、各ワゴン車のルートが計算されます。 いずれも拠点を出発し、ワゴン車が 1 人以上の患者を乗せて、MaxTransitTime で指定した時間内に病院へ送り届けます。他の患者についても同じプロセスを繰り返し、すべての患者の送迎が終了したら拠点に戻ります。 各ルートでは、割り当てられたルート ゾーン内でのみ送迎を行います。

訪問先 属性テーブルを開き、ArriveTime フィールドを確認すると、患者の送迎時間を確認できます。 また、Routes サブレイヤーの属性テーブルの TotalTime フィールドを確認すると、各ルートの所要時間に関する情報を把握できます。
注意:
TimeWindowStart フィールドと TimeWindowEnd フィールドでは、12/30/1899 が今日と解釈されます。 詳細については、「日付と時刻」をご参照ください。