Ce guide vous explique comment récupérer les données de trajet directement à partir de Fleet Engine, au lieu d'utiliser le SDK client. Vous pouvez utiliser cette approche pour mieux contrôler l'expérience de l'utilisateur final tout en profitant de la position, de l'heure d'arrivée estimée et de l'itinéraire précis et en temps réel de Fleet Engine.
Pour en savoir plus sur l'utilisation du SDK Consumer, consultez Partager des trajets pour les trajets à la demande.
Récupérer des informations sur un trajet
Pour récupérer directement des informations sur les trajets à partir de Fleet Engine, appelez la méthode GetTrip
en spécifiant la vue JOURNEY_SHARING_V1S
. Consultez la documentation de référence sur RPC ou REST.
Votre serveur interroge généralement le service de trajet pour connaître l'état de chaque trajet pendant que le passager surveille 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 système à 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 l'appel précédent à 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 contient 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 repère 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épôt final de ce trajet. Spécifier la vue de partage de trajet indique à Fleet Engine de mettre à jour les informations dans le TripWaypoint
remaining_waypoints[0]. Dans les autres vues, en dehors du partage de trajet, ce point d'intérêt ne reflète généralement pas la dernière position du véhicule attribué. Consultez la documentation de référence sur RPC ou REST.
Pour en savoir plus, consultez la section État du trajet et repères restants du véhicule dans le guide Présentation des trajets.
Voici un exemple de champ remaining_waypoints
pour un trajet, le trajet A:
| |||||||||||||||||||||
|
Pour les trajets en série et les trajets en covoiturage partagé, cette liste peut contenir des points de cheminement d'autres trajets à parcourir avant ce trajet. Prenons l'exemple du scénario où le trajet B est attribué au même véhicule que le trajet A. Le champ remaining_waypoints
du trajet A sera ensuite 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 du trajet B.