Route Overview API

Route Overview API は、 DriverSDK.これを使用して、特定の車両のルート情報を取得したり、 1 回限りの取得で取得するか、更新用のリスナーを使用して継続的に取得します。「 Route Overview API では、次の種類の情報がサポートされています。

  • 車両の停車地、移動時間、距離を含む完全なルート計画
  • 各停車地間の経路のポリライン パス。

このドキュメントでは、アプリケーションの API との統合手順について説明します。

前提条件

  • alpha を使用して Android アプリを実行している必要があります。 DriverSDK v4.1.0 以降のチャンネルを使用する必要があります。アルファ版チャンネルをご利用いただけます Maven artifactId に transportation-driver-alpha を使用します。
  • この API は、Fleet Engine から提供されたルート情報を Deliveries API。これは、DriverSDK 上の API を介して提供できます。 (DeliveryDriverApi)または直接 Fleet Engine。

統合の手順

このセクションでは、Android ドライバアプリを統合するために必要な基本的な手順について説明します。 説明します。この手順では、次のことを前提としています。

  • 既存の Android アプリが Driver SDK
  • コンテキストを使用してアプリで DeliveryDriverApi を初期化している このオブジェクトは

詳しくは、 Android 用 Driver SDK のスタートガイド をご覧ください。

ステップ 0 - ルートの設定

すでに Fleet Engine をセットアップ済みで、 車両の停車と配達タスクの作成。

Fleet Engine に停車地とタスクの情報を読み込むには、配達車両が必要です 割り当てられていることを確認します。これは、Route Overview API では有効な API 認証情報を データを取得します。有効なルートは一連のルートと 各停車地は、その停車地に 1 つ以上の関連付けられている場合にのみ存在できます。 タスクを実行します。詳しくは、 Fleet Engine API 統合ガイド をご覧ください。

ステップ 1 - API を初期化する

関連する停車地とタスクを含む有効なルートを設定すると、 Route Overview API を初期化します。初期化は、インフラストラクチャの Fleet Engine と API 間の接続に必要なすべてのリソースが含まれます。ルート Overview API は、以前に使用したのと同じコンテキスト オブジェクトで初期化する必要があります。 DriverSDK で DeliveryDriverApi を初期化します。これは、このオブジェクトが 以前に DriverContext オブジェクトで定義したものと同じ車両 ID。次の この例は、RouteOverviewApi のインスタンスを作成する方法を示しています。


RouteOverviewApi api = RouteOverviewApi.getInstance();
if (api == null) {
    api = RouteOverviewApi.createInstance(context);
}

ステップ 2 - ルート変更イベントに車両を登録する

API の初期化が完了したので、VehicleRouteOverview を使用できます。 ルート概要機能を操作します。これにより アプリケーションは、ルート設定時に指定したルート情報を利用できます。 API イベント リスナーを使用して、イベントの更新やルートの取得を容易にします。

ルート変更イベントは、指定された停車地へのパスが 車両が更新されたり、停車地が再配置されたり、Fleet Engine が 到着予定時刻の情報。


vehicleRouteOverview.addOnRouteChangedEventListener(event -> {
    // handle route update events
});

ステップ 3 - API を有効にする

これでルート情報を利用する準備が整いました。次に、API を有効にして、 車両イベントに応答できるようにします。API は terraform init、 無効状態に設定して、ネットワーク帯域幅の不要な消費を防ぎます。

vehicleRouteOverview.setRouteOverviewEnabled(true);

これらの更新はいつでも一時停止できます。一時停止するには、 false の値。

ステップ 4 - Google マップにルートを描画する

RouteToVehicleStop のリストを取得したら、これを 説明します。たとえば、Google マップに経路のポリライン パスを描画できます。 作成します。次のコード スニペットは、ルートを描画する例を示しています。 各停車地の位置にマーカーが追加されます。

    GoogleMap googleMap = … // Instance of the Map view you are using
    ImmutableList<RouteToVehicleStop> route = event.newRoute();

    PolylineOptions routePolyline = new PolylineOptions().color(Color.BLUE);
    for (RouteToVehicleStop stop : route) {
        routePolyline.addAll(stop.path());

        MarkerOptions marker =
            new MarkerOptions().position(stop.vehicleStop().getWaypoint().getPosition());
        googleMap.addMarker(marker);
    }

    googleMap.addPolyline(routePolyline);
}

ルート全体を示す画像のスクリーンショット

これにより、右のスクリーンショットのようなビューが表示されます。

ステップ 5 - ルートのスナップショットを取得する

アプリから 1 回限りの呼び出しを発行して、インスタンスの 現在のルート情報を確認するには、次のメソッドを使用して data:

ListenableFuture<ImmutableList<RouteToVehicleStop> future = vehicleRouteOverview.getRouteToVehicleStops();
ImmutableList<RouteToVehicleStop> stops = future.get();

イベント リスナーを介してルートの更新をサブスクライブする代わりに、これを行うことができます。

ステップ 6 - クリーンアップする

アプリで経路の概要機能が不要になった場合は、以下を行う必要があります。 クリーンアップしますクリーンアップを行うと、不要なメモリ、処理、 ネットワーク消費を可視化できます。

特定のイベント リスナーを削除する

イベント リスナーが不要になった場合は、削除する必要があります。 できます。

vehicleRouteOverview.removeOnRouteChangedEventListener(listener);

すべてのイベント リスナーを消去

クリーンアップ ルーチンの一環として、登録されているすべてのイベント リスナーを一度に削除できます。

vehicleRouteOverview.clearEventListeners();

Route Overview API インスタンスをクリア

ルートの概要が不要になった場合、または追跡対象の車両の ID が変更された場合は、この API を呼び出して内部参照を消去できます。

vehicleRouteOverview.clearInstance();