Dokumen ini mencakup kolom kendaraan penting yang dapat Anda perbarui saat membuat dan mengelola kendaraan.
|
Untuk mengetahui daftar lengkap kolom kendaraan, lihat:
|
Kolom status kendaraan
Sistem Anda dapat menetapkan status kendaraan ke OFFLINE
atau ONLINE
. Misalnya, Anda
dapat menetapkan status kendaraan ke ONLINE
setiap hari pukul 09.00 dan OFFLINE
setiap hari
pukul 17.00.
Mode OFFLINE | Mode ONLINE |
---|---|
Gunakan OFFLINE untuk menunjukkan bahwa kendaraan tidak menerima
perjalanan baru. Perhatikan bahwa kendaraan masih dapat menyelesaikan perjalanan yang ditetapkan saat
dalam status ini. |
|
Kolom atribut kendaraan
Gunakan kolom attributes
kendaraan untuk membuat kriteria yang disesuaikan agar konsumen atau operator armada Anda dapat menemukan kendaraan di armada Anda di berbagai kriteria penelusuran yang lebih luas. Hal ini meningkatkan kemampuan aplikasi Anda untuk
memberikan pencocokan kendaraan yang lebih baik daripada yang Anda lakukan dengan menggunakan kriteria penelusuran
yang hanya didasarkan pada kolom kendaraan lainnya. Setiap kendaraan dapat memiliki maksimal 100 atribut, dan setiap atribut harus memiliki kunci unik. Nilai bisa berupa {i>string<i},
boolean, atau angka.
Misalnya, Anda dapat mendeklarasikan atribut khusus yang disebut class untuk
membedakan kendaraan transportasi online di seluruh tingkat kelas. Anda akan menggunakan
nilai string berikut untuk merepresentasikan tingkat kelas kendaraan: ECONOMY
,
STANDARD
, dan LUXURY
.
Namun, nilai atribut khusus tidak harus saling eksklusif. Anda mungkin menggunakan kriteria seperti cocok untuk hewan peliharaan, tidak merokok, dan dapat melakukan perjalanan yang lebih lama. Masing-masing dapat berupa atribut kustom terpisah yang menggunakan nilai boolean. Kendaraan tertentu dapat diberi ketiga atribut khusus ini bersama dengan atribut khusus class yang ditetapkan ke nilai string yang sesuai.
Dengan menggunakan atribut dengan cara ini, Anda dapat memperoleh berbagai fitur yang berguna untuk menemukan kendaraan untuk perjalanan dengan kebutuhan tertentu. Untuk mendapatkan petunjuk tentang cara menggunakan atribut khusus sebagai filter kueri, lihat artikel Menelusuri kendaraan.
Memperbarui atribut kendaraan
Anda dapat memperbarui atribut kendaraan menggunakan UpdateVehicle
atau
UpdateVehicleAttributes
. Setiap kunci attributes
hanya dapat memiliki satu nilai per
kendaraan. Anda mendeklarasikan atribut kendaraan kustom menggunakan attributes
di mask kolom, lalu memberikan nilai berdasarkan metode di bawah.
UpdateVehicle |
UpdateVehicleAttributes |
|
---|---|---|
API ini tidak mengizinkan update satu atribut saja. Saat menggunakan
metode ini, penggunaan kolom attributes
di mask kolom akan menyebabkan seluruh kumpulan
atribut kendaraan dideklarasikan ulang untuk kendaraan. Hal ini menyebabkan
penimpaan atribut yang sudah ada sebelumnya dan tidak disertakan secara eksplisit dalam
mask kolom. Jika menggunakan metode ini untuk mendeklarasikan atribut khusus baru,
Anda juga harus mendeklarasikan ulang setiap atribut khusus yang Anda inginkan untuk dipertahankan
kendaraan. Jika Anda mengecualikan attributes dalam mask kolom,
metode ini akan membiarkan atribut khusus yang ada seperti yang ditentukan sebelumnya
untuk kendaraan. Jika Anda menggunakan attributes dalam mask kolom,
tetapi tanpa menetapkan nilai, hal ini setara dengan menghapus semua atribut
kustom dari kendaraan.
|
Metode ini menerima daftar tertentu atribut untuk diperbarui. Permintaan tersebut memperbarui atau hanya menambahkan atribut yang ditetapkan dalam mask kolom. Atribut yang sudah ada sebelumnya yang tidak ditentukan tetap tidak akan berubah. |
Perbarui contoh kolom kendaraan
Bagian ini menunjukkan cara memperbarui kolom kendaraan menggunakan UpdateVehicleRequest
, yang mencakup update_mask
untuk menunjukkan kolom yang akan diperbarui. Lihat dokumentasi Buffering Protokol tentang mask kolom untuk mengetahui detailnya.
Update pada kolom selain last_location
memerlukan hak istimewa Admin On-demand
Fleet Engine.
Contoh: aktifkan jenis perjalanan dan atribut khusus baru
Contoh ini memungkinkan perjalanan back_to_back
untuk kendaraan dan juga menentukan
atribut baru: class
. Seperti yang disebutkan di Memperbarui atribut kendaraan sebelumnya,
memperbarui kolom attributes
menggunakan pendekatan ini mengharuskan Anda menunjukkan semua
atribut kustom yang ingin dipertahankan. Oleh karena itu, contoh ini menunjukkan nilai cash_only
yang ditulis untuk mencegahnya ditimpa selama operasi pembaruan
yang menentukan kolom attributes
.
Untuk memperbarui nilai dari satu pasangan atribut nilai kunci saja, gunakan
metode UpdateVehicleAttributes
dan jangan sertakan kolom attribute
dalam mask kolom untuk permintaan UpdateVehicle
.
Lihat referensi providers.vehicles.update
untuk gRPC dan REST.
gRPC
static final String PROJECT_ID = "project-id";
static final String VEHICLE_ID = "vid-8241890";
VehicleServiceBlockingStub vehicleService = VehicleService.newBlockingStub(channel);
String vehicleName = "providers/" + PROJECT_ID + "/vehicles/" + VEHICLE_ID;
Vehicle updatedVehicle = Vehicle.newBuilder()
.setVehicleState(VehicleState.ONLINE)
.addAllAttributes(ImmutableList.of(
VehicleAttribute.newBuilder().setKey("class").setValue("ECONOMY").build(),
VehicleAttribute.newBuilder().setKey("cash_only").setValue("false").build()))
.setBackToBackEnabled(true)
.build();
UpdateVehicleRequest updateVehicleRequest = UpdateVehicleRequest.newBuilder()
.setName(vehicleName)
.setVehicle(updatedVehicle)
.setUpdateMask(FieldMask.newBuilder()
.addPaths("vehicle_state")
.addPaths("attributes")
.addPaths("back_to_back_enabled"))
.build();
try {
Vehicle updatedVehicle =
vehicleService.updateVehicle(updateVehicleRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
// Most implementations will call CreateVehicle in this case
break;
case PERMISSION_DENIED:
break;
}
return;
}
// If no Exception, Vehicle updated successfully.
REST
curl -X PUT \
"https://fleetengine.googleapis.com/v1/providers/project-id/vehicles/vid-8241890?updateMask=vehicle_state,attributes,back_to_back_enabled" \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
--data-binary @- << EOM
{
"vehicleState": "ONLINE",
"attributes": [
{"key": "class", "value": "LUXURY"},
{"key": "cash_only", "value": "false"}
],
"backToBackEnabled": true
}
EOM