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

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 la section Partager des parcours pour des trajets à la demande.

Récupérer les informations sur le 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 les usagers surveillent activement la progression du véhicule. Les mises à jour de la position des véhicules se produisent généralement toutes les 10 secondes, et 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 avec les dernières informations disponibles pour 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

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 État des trajets et points de cheminement restants pour le véhicule dans le guide Présentation des trajets.

Voici un exemple de 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[] 1re LatLng depuis le chemin restant jusqu'à la prise en charge
2e LatLng du trajet restant jusqu'au point de retrait
Dernière latitude/longitude du chemin restant jusqu'au point de retrait
pickup_point, si différent du dernier
traffic_data
distance_mètres = distance entre la position actuelle du véhicule_emplacement le long du chemin_vers_le_point de repère et le point de retrait
eta = ETA mis à jour
durée = durée mise à jour
[1] location.point = trip.dropoff_point.point
trip_id = "trip_A"
waypoint_type = DROP_OFF_WAYPOINT_TYPE
path_to_waypoint = LatLng[] 1re LatLng depuis l'étape de dépôt
2e LatLng depuis l'étape de dépôt
Dernière latitude/longitude de la section de dépose
point_de_dépose, si différent du dernier
traffic_data
distance_meters = distance entre le point de prise en charge et le point de dépôt le long de path_to_waypoint
eta = heure d'arrivée prévue mise à jour
durée = durée de l'étape de retour

Pour les trajets groupés successifs et partagés, cette liste peut contenir des points de cheminement d'autres trajets à traverser avant ce trajet. Prenons l'exemple d'un trajet B 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 rempli 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.