L'SDK per i consumatori offre una funzionalità pronta all'uso che consente alle app per consumatori di ridesharing di visualizzare la posizione e i progressi del veicolo nel loro percorso.
Alcuni fornitori di ridesharing, tuttavia, vogliono un maggiore controllo sull'esperienza del cliente finale con un'integrazione flessibile, pur sfruttando la posizione accurata e in tempo reale del veicolo, l'orario di arrivo stimato e il percorso di Google. Questa guida mostra come recuperare i dati delle corse direttamente da Fleet Engine, come alternativa all'utilizzo dell'SDK Consumer.
Panoramica
Per recuperare le informazioni sulla corsa direttamente da Fleet Engine, chiama il metodo GetTrip
, specificando la vista JOURNEY_SHARING_V1S (RPC | REST).
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);
Nell'oggetto Trip (RPC | REST) risultante verranno completati i seguenti campi con le informazioni più recenti disponibili per il viaggio:
name
vehicle_id
trip_status
trip_type
number_of_passengers
pickup_point
actual_pickup_point
pickup_time
intermediate_destinations
intermediate_destinations_version
intermediate_destination_index
dropoff_point
actual_dropoff_point
dropoff_time
remaining_waypoints
last_location
view
(== JOURNEY_SHARING_V1S)
Di solito, i fornitori di ridesharing chiedono al servizio di viaggio lo stato di ciascuna corsa ogni 2-5 secondi, mentre il viaggiatore monitora attivamente l'avanzamento del veicolo. Gli aggiornamenti sulla posizione dei veicoli sono in genere a intervalli più lunghi, ad esempio 10 secondi. Il campo Trip.last_location.update_time
può essere monitorato per verificare se ci sono stati aggiornamenti dalla precedente chiamata a GetTrip
.
Waypoint del viaggio
L'entità Trip contiene un campo ripetuto di tipo TripWaypoint
(RPC
|
REST).
Questo campo include tutti i waypoint che il veicolo dovrà percorrere, in ordine, prima del punto di partenza della corsa. Se specifichi la vista di condivisione del percorso, Fleet Engine inserisce informazioni aggiornate nel valore rimanente_waypoints[0]
TripWaypoint
. In altre visualizzazioni diverse dalla condivisione del percorso, quel waypoint di solito non riflette la posizione più recente del veicolo assegnato.
Ecco un esempio del campo remaining_waypoints
del viaggio A:
| |||||||||||||||||||||
|
Con viaggi in sequenza e condivisi (carpool), questo elenco può contenere waypoint
di altre corse che verranno attraversate durante questo viaggio. Ad esempio, considera 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 motivi di concisione, ma verrebbero
compilati 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 partenza della corsa A non fa parte del percorso della corsa B.