Untuk membuat kendaraan di Fleet Engine untuk perjalanan on-demand, gunakan endpoint CreateVehicle
dengan CreateVehicleRequest
. Endpoint ini memerlukan akun dengan peran Admin On-demand Fleet Engine.
Kolom untuk kendaraan perjalanan on-demand
Saat membuat kendaraan untuk perjalanan on-demand, Anda harus menetapkan kolom yang diperlukan. Anda juga harus memahami pengaruh kolom kendaraan tertentu terhadap fungsi lainnya di Fleet Engine. Lihat Memperbarui kolom kendaraan untuk mengetahuinya.
Kolom wajib diisi untuk perjalanan on demand
vehicle_state
: Defaultnya adalah tidak diketahui, tetapi harus ditetapkan ke ONLINE atau OFFLINE. Lihat informasi tentang cara menetapkan kolom status kendaraan di Memperbarui kolom kendaraan.supported_trip_types
: Default-nya adalah tidak diketahui, tetapi harus ditetapkan ke SHARED, EXCLUSIVE, atau keduanya. Lihat Jenis perjalanan di panduan Perjalanan on demand untuk mengetahui detailnya.maximum_capacity
: Jumlah penumpang yang dapat diangkut kendaraan, yang tidak termasuk pengemudi (menurut definisi).vehicle_type
: Nilainya adalahAUTO
,TAXI
,TRUCK
,TWO_WHEELER
,BICYCLE
, atauPEDESTRIAN
. Dapat digunakan untuk memfilter kendaraan untuk penelusuran kendaraan. Hal ini juga memengaruhi perkiraan waktu tiba dan penghitungan rute. Fleet Engine menyediakan rute dan penghitungan perjalanan yang sesuai dengan mode perjalanan berdasarkan grup jenis kendaraan berikut:AUTO
,TAXI
, atauTRUCK
: misalnya jalan raya.TWO_WHEELER
: misalnya, tidak akan menampilkan rute yang tidak mengizinkan kendaraan roda 2.BICYCLE
: misalnya, jalur sepeda.PEDESTRIAN
: misalnya jembatan dan jalan setapak khusus pejalan kaki.
Kolom lainnya
Untuk kolom lain yang dapat Anda tetapkan saat membuat kendaraan, lihat Memperbarui kolom kendaraan.
Contoh pembuatan kendaraan
Nilai yang ditampilkan dari CreateVehicle
adalah entity Vehicle
yang dibuat.
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
Lihat referensi providers.vehicles.create.