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ç ö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çta en fazla 100
özellikleri olmalı ve her birinin benzersiz bir anahtarı olmalıdır. Değerler dize, boole veya sayı olabilir.
Örneğin, zone adlı özel bir özellik tanımlayarak
Teslimat aracınızın şehrin hangi bölgesinde çalıştığını belirleyin.
farklı alt bölgeleri temsil etmek için aşağıdakiler gibi dize değerleri kullanın: 1B
,
2C
ve 3A
. Daha sonra, Filo İzleme'de yalnızca şunun için filtre kullanarak
o bölgeden sorumlu operatöre belirli bir bölgede çalışan araçlar.
Ancak özel özellik değerlerinin birbirini dışlaması gerekmez. gece-kullanılabildiği ve buzdolabı-var gibi ölçütler kullanabilirsiniz. Bunların her biri boole değerlerini kullanan ayrı bir özel özellik olabilir. Belirli bir araca, uygun dize değerine ayarlanmış bölge özel özelliğiyle birlikte bu özel özelliklerin üçü de atanabilir.
Araç özelliklerini güncelleme
Her attributes
anahtarı araç başına yalnızca bir değere sahip olabilir. Beyan ettiğiniz
sahada attributes
kullanan özel araç özelliklerini ve ardından
aşağıdaki yönteme göre değerler sağlayarak.
Bu UpdateDeliveryVehicle
API, yalnızca tek bir özelliğin güncellenmesine izin vermez. Bu yöntem kullanılırken attributes
alanının
alan maskesi, araç özelliklerinin tamamının yeniden bildirilmesine neden olur.
araçtan bahsediyoruz. Bu işlem, 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 korumasını 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.
Araç alanlarını güncelleme örneği
Bu bölümde, hangi alanların güncelleneceğini belirten bir update_mask
içeren UpdateDeliveryVehicleRequest
kullanılarak araç alanlarının nasıl güncelleneceği gösterilmektedir. Protokol Arabellekleri belgelerinde
alan maskelerini inceleyin.
last_location
dışındaki alanlarda yapılan güncellemeler Fleet Engine Delivery'yi gerektirir
Yönetici ayrıcalıkları.
Örnek: set custom attribute
Bu örnekte yeni bir özellik belirtilmiştir: zone
. 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 available-at-night
değeri gösterilmektedir.
providers.deliveryVehicles.patch referansına göz atı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