Créer un véhicule pour les trajets à la demande

Pour créer un véhicule dans Fleet Engine pour les trajets à la demande, utilisez le point de terminaison CreateVehicle avec CreateVehicleRequest. Ce point de terminaison nécessite un compte disposant du rôle Administrateur Fleet Engine On-demand.

Champs pour les véhicules de transport à la demande

Lorsque vous créez des véhicules pour des trajets à la demande, vous devez définir les champs obligatoires. Vous devez également savoir comment certains champs de véhicule ont un impact sur d'autres fonctionnalités de Fleet Engine. Pour cela, consultez Mettre à jour les champs du véhicule.

Champs obligatoires pour les trajets à la demande

  • vehicle_state : la valeur par défaut est "unknown" (inconnu), mais elle doit être définie sur "ONLINE" (EN LIGNE) ou "OFFLINE" (HORS LIGNE). Pour savoir comment définir le champ "État du véhicule", consultez Mettre à jour les champs du véhicule.
  • supported_trip_types : la valeur par défaut est "unknown" (inconnu), mais elle doit être définie sur SHARED (PARTAGÉ), EXCLUSIVE (EXCLUSIF) ou les deux. Pour en savoir plus, consultez Types de trajets dans le guide Trajets à la demande.
  • maximum_capacity : nombre de passagers que le véhicule peut transporter, à l'exclusion du conducteur (par définition).
  • vehicle_type : les valeurs sont AUTO, TAXI, TRUCK, TWO_WHEELER, BICYCLE ou PEDESTRIAN. Peut être utilisé pour filtrer les véhicules lors de recherches de véhicules. Cela a également une incidence sur le calcul de l'heure d'arrivée prévue et de l'itinéraire. Fleet Engine fournit des itinéraires et des calculs de trajet qui correspondent au mode de déplacement en fonction des groupes de types de véhicules suivants :
    • AUTO, TAXI ou TRUCK : par exemple, les autoroutes.
    • TWO_WHEELER : par exemple, n'affichera pas les itinéraires où les deux-roues ne sont pas autorisés.
    • BICYCLE : par exemple, les pistes cyclables.
    • PEDESTRIAN : par exemple, les ponts et les passerelles réservés aux piétons.

Autres champs

Pour connaître les autres champs que vous pouvez définir lorsque vous créez un véhicule, consultez Mettre à jour les champs du véhicule.

Exemple de création de véhicule

La valeur renvoyée par CreateVehicle est l'entité Vehicle créée.

Java

static final String PROJECT_ID = "project-id";

VehicleServiceBlockingStub vehicleService =
    VehicleService.newBlockingStub(channel);

String parent = "providers/" + PROJECT_ID;
Vehicle vehicle = Vehicle.newBuilder()
    .setVehicleState(VehicleState.OFFLINE)  // Initial state
    .addSupportedTripTypes(TripType.EXCLUSIVE)
    .setMaximumCapacity(4)
    .setVehicleType(VehicleType.newBuilder().setCategory(VehicleType.Category.AUTO))
    .addAttributes(VehicleAttribute.newBuilder()
        .setKey("on_trip").setValue("false"))  // Opaque to the Fleet Engine
    // Add .setBackToBackEnabled(true) to make this vehicle eligible for trip
    // matching while even if it is on a trip.  By default this is disabled.
    .build();

CreateVehicleRequest createVehicleRequest =
    CreateVehicleRequest.newBuilder()  // no need for the header
        .setParent(parent)
        .setVehicleId("vid-8241890")  // Vehicle ID assigned by Rideshare or Delivery Provider
        .setVehicle(vehicle)  // Initial state
        .build();

// In this case, the Vehicle is being created in the OFFLINE state and
// no initial position is being provided.  When the Driver App checks
// in with the Rideshare or Delivery Provider, the state can be set to ONLINE and
// the Driver App will update the Vehicle Location.

try {
  Vehicle createdVehicle =
      vehicleService.createVehicle(createVehicleRequest);
} catch (StatusRuntimeException e) {
  Status s = e.getStatus();
  switch (s.getCode()) {
    case ALREADY_EXISTS:
      break;
    case PERMISSION_DENIED:
      break;
  }
  return;
}
// If no Exception, Vehicle created successfully.

REST

curl -X POST \
  "https://fleetengine.googleapis.com/v1/providers/project-id/vehicles?vehicleId=vid-8241890" \
  -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  --data-binary @- << EOM
{
    "vehicleState": "OFFLINE",
    "supportedTripTypes": ["EXCLUSIVE"],
    "maximumCapacity": 4,
    "vehicleType": {"category": "AUTO"},
    "attributes": [{"key": "on_trip", "value": "false"}]
}
EOM

Consultez la référence providers.vehicles.create.

Étape suivante