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 (Administrator Fleet Engine na żądanie).
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. Musisz też wiedzieć, jak określone 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 wartość to „nieznana”, ale powinna być ustawiona na „ONLINE” (ONLINE) lub „OFFLINE” (OFFLINE). Informacje o ustawianiu pola stanu pojazdu znajdziesz w sekcji Aktualizowanie pól pojazdu.supported_trip_types
: domyślna wartość to „unknown” (nieznana), ale powinna być ustawiona na „SHARED” (udostępnione), „EXCLUSIVE” (wyłącznie) lub „SHARED, EXCLUSIVE” (udostępnione i wyłącznie). Szczegółowe informacje znajdziesz w sekcji Typy podróży w przewodniku 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 toAUTO
,TAXI
,TRUCK
,TWO_WHEELER
,BICYCLE
lubPEDESTRIAN
. 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 zapewnia obliczenia tras i czasu przejazdu, które odpowiadają trybowi podróży w ramach tych grup typów pojazdów:AUTO
,TAXI
lubTRUCK
: na przykład autostrady.TWO_WHEELER
: np. nie zwracają tras, na których nie są dozwolone pojazdy dwukołowe.BICYCLE
: na przykład ścieżki rowerowe.PEDESTRIAN
: na przykład mosty i chodniki 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
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 odwołanie providers.vehicles.create.