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

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

Pola pojazdów na potrzeby przejazdów na żądanie

Podczas tworzenia pojazdów na potrzeby przejazdów na żądanie musisz ustawić wymagane pola. Powinieneś 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 ustawiona jest wartość unknown, 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 ustawiona jest wartość unknown, ale powinna być ustawiona na SHARED, EXCLUSIVE lub obie te wartości. Więcej informacji znajdziesz w sekcji Typy przejazdów w przewodniku Przejazdy 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żna go używać do filtrowania pojazdów w wyszukiwaniach pojazdów. Ma to też wpływ na obliczanie szacowanego czasu dotarcia na miejsce i trasy. Fleet Engine udostępnia trasy i obliczenia podróży, które odpowiadają sposobowi podróżowania na podstawie tych grup typów pojazdów:
    • AUTO, TAXI lub TRUCK: np. 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 artykule Aktualizowanie pól pojazdu.

Przykład tworzenia pojazdu

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

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

Więcej informacji znajdziesz w dokumentacji providers.vehicles.create.

Co dalej?