Architettura e componenti

L'implementazione di Trip and Order Progress comporta l'utilizzo di diversi componenti On-demand Rides and Deliveries Solution: Fleet Engine, SDK Consumer e SDK Driver:

  • Fleet Engine è il servizio di backend On-demand Rides and Deliveries Solution. È responsabile della gestione delle corse e dello stato dei veicoli. Gestisce le transazioni tra l'SDK Driver, l'SDK consumer e il servizio di backend, che può comunicare con Fleet Engine effettuando chiamate REST o gRPC.

  • L'SDK consumer è una libreria client da integrare nell'app consumer. È responsabile di presentare l'esperienza di condivisione del percorso, che include il monitoraggio del percorso del conducente, della distanza percorsa e dell'orario di arrivo stimato. L'SDK consumer può essere per dispositivi mobili (Android o iOS) o per il web (JavaScript).

  • L'SDK Driver è una libreria client da integrare nell'app del conducente. È responsabile dell'aggiornamento di Fleet Engine con la posizione del conducente, il percorso, la distanza rimanente e l'orario di arrivo stimato. Include inoltre l'SDK di navigazione, che fornisce istruzioni di navigazione passo passo per il conducente. Per ulteriori informazioni, consulta la sezione Navigazione con Google Maps.

Il seguente diagramma dell'architettura mostra la relazione tra questi componenti:

Architettura

Viaggi, veicoli e waypoint

La creazione di un'applicazione Trip and Order Progress richiede l'uso di viaggi, veicoli e waypoint.

Corse

Una corsa rappresenta un viaggio: la corsa che trasporta il consumatore (o il pasto ordinato) dal punto di prelievo a quello di consegna, inclusi i tappe intermedi lungo il percorso.

In modo programmatico, un oggetto Trip incapsula un luogo di prelievo, una destinazione, la posizione attuale del veicolo, il percorso da percorrere, i waypoint intermedi e il tipo di viaggio (esclusivo o condiviso).

Veicoli

Un veicolo rappresenta un veicolo della tua flotta. In modo programmatico, un oggetto Vehicle incapsula la posizione del veicolo, un elenco di corse in corso e un elenco di tappe correnti.

Waypoint

Un waypoint rappresenta una località lungo un percorso. Può trattarsi di un luogo di prelievo, di consegna o di un traguardo solo per il passaggio. A livello di programmazione, un oggetto Waypoint contiene la posizione del waypoint come insieme di coordinate geografiche, il tipo di waypoint e l'identificatore della corsa che include il waypoint.

Sia le corse che i veicoli contengono waypoint:

  • L'insieme di waypoint di una corsa contiene tutti i waypoint pertinenti alla corsa. Può includere waypoint per altri viaggi se un viaggio viene condiviso con altri viaggi.

  • L'insieme di waypoint di un veicolo contiene tutti i waypoint rimanenti per il veicolo, inclusi i waypoint di più corse.

Flusso di esempio

Il seguente diagramma mostra il tipico flusso di avanzamento della corsa e degli ordini. Per ulteriori informazioni, consulta Creare e visualizzare un viaggio con una sola destinazione.

Diagramma sequenza

I passaggi seguenti spiegano come configurare il flusso di esempio:

  1. Crea un veicolo, attiva la condivisione della posizione e poi imposta lo stato del veicolo su online. I veicoli vengono creati tramite Fleet Engine. Puoi impostare lo stato del veicolo su online tramite Fleet Engine o tramite l'SDK Driver.

  2. Abbina un cliente al tuo veicolo. Puoi usare il metodo SearchVehicles() per trovare un elenco dei potenziali veicoli del tuo parco risorse.

  3. Crea una corsa in Fleet Engine, assegna il veicolo a quella corsa, associala all'app dei consumatori e fornisci al conducente i luoghi di prelievo e consegna.

  4. L'SDK Driver aggiorna automaticamente orario di arrivo stimato, distanza e percorso durante il viaggio. Sei responsabile dell'aggiornamento dello stato della corsa.

Per iniziare a implementare Viaggio e Avanzamento dell'ordine, consulta Creare e visualizzare un viaggio di destinazione singola.