Utwórz pojazd na potrzeby podróży na żądanie

Aby utworzyć pojazd we Fleet Engine do podróży na żądanie, skorzystaj z CreateVehicle za pomocą punktu końcowego CreateVehicleRequest. Ten punkt końcowy wymaga konta z rolę Administratora usługi Fleet Engine na żądanie.

Pola dla pojazdów do podróży na żądanie

Podczas tworzenia pojazdów do podróży na żądanie musisz ustawić wymagane pola. Ty wie też, jak niektóre pola dotyczące pojazdów wpływają na inne we Fleet Engine. Odpowiednie informacje znajdziesz w artykule Aktualizowanie pól dotyczących pojazdów.

Pola wymagane w przypadku podróży na żądanie

  • vehicle_state: wartość domyślna to „nieznana”, ale powinna być ustawiona na ONLINE lub OFFLINE. Informacje o ustawianiu pola stanu pojazdu znajdziesz w sekcji Aktualizacja .
  • supported_trip_types: wartość domyślna to „nieznana”, a powinna być ustawiona na WSPÓLNY, WYJĄTKOWY lub jedno i drugi. Zobacz typy podróży w sekcji Podróże na żądanie. .
  • maximum_capacity: liczba pasażerów, którzy mogą pomieścić pojazd, który nie obejmuje kierowcy (z definicji).
  • vehicle_type: wartości to AUTO, TAXI, TRUCK, TWO-WHEELER, BICYCLE lub PEDESTRIAN. Może służyć do filtrowania pojazdów wyszukiwania. Wpływa to też na szacowany czas dotarcia na miejsce i obliczanie trasy. Fleet Engine podaje trasy i obliczenia związane ze środkami transportu, dla następujących grup typów pojazdów:
    • AUTO, TAXI lub TRUCK: na przykład autostrady.
    • TWO_WHEELER: na przykład nie zwróci tras, dla których nie są dostępne jest dozwolona.
    • BICYCLE: np. ścieżki rowerowe.
    • PEDESTRIAN: np. mosty i chodniki tylko dla pieszych.

Inne pola

Inne pola, które można skonfigurować podczas tworzenia pojazdu, znajdziesz w sekcji Aktualizowanie pojazdu .

Przykład produkcji pojazdu

Wartość zwrócona z metody CreateVehicle to utworzony element Vehicle.

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

Zobacz dokumentację providers.vehicles.create.

Co dalej?