Questa guida illustra come recuperare i dati dei viaggi direttamente da Fleet Engine, come alternativa all'utilizzo dell'SDK consumer. Puoi utilizzare questo approccio per avere un maggiore controllo sull'esperienza dell'utente finale, continuando a usufruire della posizione, dell'orario di arrivo stimato e del percorso accurati e in tempo reale di Fleet Engine.
Per informazioni dettagliate sull'utilizzo dell'SDK Consumer, consulta Condividere i percorsi per le corse on demand.
Recuperare le informazioni sulla corsa
Per recuperare le informazioni sui viaggi direttamente da Fleet Engine, chiama il metodo GetTrip
specificando la visualizzazione JOURNEY_SHARING_V1S
. Consulta il riferimento per RPC o
REST.
In genere, il server esegue il polling del servizio di corsa per verificare 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 |
|
Recuperare i waypoint rimanenti del viaggio
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 la documentazione di riferimento per RPC o REST.
Per saperne di più, consulta la sezione Stato della corsa e waypoint rimanenti del veicolo nella guida Introduzione alle corse.
Ecco un esempio del campo remaining_waypoints
per un viaggio, Viaggio A:
| |||||||||||||||||||||
|
Con i viaggi consecutivi e condivisi, questo elenco può contenere punti di passaggio
di altri viaggi da percorrere prima di questo viaggio. Ad esempio, consideriamo lo scenario in cui la corsa B è assegnata allo stesso veicolo della corsa A. Il
campo remaining_waypoints
per la corsa A verrà 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.