Le SDK grand public fournit une fonctionnalité clé en main permettant aux applications grand public de partage de course d'afficher la position et la progression du véhicule qui les emmène pendant leur trajet.
Toutefois, certains fournisseurs de services de covoiturage souhaitent mieux contrôler l'expérience de leurs utilisateurs finaux grâce à une intégration flexible, 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 proposé par Google. Ce guide vous explique comment récupérer les données de trajet directement à partir de Fleet Engine, au lieu d'utiliser le SDK Consumer.
Présentation
Pour récupérer directement les informations d'un trajet depuis Fleet Engine, appelez la méthode GetTrip
en spécifiant la vue 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);
Dans l'objet "Trajet" obtenu (RPC | REST), les champs suivants sont renseignés avec les dernières informations disponibles pour le trajet:
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)
Les fournisseurs de VTC interrogent généralement le service de trajet pour connaître l'état de chaque trajet toutes les deux à cinq secondes, tandis que l'usager surveille activement la progression du véhicule. Les mises à jour de la position des véhicules sont généralement effectuées sur un intervalle plus long, par exemple 10 secondes. Vous pouvez surveiller le champ Trip.last_location.update_time
pour voir si des mises à jour ont eu lieu depuis le dernier appel à GetTrip
.
Points de cheminement des trajets
L'entité "Trip" contient un champ répété de type TripWaypoint
(RPC | REST).
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 parcours indique à Fleet Engine de placer les informations mises à jour dans le champ restant_waypoints[0] TripWaypoint
. Dans les autres vues (autres que le partage de trajet), ce point de cheminement ne reflète généralement pas la dernière position du véhicule attribué.
Voici un exemple de champ remaining_waypoints
pour le trajet A:
| |||||||||||||||||||||
|
Pour les trajets aller-retour et partagés (covoiturage), cette liste peut contenir les points de cheminement d'autres trajets qui seront traversés au cours de ce trajet. Prenons l'exemple du scénario dans lequel le trajet B est attribué au même véhicule que le trajet A. Le champ remaining_waypoints
pour le trajet A serait alors renseigné comme suit.
(La plupart des champs ont été omis pour des raisons de concision, mais ils ont été 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 sera 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.