Ce guide vous explique comment récupérer les données de trajet directement depuis Fleet Engine, au lieu d'utiliser le SDK Consumer. Vous pouvez utiliser cette approche pour mieux contrôler l'expérience de l'utilisateur final, tout en profitant de la localisation précise et en temps réel des véhicules, de l'heure d'arrivée prévue et de l'itinéraire de Fleet Engine.
Pour en savoir plus sur l'utilisation du SDK Consumer, consultez Partager des trajets pour les courses à la demande.
Récupérer les informations sur le trajet
Pour récupérer les informations sur le trajet directement depuis Fleet Engine, appelez la méthode GetTrip en spécifiant la vue JOURNEY_SHARING_V1S. Consultez la documentation de référence pour RPC ou REST.
Votre serveur interroge généralement le service de trajets pour connaître l'état de chaque trajet pendant que le passager suit activement la progression du véhicule. Les mises à jour de la position du véhicule ont généralement lieu toutes les 10 secondes. Votre système doit interroger le service à la même fréquence. Le champ Trip.last_location.update_time peut être surveillé pour voir s'il y a eu des mises à jour depuis le dernier appel à 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'objet Trip obtenu comporte les champs suivants, renseignés avec les dernières informations disponibles sur le trajet :
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 |
|
Récupérer les points de cheminement restants du trajet
L'entité "Trip" contient un champ répété de type TripWaypoint. Ce champ inclut tous les points de cheminement que le véhicule devra parcourir, dans l'ordre, avant le point de dépose final de ce trajet. En spécifiant la vue "Partage de trajet", vous indiquez à Fleet Engine de placer les informations mises à jour dans remaining_waypoints[0]TripWaypoint. Dans les autres vues qui ne concernent pas le partage de trajet, ce point de cheminement ne reflète généralement pas la dernière position du véhicule attribué. Consultez la documentation de référence pour RPC ou REST.
Pour en savoir plus, consultez État du trajet et points de cheminement restants du véhicule dans le guide Présentation des trajets.
Voici un exemple de champ remaining_waypoints pour un trajet, Trajet A :
| |||||||||||||||||||||
| |||||||||||||||||||||
Pour les trajets consécutifs et partagés, cette liste peut contenir des points de cheminement d'autres trajets à parcourir avant ce trajet. Par exemple, imaginons que le trajet B soit attribué au même véhicule que le trajet A. Le champ remaining_waypoints du trajet A serait alors renseigné comme suit.
La plupart des champs ont été omis par souci de concision, mais ils seraient renseignés conformément à l'exemple précédent.
| [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 |
Le champ remaining_waypoint du trajet B serait renseigné de la même manière, mais seules les trois premières entrées seraient présentes, car le point de dépôt du trajet A ne fait pas partie de l'itinéraire du trajet B.