Questa guida mostra come recuperare i dati dei percorsi 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 del veicolo, l'orario di arrivo stimato e il percorso accurati e in tempo reale di Fleet Engine.
Per maggiori dettagli sull'utilizzo dell'SDK Consumer, consulta Condividi i percorsi per le corse on demand.
Recuperare informazioni sul viaggio
Per recuperare le informazioni sulla corsa 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 percorso per lo stato di ogni percorso mentre il passeggero monitora attivamente l'avanzamento del veicolo. In genere, gli aggiornamenti della posizione dei veicoli vengono eseguiti ogni 10 secondi e il tuo sistema deve eseguire il polling con la 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 contiene i seguenti campi compilati con le informazioni più recenti disponibili per il percorso:
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 i waypoint rimanenti del percorso
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 della condivisione del percorso, Fleet Engine inserisce le informazioni aggiornate in remaining_waypoints[0] TripWaypoint. In altre visualizzazioni non relative a Journey Sharing, 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 tappe rimanenti del veicolo nella guida Introduzione alle corse.
Ecco un esempio del campo remaining_waypoints per una corsa, la Corsa A:
| |||||||||||||||||||||
| |||||||||||||||||||||
Con le corse consecutive e in pool condiviso, questo elenco potrebbe contenere tappe di altre corse da percorrere prima di questo percorso. Ad esempio, considera lo scenario in cui la corsa B viene assegnata allo stesso veicolo della corsa A. Il campo remaining_waypoints per la corsa A verrebbe 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 verrebbe compilato in modo simile, ma sarebbero presenti solo le prime tre voci, poiché il punto di arrivo della corsa A non fa parte del percorso della corsa B.