Questa guida mostra come recuperare i dati dei viaggi direttamente da Fleet Engine, in alternativa all'utilizzo dell'SDK consumer. Puoi utilizzare questo approccio per avere un maggiore controllo sull'esperienza dell'utente finale, sfruttando al contempo la posizione accurata e in tempo reale del veicolo, l'ETA e l'itinerario di Fleet Engine.
Per informazioni dettagliate sull'utilizzo dell'SDK consumer, consulta Condividere i viaggi per gli spostamenti on demand.
Recuperare le informazioni sul viaggio
Per recuperare direttamente le informazioni sul viaggio da Fleet Engine, chiama il metodo GetTrip
specificando la visualizzazione JOURNEY_SHARING_V1S
. Consulta il riferimento per RPC o
REST.
Il server in genere esegue il polling del servizio di viaggio per lo stato di ogni viaggio
mentre il passeggero monitora attivamente l'avanzamento del veicolo. Gli aggiornamenti della posizione del veicolo
in genere si verificano ogni 10 secondi e il sistema dovrebbe eseguire il polling alla stessa
velocità. Il campo Trip.last_location.update_time
può essere monitorato per verificare se
sono stati apportati aggiornamenti dall'ultima chiamata 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 il viaggio:
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 arrivo finale di questa corsa. Se specifichi la visualizzazione Condivisione viaggio, indichi a Fleet Engine di inserire le informazioni aggiornate in remaining_waypoints[0]
TripWaypoint
. In altre visualizzazioni non di Condivisione itinerario, questo waypoint di solito non
riflette l'ultima posizione del veicolo assegnato. Consulta il
riferimento per RPC o REST.
Per saperne di più, consulta Stato della corsa e waypoint rimanenti del veicolo nella Guida introduttiva alle corse.
Ecco un esempio del campo remaining_waypoints
per un viaggio, il viaggio A:
| |||||||||||||||||||||
|
Con i viaggi in pooling consecutivi e condivisi, questo elenco potrebbe contenere waypoint
di altri viaggi da percorrere prima di questo. Ad esempio, considera
lo scenario in cui la corsa B viene assegnata allo stesso veicolo della corsa A. Il campo
remaining_waypoints
per il viaggio A verrà quindi compilato come segue.
La maggior parte dei campi è stata omessa per brevità, ma verrebbe
compilata 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 verrà compilato in modo simile, ma saranno presenti solo le prime tre voci, poiché il punto di arrivo della corsa A non fa parte del percorso della corsa B.