アーキテクチャとコンポーネント

移動と注文の状況を実装するには、オンデマンド配車と配達ソリューションのコンポーネント(Fleet Engine、Consumer SDK、Driver SDK)との連携が必要です。

  • Fleet Engine は、オンデマンド配車と配達ソリューションのバックエンド サービスです。ルートと車両の状態を管理します。Driver SDK、Consumer SDK、バックエンド サービスの間のトランザクションを処理します。バックエンド サービスは、REST 呼び出しまたは gRPC 呼び出しを使用して Fleet Engine と通信できます。

  • Consumer SDK は、一般ユーザー向けアプリに統合するクライアント ライブラリです。ドライバーの経路、残り距離、到着予定時刻の追跡など、ジャーニーの共有エクスペリエンスの提供を担います。Consumer SDK は、モバイル用(Android または iOS)またはウェブ用(JavaScript)のいずれかになります。

  • Driver SDK は、ドライバアプリに統合するクライアント ライブラリです。ドライバーの位置、ルート、残り距離、到着予定時刻で Fleet Engine を更新する役割を担います。また、ターンバイターン方式のナビゲーション手順をドライバーに提供する Navigation SDK もラップします。詳しくは、Google マップのナビゲーションをご覧ください。

次のアーキテクチャ図は、これらのコンポーネント間の関係を示しています。

アーキテクチャ

ルート、車両、ウェイポイント

Trip and Order Progress アプリケーションを作成するには、ルート、車両、ウェイポイントの操作が必要です。

ルート

ルートとは、乗客(または注文した食事)を、受け取り場所から降車場所(途中の中間地点を含む)まで運ぶ移動を指します。

Trip オブジェクトは、乗車場所、目的地、車両の現在地、移動ルート、中間地点、ルートタイプ(排他的または共有)をプログラマティックにカプセル化します。

乗り物

車両は、フリート内の車両を表します。Vehicle オブジェクトは、プログラマティックに車両の位置情報、現在のルートのリスト、現在の地点のリストをカプセル化します。

ウェイポイント

ウェイポイントはルート上の場所を表します。乗車場所や降車場所、通過時のマイルストーンなどを指定できます。プログラムでは、Waypoint オブジェクトに、地点の位置を地理座標のセット、地点のタイプ、地点を含むルートの識別子として格納します。

ルートと車両の両方にウェイポイントが含まれます。

  • ルートのウェイポイントのセットには、ルートに関連するすべてのウェイポイントが含まれます。ルートが他のルートと共有されている場合は、他のルートの地点が含まれることがあります。

  • 車両のウェイポイントのセットには、車両の残りのすべてのウェイポイント(複数のルートのウェイポイントを含む)が含まれます。

フローの例

次の図は、移動と注文の進行状況の一般的なフローを示しています。詳しくは、単一の目的地のルートを作成して表示するをご覧ください。

シーケンス図

次の手順では、サンプルフローを設定する方法について説明します。

  1. 車両を作成して現在地の共有を有効にして、車両の状態を [online] に設定します。Fleet Engine を使用して車両を作成します。車両の状態を online に設定するには、Fleet Engine または Driver SDK を使用します。

  2. ユーザーと車両をマッチングします。SearchVehicles() メソッドを使用して、車両から車両の候補リストを見つけることができます。

  3. Fleet Engine でルートを作成し、そのルートに車両を割り当て、そのルートをコンシューマー アプリに関連付けて、ドライバーに乗車場所と降車場所を提供します。

  4. Driver SDK は、到着予定時刻、距離、ルートを走行中に自動的に更新されます。ルートのステータスは、自身で更新する必要があります。

ルートと注文状況の実装を開始するには、単一の目的地のルートを作成して表示するをご覧ください。