Ce document explique comment créer un trajet consécutif, définir les champs appropriés et l'attribuer à un véhicule pour l'effectuer. Nous partons du principe que vous avez configuré Fleet Engine, créé des véhicules, disposez d'une application chauffeur fonctionnelle et, éventuellement, d'une application consommateur. Vous devez également connaître les différents scénarios de trajet disponibles pour les trajets à la demande. Pour cela, consultez les guides associés suivants :
- 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 pour créer un trajet dans Fleet Engine. Vous pouvez envoyer une requête de création à l'aide de gRPC ou de 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 : trajets à une ou plusieurs destinations, trajets consécutifs ou trajets en pool partagé. Vous pouvez fournir les champs facultatifs lorsque vous créez le trajet ou les définir ultérieurement lorsque vous le modifiez.
Nom | Obligatoire ? | Description |
---|---|---|
parent | Oui | Chaîne incluant l'ID du projet. Cet ID doit être identique à celui 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 ID de trajet sont soumis à 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 | Trajets à plusieurs destinations uniquement : liste des destinations intermédiaires que le chauffeur visite entre la prise en charge et la dépose. Comme pour |
vehicle_waypoints | Oui | Trajets en pool 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 pour 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 consécutif
L'exemple suivant montre comment créer un trajet consécutif et l'attribuer à un véhicule. Dans ce scénario, la création d'un 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;
}
Modifier des trajets consécutifs
Lorsque vous attribuez un véhicule pour un trajet consécutif, vous attribuez un trajet à un véhicule même s'il en a déjà un.
Pour que Fleet Engine puisse calculer les ETA des trajets et les suivre, chaque trajet créé dans Fleet Engine doit être attribué à un véhicule. Vous pouvez le faire soit au moment de la création du trajet, soit ultérieurement lorsque vous le modifiez.
Une fois le trajet attribué à un véhicule, Fleet Engine ajoute automatiquement les waypoints associés aux trajets consécutifs au champ des waypoints 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 le point de dépose du trajet.
Prenons l'exemple de deux trajets consécutifs : Trajet A et Trajet B. Le véhicule a récupéré le consommateur pour le trajet A. Pendant le trajet vers le lieu de dépose, le chauffeur reçoit une demande pour récupérer un autre consommateur pour le trajet suivant, le trajet B.
- L'appel
getVehicle()
renvoieremainingWaypoints
contenant les éléments suivants :
A Drop-off → B Pickup → B Drop-off. getTrip()
ou le rappelonTripRemainingWaypointsUpdated
pour Trip A renvoieremainingWaypoints
contenant :
A Drop-off.- Le rappel
getTrip()
ou le rappelonTripRemainingWaypointsUpdated
pour Trip B renvoieremainingWaypoints
contenant :
Dépose → Prise en charge → Dépose.