Récupérer les données des trajets directement à partir de Fleet Engine

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:

[0] location.point = trip.pickup_point.point
trip_id = "trip_A"
Waypoint_type = PICKUP_WAYPOINT_TYPE
path_to_waypoint = LatLng[] 1re LatLng entre le trajet restant jusqu'au lieu de prise en charge
2e LatLng entre le trajet restant jusqu'au lieu de prise en charge
...
dernier LatLng du chemin restant jusqu'au retrait
pickup_point, s'il est différent du dernier
traffic_data
distance_meters = distance entre la position actuelle du véhicule et le point de départ (path_to_waypoint)
heure d'arrivée prévue = heure d'arrivée prévue actualisée
durée = mise à jour de la durée
[1] location.point = trip.dropoff_point.point
trip_id = "trip_A"
Waypoint_type = DROP_OFF_WAYPOINT_TYPE
path_to_waypoint = LatLng[] 1re LatLng à partir du point de dépose
2e LatLng à partir du point de dépôt
...
dernière LatLng à partir du moment de dépose
dropoff_point, s'il est différent du dernier
traffic_data
distance_meters = distance entre la prise en charge sur path_to_waypoint et le dépôt
heure d'arrivée prévue = heure d'arrivée prévue actualisée
durée = durée de l'étape de dépôt

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.