Récupérer les données de trajet directement depuis Fleet Engine

Ce guide vous explique comment récupérer des données de trajet directement depuis Fleet Engine, au lieu d'utiliser le SDK client. Vous pouvez utiliser cette approche pour mieux contrôler l'expérience de vos utilisateurs finaux 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 du calcul d'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 un trajet

Pour récupérer directement les informations sur les trajets 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 course pour connaître l'état de chaque course 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 à 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 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 waypoints 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 repère 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 du champ remaining_waypoints pour un trajet, le trajet A :

[0] location.point = trip.pickup_point.point
trip_id = "trip_A"
waypoint_type = PICKUP_WAYPOINT_TYPE
path_to_waypoint = LatLng[] 1er LatLng du chemin restant vers le point de retrait
2e LatLng du trajet restant jusqu'au point de prise en charge
Dernier LatLng du chemin restant jusqu'au point de prise en charge
pickup_point, si différent du dernier
traffic_data
distance_meters = distance entre la position actuelle du véhicule et le point de prise en charge, le long de path_to_waypoint
eta = updated ETA
duration = updated duration
[1] location.point = trip.dropoff_point.point
trip_id = "trip_A"
waypoint_type = DROP_OFF_WAYPOINT_TYPE
path_to_waypoint = LatLng[] 1er LatLng de la section de dépose
2e LatLng de la section de dépose
Dernier LatLng de la section de dépose
dropoff_point, si différent du dernier
traffic_data
distance_meters = distance entre le point de prise en charge et le point de dépose le long de path_to_waypoint
eta = updated ETA
duration = durée de la dépose

Dans le cas de trajets avec regroupement de passagers ou de trajets partagés, cette liste peut contenir des points de passage d'autres trajets à parcourir avant celui-ci. Prenons l'exemple où le trajet B est 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 pour plus de concision, mais ils seraient renseignés de la même manière que dans 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épose du trajet A ne fait pas partie de l'itinéraire du trajet B.