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ą Fleet Engine On-demand Admin.

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

Podczas tworzenia pojazdów na potrzeby przejazdów na żądanie musisz ustawić wymagane pola. Ty wie też, jak niektóre pola dotyczące pojazdów wpływają na inne we 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 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: wartość domyślna to „nieznana”, a powinna być ustawiona na WSPÓLNY, WYJĄTKOWY lub jedno i drugi. Szczegółowe informacje znajdziesz w sekcji Typy podróży w przewodniku 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 w wyszukiwaniach pojazdów. Ma to również wpływ na obliczenia czasu dojazdu i 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: np. nie zwraca tras, na których nie są dozwolone pojazdy dwukołowe.
    • BICYCLE: na przykład ś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 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 odwołanie providers.vehicles.create.

Co dalej?