このドキュメントでは、Fleet Engine のオンデマンド ルートサービスについて説明します。Fleet Engine とはを読み、必要な Fleet Engine サービス機能について理解していることを前提としています。
このドキュメントをお読みになる際は、次の点に注意してください。
- ルートを車両に割り当てることで、ルートとそのルートを完了した運転手との現実世界での関連性をモデル化できます。Fleet Engine で車両がどのように機能するかを詳しく理解するには、車両の概要をご覧ください。
- このドキュメントでは、オンデマンド ルートにのみ適用される車両要素についても説明します。
- オンデマンド ルートの Fleet Engine は、
Trip
とVehicle
の 2 つのリソースを使用します。Fleet Engine は、gRPC サービスと REST インターフェースの両方を提供します。
オンデマンド ルートとは
Fleet Engine では、さまざまな交通手段の目標を達成できるオンデマンド ルートを「ルート」と呼びます。たとえば、次のようなルートがあります。
- 乗客: 1 人以上の乗客を乗車地から降車地まで輸送します。
- 食品と商品: 特定のビジネス拠点から 1 件以上の食品注文を受け取り、その注文を 1 人以上の受取人の所在地に配達します。
ルート要素
次の図は、ルートの基本要素(割り当てられた車両 ID、ルートのステータス、ルートのウェイポイント)を示しています。ウェイポイントの種類は、乗車、途中、降車の各ステージによって異なります。どのルートでも、途中の目的地またはウェイポイントは任意です。画像の例では、車両が集荷場所に到着しています。
ルートのデータモデル
バックエンドでルートを車両に割り当てる際は、その車両にスケジュールされている他のルートについても把握する必要があります。そのため、次の図は、Trip
リソースのデータモデルと、関連する Vehicle
リソースの図を示しています。両方の図を確認して、2 つのリソースの関係を確認できます。次の点に注意してください。
- ルートには ID で車両が割り当てられます。
- ルート - 車両の関連付けは多対 1 です。つまり、特定のルートはその車両のスケジュールに登録されている唯一のルートである場合もあれば、その車両の多くのルートの 1 つである場合もあります。
- ルート オブジェクトには、ルート ウェイポイントの 2 つのリストが含まれています。1 つはルート自体用、もう 1 つは割り当てられた車両用です。これについては、このドキュメントで詳しく説明します。
- オンデマンド ビークルには、ルートのウェイポイントのリストも含まれます。このドキュメントで詳しく説明します。
ルート データモデル
車両データモデル
旅行の種類
サービスがルートを作成するときに、tripType
フィールドを EXCLUSIVE
または SHARED
のいずれかに設定できます。
限定ルート
専用便とは、他の便と重複しないルートを運行し、他の便の前にまたは後に運行を完了する便です。つまり、システムが排他的ルートを割り当てる場合、車両に割り当てることができるのは、同時にではなく順番に完了するルートのみです。たとえば、次の特性を持つ限定公開のルートを作成できます。
- スケジュールに他のルートがない車両の、1 回の乗車と 1 回の降車があるルート。
- スケジュールに他のルートがない車両の乗車地、中間ウェイポイント、降車地があるルート。
- 車両のすでにスケジュールされているルートの最後に追加された乗車と降車があるルート。この場合、各ルートの対象は互いに排他的ですが、ルートの順序は連続しています。また、必要に応じて、途中の目的地を追加することもできます。
共有ルート
共有ルートとは、他のルートの予約と重複するルートです。これらのルートタイプの場合、システムは、インターリーブ デスティネーションと同時に実行されるように割り当てることができます。たとえば、1 つのルートの降車が別のルートの乗車の後になる場合があります。また、共有ルートでは中間地点を指定できない場合があります。
通常、共有ルートを使用するのは、ルートのシナリオで説明されている共有プーリング シナリオのいずれかの場合です。
ルートのウェイポイント
Google マップでは、ウェイポイントはルート上の場所で、通常は緯度と経度の座標で定義されます。オンデマンド ルートのウェイポイントは TripWaypoint
オブジェクトで表され、次のような追加情報が含まれます。
- 旅行 ID
WaypointType
(乗車地、中間地、降車地のいずれか)- 前のルートのウェイポイントと現在のルートのウェイポイント間の経路と距離の情報
- ルートの経路に沿った交通状況
- ルートのウェイポイントまでの移動時間と到着予定時刻
以下のリファレンスをご覧ください。
ルートのウェイポイントの種類
ルート ウェイポイントは、車両のルートの一般的なライフサイクルに関連して定義されます。
- 集荷地のウェイポイント - ドライバーがその後の配達のために食事注文を受け取る場合や、ドライバーが後で降車させる乗客を乗せる場合など、ルートの始点または開始地に使用します。
- 中間ウェイポイント - さまざまな目的で使用できる中間目的地。たとえば、同じ予約者の乗客を 1 人降ろした後、まだ乗客が残っているため、乗車自体が完了していない場合などです。このウェイポイントは任意で、限定的なルートの場合にのみ使用できます。
- 降車地のウェイポイント - 残りの乗客が車両から降りるときなど、ルートの最終地点に使用します。
ルートのウェイポイント リスト
Trip
エンティティには、2 つの地点のリストが含まれます。それぞれが TripWaypoint
型の繰り返しフィールドです。1 つのリストには、ルート自体に必要なフィールドが記述され、もう 1 つのリストには、ルートに関連付けられている車両の残りのすべてのウェイポイントが記述されます。これにより、ルートや車両のルート全体など、ルートのすべての要素を把握できます。
- 車両の残りのウェイポイント -
vehicle_waypoints
というフィールド。車両に割り当てられたすべてのルートの残りのすべてのウェイポイントが含まれます。 - ルートの残りのウェイポイント -
remaining_waypoints
というフィールド。ルートには、ルートの最終的な降車地点に到着する前に車両が順番に移動する必要があるウェイポイントが含まれています。ルートのシナリオのシナリオをご覧ください。- スケジュールに他のルートがない車両に割り当てられた単一目的地のルートの場合、車両が乗車地点のウェイポイントから移動していないと仮定すると、乗車地点と降車地点のみが含まれます。
- 車両が他のルートの運行も予定されている場合、そのルートの残りのウェイポイントには、そのルートの乗車場所ウェイポイントに到達する前に車両が通過する必要がある他のルートのすべてのウェイポイントが含まれます。たとえば、車両がルート A の乗車場所に向かっている連続ルートの場合、ルート B の残りのウェイポイントには、ルート A の乗車場所のウェイポイントが含まれます。Fleet Engine は、
vehicle_waypoints
フィールドを使用してこの情報を計算します。
Trip
エンティティのリファレンス(gRPC または REST)をご覧ください。
ルートのシナリオ
次の図は、サポートされているさまざまなルート シナリオを示しています。このようなシナリオでは、共有プーリング ルートのみが SHARED
タイプで、それ以外はすべて EXCLUSIVE
です。図には、ルートを実行している車両のルート ステータスと残りのウェイポイントも示されます。これらのコンセプトについては、このガイドで後述します。
1 つの目的地への旅行
単一デスティネーションの乗車は、乗車場所と降車場所が 1 つの EXCLUSIVE
乗車です。たとえば、ドライバーがある場所から乗客を乗せて別の場所に移動したり、レストランから食事の配達注文を受け取って顧客に配達したりします。
複数の目的地を訪れる旅行
複数の目的地へのルートとは、乗車地と降車地の間に 1 つ以上の中間目的地を含む EXCLUSIVE
ルートです。たとえば、3 人の乗客が 1 人のスマートフォンから一緒に乗車を予約しますが、それぞれ目的地が異なります。
連続した旅行
連続したルートとは、連続して発生する一連の独立したルートを含む EXCLUSIVE
ルートです。チェーン内の各ルートの目的地は、単一または複数にできます。このシナリオでは、ドライバーは現在の乗車を完了する前に別の乗客を乗車させることを約束します。
これらのルートを割り当てることができるのは、連続したスケジュール設定を許可する車両に限られます。Vehicle
の REST リファレンスと gRPC リファレンスをご覧ください。
相乗りのルート
共有プール ルートには、他のルートタイプとは異なる点があります。まず、EXCLUSIVE
ではなく SHARED
のルートである必要があります。この場合、車両は排他的なルートの場合のように順番にルートを実行するのではなく、同時に実行します。共有型の乗合便は他の便とルートを共有しますが、乗車場所と降車場所の情報は共有されません。代わりに、各ルートには独自の予約が適用されるため、1 つのルートを予約したエンドユーザーは、自分のルート以外のルートの乗車地や目的地の情報を確認できません。次に例を示します。
- 空港シャトル サービスは、さまざまな乗客を自宅から乗車し、ルート沿いのさまざまな空港ターミナルに降ろします。2 人目のユーザーがお客様の消費者向けアプリを使用してルートの進行状況を追跡している場合、そのアプリには 2 人目のユーザーのルートの一部しか表示されず、1 人目のユーザーの乗車地や降車地は表示されません(2 人目のユーザーのルートの一部が 1 人目のユーザーのルートの一部と重複している場合でも同様です)。
- フード デリバリー ドライバーが、同じレストランから 3 件の注文を受け取り、異なる顧客宅に配達します。ユーザー 3 は、消費者向けアプリを使用して、自分の注文した料理の集荷場所と集荷時間、ドライバーのルートを確認できますが、ユーザー 1 とユーザー 2 の料理の配達場所は確認できません。
ルートのステータスとそのライフサイクル
このセクションでは、乗車のステータスとその車両への影響、オンデマンド乗車の割り当てと管理で発生するさまざまなシナリオについて説明します。
通常、ルートのステータスは、作成から完了までさまざまな状態を経ます。大まかに言えば、ルートのステータスによって、ルートはアクティブまたは非アクティブになります。ルートのステータスは、Fleet Engine のさまざまなユースケース シナリオに影響します。また、ルート全体での車両の進行状況を特定する機能にも影響します。このドキュメントの残りの部分では、これらのシナリオについて説明します。
次の表に、アクティブと非アクティブの種類別のルートのステータスを示します。
アクティブなルートのステータス | 無効なルートのステータス |
---|---|
NEW UNKNOWN_TRIP_STATUS ENROUTE_TO_PICKUP ARRIVED_AT_PICKUP ENROUTE_TO_INTERMEDIATE_DESTINATION ARRIVED_AT_INTERMEDIATE_DESTINATION ENROUTE_TO_DROPOFF
|
COMPLETE CANCELED
|
ルートのステータスと残りの車両のルートポイント
すでにルートを実行している車両に追加のルートを割り当てる場合は、車両の残りのルートポイントと、ルートのステータスがそれらの残りのルートポイントに与える影響の関係を理解する必要があります。
たとえば、新しいライドシェア リクエストを、限定乗車のみをサポートし、乗車を完了している車両に割り当てることができます。この場合、旅行を連続した旅行としてモデル化します。このようなルートを割り当てる場合、システムは新しいルートのウェイポイントが進行中のルートのウェイポイントの後に表示されるようにする必要があります。
車両の走行中、Fleet Engine は、車両が次の目的地に向かっているか、完了したことを報告した場合にのみ、車両の残りのウェイポイントのリストから前のルートのウェイポイントを削除します。つまり、次のいずれかです。
- ENROUTE_TO_INTERMEDIATE_DESTINATION
- ENROUTE_TO_DROPOFF
- 完了
ルートのステータスが COMPLETED
に変更されると、Fleet Engine は車両の残りのウェイポイント リストからルートの最後のウェイポイントを削除します。
一方、ウェイポイントに到着したことを示すステータスの変更は、通常、車両の残りのウェイポイントのリストには影響しません。
- ARRIVED_AT_PICKUP
- ARRIVED_AT_INTERMEDIATE_DESTINATION
- ARRIVED_AT_DROPOFF
オンデマンド ライドサービスの例で説明すると、ドライバーが乗客の自宅から乗車し、会場まで乗客を送り、乗客がタスクを完了するまで待機し、乗客を自宅まで送り届けたとします。最初に作成されたルートには、PICKUP
、INTERMEDIATE
、DROPOFF
の 3 つのウェイポイントがあります。次の表は、ルートのさまざまな状態における残りのウェイポイントのクエリの結果を示しています。
ルートのステータス | 残りのウェイポイント |
---|---|
ARRIVED_AT_PICKUP |
PICKUP INTERMEDIATE DROPOFF
|
ENROUTE_TO_INTERMEDIATE_DESTINATION |
PICKUP INTERMEDIATE DROPOFF
|
ARRIVED_AT_INTERMEDIATE_DESTINATION |
PICKUP INTERMEDIATE DROPOFF
|
ENROUTE_TO_DROPOFF |
PICKUP INTERMEDIATE DROPOFF
|
ARRIVED_AT_DROPOFF |
PICKUP INTERMEDIATE DROPOFF
|
COMPLETE |
PICKUP INTERMEDIATE DROPOFF |
再割り当てまたはキャンセルされたルートのステータスの要件
次のいずれかを行う前に、ルートのステータスを NEW
または CANCELED
に設定する必要があります。
- ルートの車両の割り当てを変更する場合。たとえば、ドライバーがルートの車両割り当てを拒否し、別の車両に再割り当てする必要がある場合などです。
- ルートの車両割り当てを消去する。たとえば、ドライバーがルートの途中で乗車をキャンセルし、車両の割り当てを消去する場合は、ステータスが
NEW
またはCANCELED
である必要があります。
ルートのステータスに基づく検索結果
特定の車両で SearchTrips
サービスを使用すると、SearchTripsResponse
にアクティブなルートのリストが返されます。アクティブなルートは、Vehicle
エンティティの active_trips
フィールドにも表示されます。詳細については、SearchTripsResponse
リファレンス(gRPC または REST)をご覧ください。
したがって、ステータスがアクティブのすべてのルート トリップが active_trips
フィールドに表示されますが、完了したルート トリップやキャンセルされたルート トリップは表示されません。