Bu belgede, araç oluşturma ve yönetme sırasında 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 09:00'da ONLINE
, her gün saat 17:00'de OFFLINE
olarak ayarlayabilirsiniz.
ÇEVRİMDIŞI modu | ONLINE modu |
---|---|
Bir aracın yeni yolculuk kabul etmediğini belirtmek için OFFLINE simgesini kullanın. Araç bu durumdayken atanmış yolculukları tamamlayabilir. |
|
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 özelleştirilmiş ölçütler oluşturmak üzere araç attributes
alanını kullanın. Bu, uygulamalarınızın yalnızca diğer araç alanlarına dayalı arama ölçütlerini kullanarak elde edeceğinizden daha iyi araç eşleşmeleri sağlamak için yeteneklerini geliştirir. 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, araç paylaşımı araçlarınızı sınıf düzeylerine göre ayırt etmek için class adlı bir özel özellik bildirebilirsiniz. Araç sınıfı seviyelerini belirtmek için şu dize değerlerini kullanırsınız: ECONOMY
, STANDARD
ve LUXURY
.
Ancak özel özellik değerlerinin karşılıklı olarak birbirini dışlaması gerekmez. Evcil hayvan dostu, sigara içilmeyen ve daha uzun yolculuklar yapabilen 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ış class özel özelliğiyle birlikte bu üç özel özelliğin tümü atanabilir.
Özellikleri bu şekilde kullanmak, belirli ihtiyaçlara yönelik geziler için araç bulmanıza yardımcı olacak çeşitli özellikler sunabilir. Özel özellikleri sorgu filtresi olarak kullanmayla 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. Alan maskesinde attributes
kullanarak özel araç özelliklerini beyan edersiniz ve ardından aşağıdaki yönteme göre değerler sağlarsınız.
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 herhangi bir kullanımı, araç özelliklerinin tamamının araç için yeniden bildirilmesine neden olur. Bu, alan maskesine açıkça dahil edilmemiş önceden var olan tüm özelliklerin üzerine yazılmasına neden olur. Yeni bir özel özelliği bildirmek için bu yöntemi kullanırsanız aracın saklamasını istediğiniz her özel özelliği de yeniden bildirmeniz gerekir. Alan maskesinde attributes öğesini hariç tutarsanız bu yöntem, mevcut özel özellikleri araç için daha önce tanımlandığı şekilde bırakır. Alan maskesinde attributes kullanırsanız ancak değerleri ayarlamazsanız bu, tüm özel özellikleri araçtan kaldırmaya eşdeğerdir.
|
Bu yöntem, güncellenecek belirli bir özellik listesini kabul eder. İstek, yalnızca alan maskesinde belirtilen özellikleri günceller veya ekler. Belirtilmeyen mevcut özellikler değişmeden kalır. |
Araç alanlarını güncelleme örneği
Bu bölümde, hangi alanların güncelleneceğini belirtmek için update_mask
karakterinin kullanıldığı UpdateVehicleRequest
ile 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
Admin ayrıcalıkları gerekir.
Örnek: Yeni gezi türünü ve özel özelliği etkinleştirme
Bu örnekte araç için back_to_back
yolculuk etkinleştirilir ve yeni bir özellik de belirtilir: class
. Daha önce Araç özelliklerini güncelleme bölümünde belirtildiği gibi, bu yaklaşımı kullanarak attributes
alanını 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 cash_only
değeri gösterilmektedir.
Yalnızca bir anahtar/değer özellik çiftinin değerini güncellemek için UpdateVehicleAttributes
yöntemini kullanın ve UpdateVehicle
isteğinin 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