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

Aby utworzyć pojazd we Fleet Engine na potrzeby przejazdów na żądanie, użyj punktu końcowego CreateVehicle z CreateVehicleRequest. Ten punkt końcowy wymaga konta z rolą Administrator Fleet Engine na żądanie.

Pola dotyczące pojazdów realizujących przejazdy na żądanie

Podczas tworzenia pojazdów do przejazdów na żądanie musisz ustawić wymagane pola. Musisz też wiedzieć, jak niektóre pola pojazdu wpływają na inne funkcje Fleet Engine. Więcej informacji znajdziesz w sekcji Aktualizowanie pól pojazdu.

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

  • vehicle_state: domyślnie jest to wartość nieznana, ale powinna być ustawiona na ONLINE lub OFFLINE. Informacje o ustawianiu pola stanu pojazdu znajdziesz w artykule Aktualizowanie pól pojazdu.
  • supported_trip_types: domyślnie jest to wartość nieznana, ale należy ją ustawić na SHARED, EXCLUSIVE lub obie te wartości. Szczegółowe informacje znajdziesz w sekcji Typy przejazdów w przewodniku Przejazdy na żądanie.
  • maximum_capacity: liczba pasażerów, których pojazd może przewozić, 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 podczas wyszukiwania. Ma to też wpływ na obliczanie szacowanego czasu dotarcia na miejsce i trasy. Fleet Engine udostępnia trasy i obliczenia dotyczące podróży, które odpowiadają trybowi podróży na podstawie tych grup typów pojazdów:
    • AUTO, TAXI lub TRUCK: na przykład autostrady.
    • TWO_WHEELER: na przykład nie zwróci tras, na których nie wolno poruszać się pojazdami dwukołowymi.
    • BICYCLE: na przykład ścieżki rowerowe.
    • PEDESTRIAN: na przykład 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

Aby utworzyć pojazd, możesz użyć biblioteki gRPC w języku Java lub interfejsu REST. Pełną listę obsługiwanych języków znajdziesz w artykule Biblioteki klienta dla usług przejazdów na żądanie.

Wartość zwracana przez 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?