Questa guida mostra come recuperare i dati di viaggio direttamente da Fleet Engine, come alternativa all'utilizzo dell'SDK consumer. Puoi utilizzare questo approccio per un maggiore controllo sull'esperienza dell'utente finale, sfruttando al contempo la posizione del veicolo, l'orario di arrivo stimato e i percorsi precisi e in tempo reale di Fleet Engine.
Per maggiori dettagli sull'utilizzo dell'SDK consumer, consulta Condividere i percorsi per le corse on demand.
Recuperare informazioni sulla corsa
Per recuperare le informazioni sulla corsa direttamente da Fleet Engine, chiama il metodo GetTrip
, specificando la vista JOURNEY_SHARING_V1S
. Consulta la documentazione di riferimento per RPC o
REST.
In genere il server esegue il polling del servizio di corsa per conoscere lo stato di ogni corsa
mentre il passeggero monitora attivamente l'avanzamento del veicolo. Gli aggiornamenti della posizione del veicolo si verificano in genere ogni 10 secondi e il sistema dovrebbe eseguire il polling alla stessa frequenza. Il campo Trip.last_location.update_time
può essere monitorato per verificare se sono stati apportati aggiornamenti dalla chiamata precedente a GetTrip
.
static final String PROJECT_ID = "my-rideshare-co-gcp-project";
static final String TRIP_ID = "trip-A";
String tripName = "providers/" + PROJECT_ID + "/trips/" + TRIP_ID;
GetTripRequest getTripRequest =
GetTripRequest.newBuilder()
.setName(tripName)
.setView(JOURNEY_SHARING_V1S)
.build();
Trip trip = tripService.getTrip(getTripRequest);
L'oggetto Trip
risultante ha i seguenti campi compilati con le informazioni più recenti disponibili per la corsa:
name |
trip_status |
remaining_waypoints |
vehicle_id |
trip_type |
last_location |
number_of_passengers |
pickup_point |
view (== JOURNEY_SHARING_V1S) |
actual_pickup_point |
intermediate_destinations |
intermediate_destination_index |
pickup_time |
intermediate_destinations_version |
dropoff_point |
actual_dropoff_point |
dropoff_time |
|
Recupera le tappe di viaggio rimanenti
L'entità Trip contiene un campo ripetuto di tipo TripWaypoint
. Questo campo include tutti i waypoint che il veicolo dovrà percorrere, in ordine, prima del punto di consegna finale di questa corsa. La specifica della visualizzazione Condivisione del viaggio indica a Fleet Engine di inserire le informazioni aggiornate in remaining_waypoints[0]TripWaypoint
. In altre visualizzazioni diverse da Condivisione del viaggio, questo waypoint solitamente non riflette la posizione più recente del veicolo assegnato. Consulta il riferimento per RPC o REST.
Per ulteriori informazioni, consulta Stato del viaggio e tappe rimanenti del veicolo nella guida Introduzione ai viaggi.
Ecco un esempio del campo remaining_waypoints
per una corsa, Percorso A:
| |||||||||||||||||||||
|
Con corse consecutive e di raggruppamento condivise, questo elenco può contenere tappe di altre corse da attraversare prima di questa corsa. Ad esempio, consideriamo lo scenario in cui la corsa B è assegnata allo stesso veicolo della corsa A. Il campo remaining_waypoints
per il viaggio A verrebbe quindi compilato come segue.
La maggior parte dei campi è stata omessa per brevità, ma verrebbero completati in modo coerente con l'esempio precedente.
[0] | trip_id = "trip_A" |
---|---|
waypoint_type = PICKUP_WAYPOINT_TYPE | |
[1] | trip_id = "trip_B" |
waypoint_type = PICKUP_WAYPOINT_TYPE | |
[2] | trip_id = "trip_B" |
waypoint_type = DROP_OFF_WAYPOINT_TYPE | |
[3] | trip_id = "trip_A" |
waypoint_type = DROP_OFF_WAYPOINT_TYPE |
Il campo remaining_waypoint
della corsa B verrebbe compilato in modo simile, ma sarebbero presenti solo le tre prime voci, poiché la stazione di ricarica della corsa A non fa parte del percorso della corsa B.