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 supposons que vous avez configuré Fleet Engine, que vous avez créé des véhicules, que vous disposez d'une application conducteur fonctionnelle et, éventuellement, d'une application client. Vous devez également connaître les différents scénarios de trajets disponibles pour les trajets à la demande. Consultez les guides associés suivants pour en savoir plus:
- Configurer Fleet Engine
- Créer un véhicule
- Scénarios de trajets dans la présentation des trajets à la demande
Principes de base de la création de voyages
Cette section décrit les détails de la requête nécessaires à la création d'un trajet dans Fleet Engine. Vous pouvez émettre une requête de création à l'aide de gRPC et REST.
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é. Vous pouvez fournir les champs facultatifs lorsque vous créez le trajet ou les définir plus tard lorsque vous le mettez à jour.
Nom | Obligatoire ? | Description |
---|---|---|
parent | Oui | Chaîne incluant l'ID de projet. Il doit être identique à l'ID utilisé dans l'ensemble de votre intégration Fleet Engine, avec les mêmes rôles de compte de service. |
trip_id | Oui | Chaîne que vous créez pour identifier de manière unique ce trajet. Les identifiants de trajet comportent certaines restrictions, comme indiqué dans la référence. |
trip_type | Oui | Définissez TripType sur les valeurs suivantes pour le type de trajet que vous créez :
|
pickup_point | Oui | Point de départ du trajet. |
Destinations intermédiaires | Oui | Multi-destination trips only (Trajets multidestinations uniquement) : liste des destinations intermédiaires que le chauffeur visite entre la prise en charge et la dépose. Comme pour |
vehicle_waypoints | Oui | Shared-pooling trips only (Trajets avec pooling partagé uniquement) : ce champ permet d'entrelacer les points de cheminement de plusieurs trajets.
Il contient tous les points de cheminement restants pour le véhicule attribué, ainsi que les points de cheminement de prise en charge et de dépose de ce trajet. Vous pouvez définir ce champ en appelant |
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 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 la même que pour 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 véhicule, même s'il en a déjà été un.
Tout trajet créé dans Fleet Engine doit être attribué à un véhicule pour que Fleet Engine puisse calculer l'heure d'arrivée prévue et la suivre. Vous pouvez le faire lors de la création du trajet ou ultérieurement lorsque vous le mettez à jour.
Une fois que vous avez attribué le trajet à un véhicule, Fleet Engine ajoute automatiquement les points de cheminement associés aux trajets aller-retour au champ des 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. Pendant l'itinéraire vers le lieu de dépose, le conducteur reçoit une demande l'invitant à prendre en charge un autre client pour le prochain trajet, le trajet B.
- L'appel de
getVehicle()
renvoieremainingWaypoints
qui contient:
A Drop-off → B Pickup → B Drop-off. - Soit
getTrip()
, soit le rappelonTripRemainingWaypointsUpdated
pour le trajet A renvoie des valeursremainingWaypoints
contenant:
A Drop-off (Dépose). getTrip()
ou le rappelonTripRemainingWaypointsUpdated
pour le trajet B renvoie desremainingWaypoints
contenant :
A Dépose → B Retrait → et B Dépose.