このセクションのドキュメントでは、Google マップ モビリティのオンデマンド ルート サービスを使用してルートを作成して操作する方法について説明します。次の内容を理解していることを前提としています。
- Fleet Engine: Fleet Engine の実装の詳細、リクエスト メカニズム、セキュリティに精通している必要があります。詳細については、Fleet Engine サービスとはと、Fleet Engine を設定するのセキュリティ トピックをご覧ください。
- オンデマンド サービスに関する車両の基本。車両の概要をご覧ください。
- オンデマンド サービスのルートの基本。オンデマンド ルートをご覧ください。
使用する TripService
は、gRPC と REST で使用できます。わかりやすくするため、フィールド参照は gRPC 規則に従います。
オンデマンド サービスの Fleet Engine では、ルートとは、ユーザーからのフード デリバリーまたは乗車リクエストのフルフィルメントをモデル化するルートの一種です。ルートには、ルートの進行に応じて Fleet Engine に報告するステータス(NEW
、ENROUTE_TO_PICKUP
など)があります。ルート ステータスは、車両に割り当てられた位置情報ウェイポイントに対応しています。フリート エンジンは、ルートの更新ごとにこれらの車両ウェイポイントを変更します。ルートや車両との関係について詳しくは、Fleet Engine の基本のオンデマンド ルートをご覧ください。
ルートのライフサイクル
Fleet Engine で各ルートを追跡するには、まず Trip
エンティティを作成する必要があります。詳しくは、gRPC または REST をご覧ください。
次の表に、システムで作成されたルートのエンドツーエンドのフロー例と、Fleet Engine でのライフサイクル ステージを示します。Fleet Engine が設定され、ルートに割り当てる車両があり、ドライバー アプリで位置情報の更新が有効になっていることを前提としています。Driver SDK: オンデマンド ルートをご覧ください。
1 | 予約リクエストを受信する。 | Fleet Engine の乗車が開始する前に、予約システムはまず、アプリまたは他の予約システムを通じて、消費者から配車または配達のリクエストを受け取ります。システムは、CreateTrip を使用して、乗車地点などの必須フィールドを含むルート エンティティを作成します。この時点で、乗客や乗車場所などの他のフィールドを設定することも、車両が割り当てられるまで待機することもできます。単一の目的地へのルートを作成するをご覧ください。 |
2 | 車両を割り当てる。 | システム内で直接車両をルートに割り当て、割り当てをフリート エンジンに報告するか、車両を検索サービスを使用して車両を検索し、ルート属性と車両属性の両方でフィルタして、ルートを完了するのに最適な車両を見つけることができます。検索範囲内のオンライン車両は、Driver SDK から提供される位置情報の更新を通じて、近接性を通知します。
|
3 | ルートを更新する。 | ドライバーが乗車を承認し、乗車場所へのナビを開始すると、システムは乗車ステータスを NEW から ENROUTE_TO_PICKUP に更新します。ルート全体で車両の位置情報をポーリングします。これは、アプリからバックエンドへの直接接続を介して行うことも、Fleet Engine をポーリングして行うこともできます。Fleet Engine は、Driver SDK から車両の位置情報の更新ストリームを継続的に受信します。システムは、各ルートのマイルストーンを Fleet Engine に報告します。Fleet Engine は、それに応じて車両のウェイポイント リストを更新します。 |
4 | お客様とジャーニーを共有する。 | Fleet Engine は、Consumer SDK がルートの詳細と車両の位置情報を利用できるようにします。Consumer SDK はリスナーを使用してルートの更新を受け取ると、それをコンシューマ アプリに表示します。Fleet Engine は、予定時刻、残りの距離、ルート、車両の残りのルート上の地点を自動的に更新します。詳しくは、オンデマンド ルートのルートを共有するをご覧ください。 |
5 | ルートを完了する。 | 車両がルートの目的地のウェイポイントに到達し、ドライバーがルートの完了を示すと、Fleet Engine で TripStatus が COMPLETE に設定されます。車両と同様に、ルート エンティティはステータスに関係なく 7 日間 Fleet Engine 内でアクティブなままになり、その後削除されます。 |
ルート シーケンス フロー
次の図は、このフローの詳細を示しています。