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

Aby utworzyć pojazd w Fleet Engine na potrzeby przejazdów na żądanie, użyj punktu końcowego CreateVehicle z wartością CreateVehicleRequest. Ten punkt końcowy wymaga konta z rolą Fleet Engine On-demand Admin.

Pola dotyczące pojazdów do przewozu osób na żądanie

Podczas tworzenia pojazdów do podróży na żądanie musisz ustawić wymagane pola. Musisz też wiedzieć, jak określone pola pojazdu wpływają na inne funkcje w Fleet Engine. Odpowiednie informacje znajdziesz w artykule Aktualizowanie pól dotyczących pojazdów.

Pola wymagane w przypadku przejazdów na żądanie

  • vehicle_state: domyślnie ustawiona wartość to „nieznana”, ale powinna być ustawiona na „ONLINE” (ONLINE) lub „OFFLINE” (OFFLINE). Informacje o ustawianiu pola stanu pojazdu znajdziesz w sekcji Aktualizacja .
  • supported_trip_types: domyślnie ustawiona wartość to „unknown” (nieznana), ale powinna być ustawiona na „SHARED” (udostępniane), „EXCLUSIVE” (wyłączne) lub „BOTH” (obie). Zobacz typy podróży w sekcji Podróże na żądanie. .
  • maximum_capacity: liczba pasażerów, których może przewieźć pojazd, z wyłączeniem 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 w wyszukiwaniach pojazdów. Wpływa to też na szacowany czas dotarcia na miejsce i obliczanie trasy. Fleet Engine zapewnia obliczenia tras i czasu przejazdu, które odpowiadają trybowi podróży na podstawie tych grup typów pojazdów:
    • AUTO, TAXI lub TRUCK: na przykład autostrady.
    • TWO_WHEELER: np. nie zwraca tras, na których nie są dozwolone pojazdy dwukołowe.
    • BICYCLE: np. ścieżki rowerowe.
    • PEDESTRIAN: np. mosty i chodniki tylko dla pieszych.

Inne pola

Inne pola, które możesz ustawić podczas tworzenia pojazdu, znajdziesz w sekcji Aktualizowanie pól pojazdu.

Przykład tworzenia 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?