|
Dokumen ini membahas 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 menyetel status kendaraan ke OFFLINE atau ONLINE. Misalnya, Anda
dapat menyetel status kendaraan ke ONLINE setiap hari pada pukul 09.00 dan OFFLINE setiap hari
pada 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 dalam armada Anda di berbagai
kriteria penelusuran yang lebih luas. Hal ini meningkatkan kemampuan aplikasi Anda untuk
memberikan kecocokan kendaraan yang lebih baik daripada yang Anda dapatkan dari penggunaan kriteria penelusuran
yang hanya didasarkan pada kolom kendaraan lainnya. Setiap kendaraan dapat memiliki maksimal 100
atribut, dan setiap atribut harus memiliki kunci unik. Nilai dapat berupa string, boolean, atau angka.
Misalnya, Anda dapat mendeklarasikan atribut kustom yang disebut class untuk
membedakan kendaraan transportasi online di berbagai tingkat kelas. Anda akan menggunakan
nilai string berikut untuk merepresentasikan level kelas kendaraan: ECONOMY,
STANDARD, dan LUXURY.
Namun, nilai atribut kustom tidak harus saling eksklusif. Anda dapat menggunakan kriteria seperti boleh membawa hewan peliharaan, bebas asap rokok, dan dapat melakukan perjalanan yang lebih lama. Masing-masing dapat berupa atribut khusus terpisah yang menggunakan nilai boolean. Kendaraan tertentu dapat diberi ketiga atribut kustom ini bersama dengan atribut kustom class yang ditetapkan ke nilai string yang sesuai.
Menggunakan atribut dengan cara ini dapat memberi Anda berbagai fitur yang berguna untuk menemukan kendaraan untuk perjalanan dengan kebutuhan tertentu. Untuk petunjuk tentang cara menggunakan atribut kustom sebagai filter kueri, lihat 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
dalam mask kolom, lalu memberikan nilai berdasarkan metode di bawah.
UpdateVehicle |
UpdateVehicleAttributes |
|
|---|---|---|
API ini tidak mengizinkan pembaruan hanya satu atribut. Saat menggunakan
metode ini, setiap penggunaan kolom attributes
dalam mask kolom akan menyebabkan seluruh kumpulan
atribut kendaraan dideklarasikan ulang untuk kendaraan. Hal ini akan menimpa atribut yang sudah ada sebelumnya yang tidak disertakan secara eksplisit dalam mask kolom. Jika menggunakan metode ini untuk mendeklarasikan atribut kustom baru,
Anda juga harus mendeklarasikan ulang setiap atribut kustom yang ingin dipertahankan
oleh kendaraan. Jika Anda mengecualikan attributes dalam mask kolom,
metode ini akan membiarkan atribut kustom yang ada seperti yang telah ditentukan sebelumnya
untuk kendaraan. Jika Anda menggunakan attributes di mask kolom,
tetapi tanpa menetapkan nilai, hal ini sama dengan menghapus semua atribut
kustom dari kendaraan.
|
Metode ini menerima daftar atribut tertentu untuk diperbarui. Permintaan ini hanya mengupdate atau menambahkan atribut yang ditentukan dalam mask kolom. Atribut yang sudah ada sebelumnya dan tidak ditentukan akan tetap tidak berubah. |
Contoh memperbarui kolom kendaraan
Bagian ini menunjukkan cara memperbarui kolom kendaraan menggunakan UpdateVehicleRequest,
yang menyertakan update_mask untuk menunjukkan kolom yang akan diperbarui. Lihat dokumentasi Buffering Protokol tentang mask kolom untuk mengetahui detailnya.
Pembaruan pada kolom selain last_location memerlukan hak istimewa Fleet Engine On-demand
Admin.
Contoh: mengaktifkan jenis perjalanan baru dan atribut kustom
Contoh ini mengaktifkan perjalanan back_to_back untuk kendaraan dan juga menentukan
atribut baru: class. Seperti yang disebutkan dalam 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 update
yang menentukan kolom attributes.
Untuk hanya memperbarui nilai satu pasangan atribut nilai kunci, 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