Recupera i dati delle corse direttamente da Fleet Engine

Questa guida mostra come recuperare i dati di viaggio direttamente da Fleet Engine, come un'alternativa all'utilizzo dell'SDK consumer. Puoi utilizzare questo approccio per avere sull'esperienza dell'utente finale, sfruttando al contempo il parco risorse La posizione del veicolo, l'orario di arrivo stimato e i percorsi precisi e in tempo reale del motore.

Per maggiori dettagli sull'utilizzo dell'SDK consumer, consulta Condividere i percorsi per i contenuti on demand per i viaggi.

Recuperare informazioni sulla corsa

Per recuperare informazioni sulla corsa direttamente da Fleet Engine, chiama il GetTrip che specifica la vista JOURNEY_SHARING_V1S. Vedi riferimento per RPC REST.

In genere il server interroga il servizio di corsa per conoscere lo stato di ogni corsa. mentre il passeggero monitora attivamente i progressi del veicolo. Posizione del veicolo in genere gli aggiornamenti vengono eseguiti ogni 10 secondi e il sistema dovrebbe eseguire il la stessa tariffa. Il campo Trip.last_location.update_time può essere monitorato per verificare se sono stati apportati aggiornamenti dalla precedente 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 i informazioni 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. include tutte le tappe che il veicolo dovrà percorrere, in ordine, prima l'ultimo punto di partenza di questa corsa. Se specifichi la vista di condivisione del percorso, Fleet Engine per inserire informazioni aggiornate nei restanti_waypoint[0] TripWaypoint. In altre viste diverse dalla condivisione del percorso, tale tappa non di solito riflettono la posizione più recente del veicolo assegnato. Consulta le per RPC o REST.

Per ulteriori informazioni, consulta Stato della corsa e tappe rimanenti del veicolo in la guida Introduzione ai viaggi.

Ecco un esempio del campo remaining_waypoints per una corsa, Percorso A:

[0] location.point = trip.pickup_point.point
trip_id = "trip_A"
waypoint_type = PICKUP_WAYPOINT_TYPE
path_to_waypoint = LatLng[] Primo LatLng dal percorso rimanente alla partenza
Secondo LatLng dal percorso rimanente alla partenza
ultimo LatLng dal percorso rimanente alla partenza
pickup_point, se diverso da ultimo
traffic_data
distanze_meters = distanza dall'attuale posizione del veicolo lungo il percorso path_to_waypoint al punto di ritiro
eta = orario di arrivo stimato aggiornato
durata = durata aggiornata
[1] location.point = trip.dropoff_point.point
trip_id = "trip_A"
waypoint_type = DROP_OFF_WAYPOINT_TYPE
path_to_waypoint = LatLng[] 1° LatLng da tratto di discesa
2° LatLng da fase di discesa
ultimo LatLng dalla fase di discesa
dropoff_point, se diverso dall'ultimo
traffic_data
distanze_meters = distanza dal punto di prelievo lungo il percorso path_to_waypoint al punto di discesa
eta = orario di arrivo stimato aggiornato
durata = durata della gamba di discesa

Con corse consecutive e di raggruppamento condivise, questo elenco può contenere tappe da altri viaggi da percorrere prima di questo viaggio. Ad esempio, considera lo scenario in cui la corsa B è assegnata allo stesso veicolo della corsa A. La Il campo remaining_waypoints per il percorso A verrà quindi compilato come segue. La maggior parte dei campi è stata omessa per motivi di concisione, ma sarebbe compilate 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 solo le prime tre voci saranno presenti, poiché il punto di partenza del viaggio A non fa parte del percorso del Viaggio B.