|
Bu dokümanda, araç oluştururken ve yönetirken güncelleyebileceğiniz önemli araç alanları ele alınmaktadır.
|
Araç alanlarının tam listesi için şu sayfaları inceleyin: |
Araç özellikleri alanı
Tüketicilerinizin veya filo operatörlerinizin filonuzdaki araçları daha geniş bir arama ölçütü yelpazesinde bulabilmesi için özelleştirilmiş ölçütler oluşturmak üzere araç attributes alanını kullanın. Bu sayede uygulamalarınızın özellikleri geliştirilir ve yalnızca diğer araç alanlarına dayalı arama ölçütlerini kullanarak elde edeceğinizden daha iyi araç eşleşmeleri sağlanır. Her araçta en fazla 100 özellik olabilir ve her birinin benzersiz bir anahtarı olmalıdır. Değerler dize, Boole
veya sayı olabilir.
Örneğin, teslimat araçlarınızın şehrin hangi bölgesinde çalıştığını ayırt etmek için bölge adlı özel bir özellik tanımlayabilirsiniz. Farklı bölgeleri temsil etmek için 1B, 2C ve 3A gibi dize değerleri kullanırsınız. Ardından, Filo Takibi'nde yalnızca belirli bir bölgede çalışan araçları o bölgeden sorumlu operatöre göstermek için bir filtre kullanabilirsiniz.
Ancak özel özellik değerlerinin karşılıklı olarak birbirini dışlaması gerekmez. available-at-night ve has-refrigeration gibi ölçütler kullanabilirsiniz. Bunların her biri, boole değerleri kullanan ayrı bir özel özellik olabilir. Belirli bir araca, uygun dize değerine ayarlanmış bölge özel özelliğiyle birlikte bu üç özel özelliğin tümü atanabilir.
Araç özelliklerini güncelleme
Her attributes anahtarının araç başına yalnızca bir değeri olabilir. Alan maskesinde attributes kullanarak özel araç özelliklerini bildirir ve ardından aşağıdaki yönteme göre değerler sağlarsınız.
Bu UpdateDeliveryVehicle API'si, yalnızca tek bir özelliğin güncellenmesine izin vermez. Bu yöntem kullanılırken alan maskesindeki attributes alanının herhangi bir kullanımı, araç özelliklerinin tamamının araç için yeniden bildirilmesine neden olur. Bu, alan maskesine açıkça dahil edilmeyen önceden mevcut tüm özelliklerin üzerine yazılmasına neden olur. Yeni bir özel özellik bildirmek için bu yöntemi kullanırsanız aracın korumasını istediğiniz her özel özelliği de yeniden bildirmeniz gerekir. Alan maskesinde attributes hariç tutulursa bu yöntem, mevcut özel özellikleri araç için daha önce tanımlandığı şekilde bırakır.
Alan maskesinde attributes kullanır ancak değer ayarlamazsanız bu, araçtan tüm özel özellikleri kaldırmakla eşdeğerdir.
Araç alanlarını güncelleme örneği
Bu bölümde, güncellenecek alanları belirtmek için update_mask içeren UpdateDeliveryVehicleRequest kullanılarak araç alanlarının nasıl güncelleneceği gösterilmektedir. Ayrıntılar için alan maskeleri ile ilgili protokol arabelleği belgelerine bakın.
last_location dışındaki alanlarda yapılacak güncellemeler için Fleet Engine Teslimat Yöneticisi ayrıcalıkları gerekir.
Örnek: Özel özellik ayarlama
Bu örnekte yeni bir özellik belirtiliyor: zone. Daha önce Araç özelliklerini güncelleme bölümünde belirtildiği gibi, attributes alanını bu yaklaşımla güncellerken 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 available-at-night değeri gösterilmektedir.
providers.deliveryVehicles.patch referansına bakın.
gRPC
static final String PROJECT_ID = "my-delivery-co-gcp-project";
static final String VEHICLE_ID = "vehicle-8241890";
DeliveryServiceBlockingStub deliveryService =
DeliveryServiceGrpc.newBlockingStub(channel);
// Vehicle settings
String vehicleName = "providers/" + PROJECT_ID + "/deliveryVehicles/" + VEHICLE_ID;
DeliveryVehicle myDeliveryVehicle = DeliveryVehicle.newBuilder()
.addAllAttributes(ImmutableList.of(
DeliveryVehicleAttribute.newBuilder().setKey("zone").setValue("1B").build(),
DeliveryVehicleAttribute.newBuilder().setKey("available-at-night").setValue("true").build()))
.build();
// DeliveryVehicle request
UpdateDeliveryVehicleRequest updateDeliveryVehicleRequest =
UpdateDeliveryVehicleRequest.newBuilder() // No need for the header
.setName(vehicleName)
.setDeliveryVehicle(myDeliveryVehicle)
.setUpdateMask(FieldMask.newBuilder()
.addPaths("attributes"))
.build();
try {
DeliveryVehicle updatedDeliveryVehicle =
deliveryService.updateDeliveryVehicle(updateDeliveryVehicleRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
REST
# Set JWT, PROJECT_ID, VEHICLE_ID, TASK1_ID, and TASK2_ID in the local
# environment
curl -X PATCH "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/deliveryVehicles/${VEHICLE_ID}?updateMask=attributes" \
-H "Content-type: application/json" \
-H "Authorization: Bearer ${JWT}" \
--data-binary @- << EOM
{
"attributes": [
{"key": "zone", "value": "1B"},
{"key": "available-at-night", "value": "true"}
]
}
EOM