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 das
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 das Fahrzeug aktualisiert, eine Haltestelle neu angeordnet oder die 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);
}
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();