Bu dokümanda, araç oluşturup yönetirken güncelleyebileceğiniz önemli araç alanları ele alınmaktadır.
|
Araç alanlarının tam listesi için:
|
Araç durumu alanı
Sisteminiz araç durumunu OFFLINE
veya ONLINE
olarak ayarlayabilir. Örneğin, araç durumunu her gün saat 9:00'da ONLINE
ve her gün saat 17:00'da OFFLINE
olarak ayarlayabilirsiniz.
ÇEVRİMDIŞI mod | ONLINE modu |
---|---|
Bir aracın yeni seyahatleri kabul etmediğini belirtmek için OFFLINE simgesini kullanın. Aracın bu durumdayken atanmış gezileri tamamlamaya devam edebileceğini unutmayın. |
|
Araç özellikleri alanı
Tüketicilerinizin veya filo operatörlerinizin filonuzdaki araçları daha geniş bir arama ölçütü yelpazesinde bulmasını sağlamak için özel ölçütler oluşturmak üzere araç attributes
alanını kullanın. Bu sayede, uygulamalarınızın yalnızca diğer araç alanlarına dayalı arama ölçütlerini kullanarak elde edebileceğinizden daha iyi araç eşleşmeleri sunma özellikleri geliştirilir. Her araç en fazla 100 özelliğe sahip olabilir ve her birinin benzersiz bir anahtarı olmalıdır. Değerler dize, boole veya sayı olabilir.
Örneğin, araç paylaşma araçlarınızı sınıf düzeylerine göre ayırt etmek için class adlı bir özel özellik tanımlayabilirsiniz. Araç sınıfı seviyelerini temsil etmek için şu dize değerlerini kullanırsınız: ECONOMY
, STANDARD
ve LUXURY
.
Ancak özel özellik değerlerinin birbirini dışlaması gerekmez. Evcil hayvan dostu, sigara içilmeyen ve daha uzun seyahatlere çıkabilme gibi ölçütleri kullanabilirsiniz. Bunların her biri, doğru/yanlış değerleri kullanan ayrı bir özel özellik olabilir. Belirli bir araca, bu özel özelliklerin üçü de ve uygun dize değerine ayarlanmış class özel özelliği atanabilir.
Özellikleri bu şekilde kullanmak, belirli ihtiyaçlara sahip geziler için araç bulmanıza yardımcı olacak çok çeşitli özellikler sunabilir. Özel özelliklerin sorgu filtreleri olarak nasıl kullanılacağıyla ilgili talimatlar için Araç arama başlıklı makaleyi inceleyin.
Araç özelliklerini güncelleme
Araç özelliklerini UpdateVehicle
veya UpdateVehicleAttributes
kullanarak güncelleyebilirsiniz. Her attributes
anahtarı araç başına yalnızca bir değere sahip olabilir. Özel araç özelliklerini, alan maskesinde attributes
kullanarak ve ardından aşağıdaki yönteme göre değerler sağlayarak bildirirsiniz.
UpdateVehicle |
UpdateVehicleAttributes |
|
---|---|---|
Bu API, yalnızca tek bir özelliğin güncellenmesine izin vermez. Bu yöntem kullanılırken alan maskesinde attributes alanının kullanılması, araç özellikleri grubunun tamamının araç için yeniden tanımlanmasına neden olur. Bu, alan maskesine açıkça dahil edilmeyen önceden var olan özelliklerin üzerine yazılmasına neden olur. Yeni bir özel özellik tanımlamak için bu yöntemi kullanırsanız aracın muhafaza etmesini istediğiniz her özel özelliği de yeniden tanımlamanız gerekir. Alan maskesinde attributes değerini hariç tutarsanız bu yöntem, mevcut özel özellikleri araç için daha önce tanımlandığı şekilde bırakır. Alan maskesinde attributes değerini kullanır ancak değer ayarlamazsanız bu, tüm özel özelliklerin araçtan kaldırılmasına eşdeğerdir.
|
Bu yöntem, güncellenecek özelliklerin belirli bir listesini kabul eder. İstek yalnızca alan maskesinde belirtilen özellikleri günceller veya ekler. Belirtilmeyen önceden var olan özellikler değiştirilmez. |
Araç alanlarını güncelleme örneği
Bu bölümde, hangi alanların güncelleneceğini belirten bir update_mask
içeren UpdateVehicleRequest
kullanılarak araç alanlarının nasıl güncelleneceği gösterilmektedir. Ayrıntılar için alan maskeleri ile ilgili Protocol Buffers belgelerine bakın.
last_location
dışındaki alanlarda yapılan güncellemeler için Fleet Engine On-demand Yöneticisi ayrıcalıkları gerekir.
Örnek: Yeni gezi türünü ve özel özelliği etkinleştirme
Bu örnekte, araç için back_to_back
gezi etkinliği etkinleştirilir ve yeni bir özellik (class
) belirtilir. Daha önce Araç özelliklerini güncelleme bölümünde belirtildiği gibi, bu yaklaşımı kullanarak attributes
alanını güncellemek için korumak istediğiniz tüm özel özellikleri belirtmeniz gerekir. Bu nedenle örnekte, attributes
alanını belirten bir güncelleme işlemi sırasında üzerine yazılmasını önlemek için yazılmış bir cash_only
değeri gösterilmektedir.
Yalnızca bir anahtar/değer özellik çiftinin değerini güncellemek için bunun yerine UpdateVehicleAttributes
yöntemini kullanın ve UpdateVehicle
isteği için alan maskesine attribute
alanını eklemeyin.
gRPC ve REST için providers.vehicles.update
referansına bakın.
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