L'API Route Overview è un prodotto Last Mile Fleet Solution basato sulla DriverSDK. Qui puoi recuperare informazioni sul percorso per un determinato veicolo, come recupero una tantum o continuativo, utilizzando un listener per gli aggiornamenti. La L'API Route Overview supporta i seguenti tipi di informazioni:
- Piano completo del percorso, inclusi la posizione delle fermate dei veicoli, i tempi di percorrenza e le distanze
- Il percorso della polilinea tra ogni fermata.
Questo documento descrive i passaggi per l'integrazione con l'API per la tua applicazione.
Prerequisiti
- La tua applicazione Android deve essere in esecuzione utilizzando la versione alpha
di DriverSDK v4.1.0 o superiore. Il canale alfa è disponibile
utilizzando
transportation-driver-alpha
per Maven arteId. - L'API utilizza le informazioni sulle route fornite da Fleet Engine tramite
API Deliveries. Può essere fornito tramite le API su DriverSDK
(
DeliveryDriverApi
) o direttamente a Fleet Engine.
Passaggi per l'integrazione
Questa sezione illustra i passaggi di base necessari per integrare l'app driver Android con l'API. Queste istruzioni si basano sui seguenti presupposti:
- Hai già un'app per Android che è già integrata con SDK driver
- Hai inizializzato
DeliveryDriverApi
nella tua app con un contesto che puoi trovare
Consulta Guida introduttiva all'SDK Driver per Android per maggiori dettagli.
Passaggio 0 - Configurazione del percorso
Puoi saltare questo passaggio se hai già configurato Fleet Engine e puoi creare soste dei veicoli e attività di consegna.
Per caricare le informazioni su fermate e attività su Fleet Engine, hai bisogno di un veicolo per le consegne e assegnato a un percorso valido. Questo perché l'API Route Overview richiede una convalida per recuperare i dati. Le route valide sono composte da una serie di tappe e fermate e una fermata può esistere solo se ne è associata almeno una dell'attività. Consulta le Guida all'integrazione delle API Fleet Engine per ulteriori informazioni.
Passaggio 1 - Inizializza l'API
Una volta stabilito un percorso valido con fermate e attività associate, puoi
inizializza l'API Route Overview. L'inizializzazione fornisce il framework
necessarie per la connessione tra Fleet Engine e l'API. Il percorso
L'API Panoramica deve essere inizializzata con lo stesso oggetto di contesto che utilizzavi
inizializza DeliveryDriverApi
in DriverSDK, poiché l'oggetto fa riferimento al
stesso ID veicolo definito in precedenza nell'oggetto DriverContext
. Le seguenti
illustra come creare un'istanza di RouteOverviewApi
.
RouteOverviewApi api = RouteOverviewApi.getInstance();
if (api == null) {
api = RouteOverviewApi.createInstance(context);
}
Passaggio 2: registra il veicolo per gli eventi di cambio di percorso
Ora che hai inizializzato l'API, puoi utilizzare lo strumento VehicleRouteOverview
per interagire con le funzionalità di panoramica del percorso. Ciò consente
per utilizzare le informazioni sul percorso fornite durante la configurazione del percorso.
Utilizza il listener di eventi dell'API per facilitare gli aggiornamenti degli eventi e il recupero del percorso.
Un evento di modifica del percorso si verifica ogni volta che il percorso verso una delle fermate assegnate quando il veicolo viene aggiornato, si riorganizza una fermata o quando Fleet Engine aggiorna informazioni sull'orario di arrivo stimato.
vehicleRouteOverview.addOnRouteChangedEventListener(event -> {
// handle route update events
});
Passaggio 3 - Abilita l'API
Ora che è tutto pronto per utilizzare le informazioni sulle route, devi abilitare l'API per per consentirgli di rispondere agli eventi del veicolo. Ricorda che l'API è inizializzata in disattivato per evitare un consumo superfluo di larghezza di banda di rete.
vehicleRouteOverview.setRouteOverviewEnabled(true);
Puoi mettere in pausa questi aggiornamenti in qualsiasi momento richiamando lo stesso metodo con
pari a false
.
Passaggio 4: traccia il percorso su una mappa di Google
Una volta ottenuto un elenco di RouteToVehicleStop
, puoi utilizzarlo nelle
un'applicazione. Ad esempio, puoi tracciare il percorso della polilinea in una mappa di Google.
in esecuzione in un'istanza Compute Engine. Il seguente snippet di codice mostra un esempio che traccia la route
una polilinea nella visualizzazione mappa e aggiunge indicatori sopra il punto di ogni fermata.
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);
}
Viene visualizzata una visualizzazione simile a quella dello screenshot a destra:
Passaggio 5 - Ottieni un'istantanea della route
Se vuoi che l'app effettui una chiamata una tantum per recuperare uno snapshot del informazioni sul percorso corrente, puoi utilizzare il seguente metodo per recuperarle dati:
ListenableFuture<ImmutableList<RouteToVehicleStop> future = vehicleRouteOverview.getRouteToVehicleStops();
ImmutableList<RouteToVehicleStop> stops = future.get();
Puoi farlo invece di iscriverti agli aggiornamenti del percorso tramite i listener di eventi.
Passaggio 6 - Pulisci
Se la tua app non ha più bisogno della funzionalità di panoramica del percorso, devi assicurarti che hai ripulito. Eseguire la pulizia evita memoria, elaborazione e il consumo della rete in uso nella tua applicazione.
Rimuovere un listener di eventi specifico
Devi rimuovere un listener di eventi quando uno specifico listener non è più attivo necessaria.
vehicleRouteOverview.removeOnRouteChangedEventListener(listener);
Cancella tutti i listener di eventi
Nell'ambito della tua routine di pulizia, puoi rimuovere tutti i diversi listener di eventi registrati contemporaneamente.
vehicleRouteOverview.clearEventListeners();
Cancella istanza API Route Overview
Ogni volta che la panoramica del percorso non è più necessaria o l'ID del veicolo monitorato è cambiato, puoi chiamare questa API per cancellare i riferimenti interni.
vehicleRouteOverview.clearInstance();