Créer un trajet avec une seule destination

Ce document explique comment créer un trajet à destination unique, définir les champs appropriés et l'attribuer à un véhicule à remplir. Nous partons du principe que vous avez configuré Fleet Engine et que vous avez créé des véhicules, une application de conducteur fonctionnelle et, éventuellement, une application grand public. Pour en savoir plus, consultez les guides associés suivants:

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.

  • 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é. Vous pouvez fournir les champs facultatifs lorsque vous créez le trajet ou les définir plus tard lorsque vous le mettez à jour.

Champs de trajet
Nom Obligatoire ? Description
parent Oui Chaîne incluant l'ID du projet. Cet ID doit être identique à celui utilisé pour l'ensemble de l'intégration de Fleet Engine, avec les mêmes rôles de compte de service.
trip_id Oui Chaîne que vous créez et identifie ce trajet de manière unique. 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 :
  • Destination unique : définissez cette valeur sur SHARED ou EXCLUSIVE.
  • Multi-destination (Multi-destination) : défini sur EXCLUSIVE.
  • Retour à dos: défini sur EXCLUSIVE.
  • Pooling partagé: définissez cette option 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 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 CreateTrip ou UpdateTrip. Vous pouvez également modifier les points de cheminement du véhicule via le champ waypoints en appelant UpdateVehicle. Pour des raisons de confidentialité, le service ne renvoie pas ces informations sur les appels GetTrip.

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

Exemple : trajet à destination unique

L'exemple suivant montre comment créer un trajet vers le centre commercial Grand Indonesia East Mall. Le trajet inclut deux passagers, est exclusif et est à l'état NEW. L'provider_id du trajet doit être identique à l'ID du projet Google Cloud. Les exemples montrent un projet Google Cloud avec l'ID de projet my-rideshare-co-gcp-project. Ce projet doit également inclure un compte de service pour appeler Fleet Engine. Pour en savoir plus, consultez la section Rôles des comptes de service.

static final String PROJECT_ID = "my-rideshare-co-gcp-project";

TripServiceBlockingStub tripService = TripService.newBlockingStub(channel);

// Trip initial settings.
String parent = "providers/" + PROJECT_ID;

Trip trip = Trip.newBuilder()
    .setTripType(TripType.EXCLUSIVE) // Use TripType.SHARED for carpooling.
    .setPickupPoint(                 // Grand Indonesia East Mall.
        TerminalLocation.newBuilder().setPoint(
            LatLng.newBuilder()
                .setLatitude(-6.195139).setLongitude(106.820826)))
    .setNumberOfPassengers(2)
    // Provide the drop-off point if available.
    .setDropoffPoint(
        TerminalLocation.newBuilder().setPoint(
            LatLng.newBuilder()
                .setLatitude(-6.1275).setLongitude(106.6537)))
    .build();

// Create trip request
CreateTripRequest createTripRequest = CreateTripRequest.newBuilder()
    .setParent(parent)
    .setTripId("trip-8241890")  // Trip ID assigned by the provider.
    .setTrip(trip)              // The initial state is NEW.
    .build();

// Error handling.
try {
  Trip createdTrip = tripService.createTrip(createTripRequest);
} catch (StatusRuntimeException e) {
  Status s = e.getStatus();
  switch (s.getCode()) {
    case ALREADY_EXISTS:
      break;
    case PERMISSION_DENIED:
      break;
  }
  return;
}

Étape suivante