créer des trajets consécutifs

Ce document explique comment créer un trajet en aller-retour, définir les champs appropriés et l'attribuer à un véhicule pour qu'il soit effectué. Nous partons du principe que vous avez configuré Fleet vous avez créé des véhicules, vous avez une application de conducteur qui fonctionne et éventuellement une application grand public. Vous devez également être familiarisé avec les différents disponibles pour les trajets à la demande. Consultez les guides associés suivants pour que:

Principes de base de la création de voyages

Cette section décrit les détails de la requête nécessaires pour créer un trajet dans Fleet Engine. Vous envoyez une requête de création à l'aide de gRPC ou de REST.

  • Méthode CreateTrip(): gRPC ou REST
  • Message CreateTripRequest: gRPC uniquement

Champs de trajet

Utilisez les champs suivants pour créer un trajet dans Fleet Engine. Vous pouvez utiliser différents champs pour les différents types de trajets : à destination unique ou multiple, en série ou en pool partagé. Toi vous pouvez renseigner les champs facultatifs lors de la création du voyage, ou vous pouvez les définir lorsque vous mettrez à jour le trajet.

Champs de trajet
Nom Obligatoire ? Description
parent Oui Chaîne incluant l'ID de projet. Cet ID doit être le même que celui utilisé sur l'ensemble de votre intégration Fleet Engine, avec le même compte de service de rôles.
trip_id Oui Chaîne que vous créez et identifie ce trajet de manière unique. Les ID de trajet sont soumis à certaines restrictions, comme indiqué dans la documentation.
trip_type Oui Définissez TripType sur les valeurs suivantes pour le type de voyage que vous créez:
  • Destination unique : définissez cette valeur sur SHARED ou EXCLUSIVE.
  • Multi-destination (Multi-destination) : défini sur EXCLUSIVE.
  • Retour à dos: défini sur EXCLUSIVE.
  • Partage de pool : définissez sur SHARED.
pickup_point Oui Point de départ du trajet.
Destinations intermédiaires Oui

Trajets multidestination uniquement : liste des destinations intermédiaires que le conducteur visite entre le ramassage et le dépôt. Comme pour dropoff_point, ce champ peut également être défini ultérieurement en appelant UpdateTrip, mais un trajet multidestination contient par définition des destinations intermédiaires.

vehicle_waypoints Oui

Trajets en covoiturage uniquement : ce champ permet d'intercaler les points de cheminement de plusieurs trajets. Il contient tous les points de repère restants pour le véhicule attribué, ainsi que les points de ramassage et de dépôt pour ce trajet. Vous pouvez définir ce champ en appelant CreateTrip ou UpdateTrip. Vous pouvez également mettre à jour les points de cheminement du véhicule via le champ waypoints en appelant UpdateVehicle. Le service ne renvoie pas cette information lors des appels GetTrip. pour des raisons de confidentialité.

number_of_passengers Non Nombre de passagers du voyage.
dropoff_point Non Destination du voyage.
vehicle_id Non Identifiant du véhicule attribué au trajet.

Exemple : créer un trajet en aller-retour

L'exemple suivant montre comment créer un trajet en aller-retour et l'attribuer à un véhicule. Dans ce scénario, la création de trajet est identique à celle d'un trajet à destination unique. Ce n'est que plus tard que vous créez un autre trajet et que vous l'attribuez à un véhicule avec un trajet déjà actif.

// A vehicle with ID 'my-vehicle' is already created and it is assigned to a trip with ID 'current-trip'.

static final String PROJECT_ID = "my-rideshare-co-gcp-project";
static final String VEHICLE_ID =" my-vehicle";
static final String TRIP_ID = "back-to-back-trip");

TripServiceBlockingStub tripService = TripService.newBlockingStub(channel);

String parent = "providers/" + PROJECT_ID;

Trip trip = Trip.newBuilder()
    .setTripType(TripType.EXCLUSIVE)
    .setPickupPoint(
        TerminalLocation.newBuilder().setPoint(
            LatLng.newBuilder()
                .setLatitude(-6.195139).setLongitude(106.820826)))
    .setDropoffPoint(
        TerminalLocation.newBuilder().setPoint(
            LatLng.newBuilder()
                .setLatitude(-6.1275).setLongitude(106.6537)))
    .setVehicleId(VEHICLE_ID)
    .build();

// Create trip request
CreateTripRequest createTripRequest = CreateTripRequest.newBuilder()
    .setParent(parent)
    .setTripId(TRIP_ID)
    .setTrip(trip)
    .build();

// Error handling.
try {
  // Fleet Engine automatically assigns a 'waypoints' list to the trip containing
  // the vehicle's current trip waypoints.
  Trip createdTrip =
      tripService.createTrip(createTripRequest);
} catch (StatusRuntimeException e) {
  Status s = e.getStatus();
  switch (s.getCode()) {
    case ALREADY_EXISTS:
      break;
    case PERMISSION_DENIED:
      break;
  }
  return;
}

Mettre à jour les trajets consécutifs

Lorsque vous attribuez un véhicule à un trajet aller-retour, vous attribuez un trajet à un même s'il en a déjà un.

Tout trajet créé dans Fleet Engine doit être attribué à un véhicule pour que Fleet Engine pour calculer l'heure d'arrivée prévue des trajets et en effectuer le suivi. Vous pouvez le faire pendant création d'un voyage ou ultérieurement lorsque vous le mettrez à jour.

Une fois que vous avez attribué le trajet à un véhicule, Fleet Engine ajoute automatiquement le points de cheminement associés aux trajets aller-retour jusqu'aux points de cheminement du véhicule . Le champ remainingWaypoints d'un trajet contient la liste de tous les points de cheminement, y compris ceux d'autres trajets qui seront visités avant la dépose du trajet.

Prenons l'exemple de deux trajets consécutifs : le trajet A et le trajet B. Le véhicule a pris en charge le client pour le trajet A. Alors qu'il se dirige vers le lieu de dépose, le conducteur reçoit une demande de prise en charge d'un autre client pour le prochain trajet, le trajet B.

  • Appeler getVehicle() renvoie remainingWaypoints contenant:
    Un abandonB RetraitB Abandon.
  • getTrip() ou la Rappel onTripRemainingWaypointsUpdated pour Le trajet A renvoie remainingWaypoints contenant:
    Un abandon.
  • getTrip() ou la Rappel onTripRemainingWaypointsUpdated pour Le trajet B renvoie remainingWaypoints contenant:
    Un abandonB Retrait → et B Abandon.

Étape suivante