Araç alanlarını güncelle

Bu dokümanda, araç oluşturup yönetirken güncelleyebileceğiniz önemli araç alanları ele alınmaktadır.

  • vehicle_state: Aracın kullanılabilirliğini belirler yeni seyahatler için uygundur.
  • vehicle_type: Araç oluştururken zorunlu alandır. Bu alan, araç eşleşmeleri için filtre ölçütü olarak da kullanılabilir. Bu alanın ayarlanması hakkında ayrıntılı bilgi için Araç oluşturma başlıklı makaleyi inceleyin.
  • attributes[]: İsteğe bağlı bir tür dizisi VehicleAttribute Araç arama veya listeleme sırasında filtreleme davranışını iyileştirmek için özel ölçütler tanımlamak amacıyla bu ölçütleri kullanın.
 

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 09:00'da ONLINE ve her gün OFFLINE olarak ayarlayabilirsiniz 17:00'de.

ÇEVRİMDIŞI modu ÇEVRİMİÇİ modu
Aracın kabul etmediğini belirtmek için OFFLINE kullanın yardımcı olabilir. Aracın bu durumdayken atanmış gezileri tamamlamaya devam edebileceğini unutmayın.
  • ONLINE durumunda oluşturulan bir Vehicle, SearchVehicles sorgu için yanıt. Daha fazla bilgi için Araç arama bölümüne bakın.
  • ONLINE durumunda oluşturulan araçlar last_location kullanmalıdır alanı (CreateVehicle çağrısı).

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 da uygulamalarınızın aşağıdakileri yapma kapasitesini geliştirir: arama ölçütlerini kullanarak elde edeceğinize kıyasla daha iyi araç eşleşmeleri sağlar araç trafiğine göre kullanılabilir. Her aracın en fazla 100 özelliği olabilir ve her birinin benzersiz bir anahtarı olmalıdır. Değerler dize olabilir, booleler veya sayılar.

Ö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.

Bununla birlikte, özel özellik değerlerinin birbirini dışlamasına gerek yoktur. Evcil hayvan kabul eden, sigara içilmeyen ve daha uzun seyahatlere çıkabilen gibi ölçütler kullanabilirsiniz. Bunların her biri, boole değerini kullanan ayrı birer değerler. Belirli bir araca bu özel özelliklerin üçü de atanabilir class özel özelliği ile birlikte uygun dize değerine ayarlanır.

Özellikleri bu şekilde kullanmak, belirli ihtiyaçları olan seyahatler için araç bulmanıza yardımcı olacak çok çeşitli özellikler sunabilir. Nasıl yapıldığını özel özellikleri sorgu filtreleri olarak kullanmak için Araç arama bölümüne bakın.

Araç özelliklerini güncelleyin

Araç özelliklerini güncellemek için UpdateVehicle veya UpdateVehicleAttributes. Her attributes anahtarı araç başına yalnızca bir değere sahip olabilir. Özel araç özelliklerini attributes kullanarak bildiriyorsanız sonra aşağıdaki yönteme göre değerler sağlayarak.

UpdateVehicle UpdateVehicleAttributes
Bu API yalnızca tek bir özelliğin güncellenmesine izin vermez. Bunu kullanırken attributes ürününün herhangi bir kullanımı alanı, maskenin tamamını araç için yeniden beyan edilen araç özellikleri. Bu, alan maskesine açıkça dahil edilmeyen önceden var olan tüm ö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 öğesini hariç tutarsanız Bu yöntem, mevcut özel özellikleri önceden tanımlandığı gibi bırakır araçtan bahsediyoruz. Alan maskesinde attributes kullanırsanız Ancak değer ayarlamadan bu, tüm özel özelliklerini kullanabilirsiniz. Bu yöntem güncelleyin. İ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. Bkz. Ayrıntılı bilgi için alan maskeleriyle ilgili Protokol Arabellekleri dokümanlarına 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, saklamak istediğiniz tüm özel özellikleri belirtmeniz gerekir. Dolayısıyla, örnekte bir cash_only bir güncelleme işlemi sırasında üzerine yazılmasını önlemek için yazılan değer attributes alanını belirten bir e-posta alırsınız.

Yalnızca bir anahtar/değer özellik çiftinin değerini güncellemek için UpdateVehicleAttributes yöntemini kullanın ve attribute alanını eklemeyin değerini girin.UpdateVehicle

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

Sırada ne var?