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 CreateVehicleCreateVehicleRequest. Ten punkt końcowy wymaga konta z rolą administratora Fleet Engine na żądanie.

Pola dotyczące pojazdów do przejazdów na żądanie

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

Pola wymagane w przypadku przejazdów na żądanie

  • vehicle_state: domyślnie ma wartość unknown, ale powinna być ustawiona na ONLINE lub OFFLINE. Informacje o ustawianiu pola stanu pojazdu znajdziesz w sekcji Aktualizowanie pól pojazdu.
  • supported_trip_types: domyślnie ma wartość unknown, ale powinna być ustawiona na SHARED, EXCLUSIVE lub obie te wartości. Szczegółowe informacje znajdziesz w sekcji Rodzaje przejazdówprzewodniku po przejazdach na żądanie.
  • maximum_capacity: liczba pasażerów, których może przewozić 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. Ma to również wpływ na obliczenia szacowanego czasu dotarcia na miejsce i trasy. Fleet Engine podaje trasy i obliczenia czasu podróży, które odpowiadają trybowi podróży na podstawie tych grup typów pojazdów:
    • AUTO, TAXI lub TRUCK: np. autostrady.
    • TWO_WHEELER: na przykład nie zwraca tras, na których nie są dozwolone pojazdy dwukołowe.
    • BICYCLE: na przykład ścieżki rowerowe.
    • PEDESTRIAN: np. mosty i chodniki przeznaczone wyłącznie dla pieszych.

Inne pola

Więcej informacji o innych polach, 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 transportu na żądanie.

Wartością zwracaną przez CreateVehicle jest 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

Zapoznaj się z dokumentacją providers.vehicles.create.

Co dalej?