API für Routenübersicht

Die Route Overview API ist ein Produkt für die Last Mile Fleet Solution, das auf der DriverSDK. Damit können Sie Routeninformationen für ein bestimmtes Fahrzeug abrufen, Entweder als einmaliger Abruf oder kontinuierlich mithilfe eines Listeners für Updates. Die Die Route Overview API unterstützt die folgenden Arten von Informationen:

  • Vollständiger Routenplan, einschließlich Haltestellenpositionen, Fahrtzeiten und Entfernungen
  • Der Polylinienpfad der Route zwischen den einzelnen Haltestellen.

In diesem Dokument werden die Integrationsschritte der API für Ihre Anwendung beschrieben.

Vorbereitung

  • Ihre Android-App muss mit der Alphaversion ausgeführt werden. Version des DriverSDK 4.1.0 oder höher. Der Alphakanal ist verfügbar indem Sie transportation-driver-alpha für die Maven ArtifactId verwenden.
  • Die API verarbeitet Routeninformationen, die von Fleet Engine über die Deliveries API. Dies kann entweder über die APIs im DriverSDK erfolgen (DeliveryDriverApi) oder direkt an Fleet Engine senden.

Integrationsschritte

In diesem Abschnitt werden die grundlegenden Schritte zur Integration der Android-Treiber-App beschrieben. mit der API. In dieser Anleitung wird von folgenden Voraussetzungen ausgegangen:

  • Sie haben bereits eine Android-App, die bereits in den Treiber-SDK
  • Sie haben die DeliveryDriverApi in Ihrer App mit einem Kontext initialisiert. Objekt, das Sie finden können,

Weitere Informationen finden Sie unter Erste Schritte mit dem Treiber-SDK für Android .

Schritt 0: Routen einrichten

Sie können diesen Schritt überspringen, wenn Sie Fleet Engine bereits eingerichtet haben und Haltestellen und Lieferaufgaben erstellen.

Sie benötigen ein Lieferfahrzeug, um die Haltestellen- und Aufgabeninformationen in Fleet Engine zu laden , die einer gültigen Route zugewiesen sind. Das liegt daran, dass für die Route Overview API gültige um Daten abzurufen. Gültige Routen bestehen aus einer Reihe von Wegpunkte und Haltestellen. Eine Haltestelle kann nur existieren, wenn ihr mindestens ein . Weitere Informationen finden Sie in der Integrationsleitfaden für die Fleet Engine API .

Schritt 1 – API initialisieren

Nachdem Sie eine gültige Route mit den zugehörigen Haltestellen und Aufgaben erstellt haben, können Sie Initialisieren der Route Overview API. Initialisierung liefert das Framework für die Verbindung zwischen Fleet Engine und der API. Die Route Die Übersichts-API sollte mit demselben Kontextobjekt initialisiert werden, das Sie für diesen Vorgang verwendet haben. Initialisieren Sie DeliveryDriverApi im DriverSDK, da das Objekt auf den Fahrzeug-ID, die zuvor in Ihrem DriverContext-Objekt definiert wurde. Die folgenden Das Beispiel zeigt, wie eine Instanz von RouteOverviewApi erstellt wird.


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

Schritt 2: Fahrzeug für Routenänderungen registrieren

Nachdem Sie die API initialisiert haben, können Sie jetzt den VehicleRouteOverview verwenden. , um mit den Funktionen der Routenübersicht zu interagieren. Dadurch können Ihre -Anwendung die Routeninformationen verarbeiten, die Sie während der Routeneinrichtung angegeben haben. Verwenden Sie den API-Ereignis-Listener, um Ereignisaktualisierungen und den Routenabruf zu vereinfachen.

Ein Routenänderungsereignis tritt immer dann auf, wenn der Pfad zu einer der Haltestellen wenn das Fahrzeug aktualisiert wird, eine Haltestelle neu angeordnet wird oder wenn Fleet Engine Informationen zur voraussichtlichen Ankunftszeit.


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

Schritt 3 – API aktivieren

Jetzt, da Sie bereit sind, Routeninformationen zu verarbeiten, müssen Sie die API aktivieren, um auf Fahrzeugereignisse reagieren kann. Denken Sie daran, dass die API in einem deaktiviert, um eine unnötige Nutzung der Netzwerkbandbreite zu vermeiden.

vehicleRouteOverview.setRouteOverviewEnabled(true);

Sie können diese Updates jederzeit anhalten, indem Sie dieselbe Methode mit der Methode Wert von false.

Schritt 4: Route auf einer Google-Karte zeichnen

Sobald Sie eine Liste mit RouteToVehicleStop erhalten haben, können Sie sie in Ihrem . Sie können beispielsweise den Polylinienpfad der Route in einer Google-Karte zeichnen. Instanz. Das folgende Code-Snippet zeigt ein Beispiel für das Zeichnen der Route. in der Kartenansicht und fügt Markierungen über jeder Haltestellenposition hinzu.

    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);
}

Screenshot mit einer Routenübersicht

Daraufhin wird eine Ansicht angezeigt, die dem Screenshot auf der rechten Seite ähnelt:

Schritt 5: Routen-Snapshot abrufen

Wenn Sie möchten, dass Ihre Anwendung einen einmaligen Aufruf sendet, um einen Snapshot des aktuellen Routeninformationen abrufen möchten, können Sie Daten:

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

Dies können Sie tun, anstatt Routenaktualisierungen über Ereignis-Listener zu abonnieren.

Schritt 6 – Bereinigen

Wenn Ihre App die Funktion „Routenübersicht“ nicht mehr benötigt, sollten Sie die Sie aufgeräumt haben. Durch die Bereinigung werden unnötige Speicher-, Verarbeitungs- und des Netzwerkverbrauchs in Ihrer Anwendung.

Einen bestimmten Event-Listener entfernen

Sie sollten einen Event-Listener entfernen, wenn ein bestimmter Listener nicht mehr notwendig ist.

vehicleRouteOverview.removeOnRouteChangedEventListener(listener);

Alle Event-Listener löschen

Im Rahmen der Bereinigung können Sie alle gleichzeitig registrierten Ereignis-Listener entfernen.

vehicleRouteOverview.clearEventListeners();

Route Overview API-Instanz löschen

Wenn die Routenübersicht nicht mehr benötigt wird oder sich die ID des verfolgten Fahrzeugs geändert hat, können Sie diese API aufrufen, um interne Verweise zu löschen.

vehicleRouteOverview.clearInstance();