車両フィールドを更新する

このドキュメントでは、追加可能な重要な車両フィールドについて説明します。 車両の作成と管理に役立ちます。

  • vehicle_state: 車両の在庫状況を判別します。 予測します
  • vehicle_type: 車両を作成する際の必須フィールド。 このフィールドは、車両が一致するかどうかのフィルタ条件としても機能します。 詳しくは、 車両を作成する をご覧ください。
  • attributes[]: オプションの配列 VehicleAttribute。使用 カスタム条件を定義して 車両を検索または一覧表示する際のフィルタ動作。
 

車両フィールドの完全なリストについては、以下をご覧ください。

車両状態フィールド

車両の状態は OFFLINE または ONLINE に設定できます。たとえば、毎日午前 9 時に車両の状態を ONLINE に設定し、毎日午後 5 時に OFFLINE に設定できます。

オフライン モード オンライン モード
OFFLINE を使用して、車両が通行していないことを示す 作成します。なお、割り当てられたルートを完了している間も、 必要があります。
  • ONLINE 状態で作成された Vehicle は、すぐに返される可能性があります。 SearchVehicles 件のクエリに対するレスポンス。 車両を検索するをご覧ください。 詳細 表示されます。
  • ONLINE 状態で作成された車両は、last_location を使用する必要があります。 CreateVehicle 呼び出しでフィールドを指定する必要があります。

車両属性フィールド

車両の attributes フィールドを使用して、カスタマイズした条件を作成し、 車両を幅広く探せるようにしました。 さまざまな検索条件を指定できます。これにより、アプリの機能が強化され、 検索条件を使用した結果よりも車両の一致率が向上します 他の車両フィールドのみに基づいて生成されます。1 台につき最大 100 台まで それぞれに一意のキーが必要です。値は文字列、 ブール値、数値などです。

たとえば、class というカスタム属性を宣言して、クラスレベルでライドシェアリング ビークルを区別できます。次を使用: 車両クラスのレベルを表す文字列値 ECONOMYSTANDARDLUXURY

ただし、カスタム属性値は相互に排他的である必要はありません。もしかしたら、 ペット同伴非喫煙長く待つなどの基準を使用します ルート。それぞれをブール値属性を持つ個別のカスタム属性にできます。 使用できます。1 つの車両に、これら 3 つのカスタム属性すべてを割り当てることが可能 適切な文字列値に設定された class カスタム属性も指定する必要があります。

このように属性を使用すると、特定のニーズがある旅行に適した車両を見つけるのに役立つさまざまな機能を利用できます。インフラストラクチャの カスタム属性をクエリフィルタとして使用する方法については、検索車両をご覧ください。

車両属性を更新する

車両属性は、UpdateVehicle または UpdateVehicleAttributes。各 attributes キーに含めることができる値は、 車両。カスタム車両属性を宣言するには、フィールドマスクで attributes を使用し、以下の方法に基づいて値を指定します。

UpdateVehicle UpdateVehicleAttributes
この API では、1 つの属性のみを更新することはできません。使用する場合 このメソッドの場合、attributes フィールド マスクのフィールドで、 車両の車両属性が再宣言されている。これにより、フィールドマスクに明示的に含まれていない既存の属性が上書きされます。この方法で新しいカスタム属性を宣言する場合、 車両に取り込むカスタム属性もすべて再宣言する必要があります。 維持しますフィールド マスクで attributes を除外すると、次のようになります。 このメソッドでは、既存のカスタム属性が以前に定義されたままになります。 使用します。フィールド マスクで attributes を使用しても値を設定しない場合は、車両からすべてのカスタム属性が削除された場合と同じです。 このメソッドは、属性の特定のリストを受け入れ、 更新されます指定した属性のみを更新または追加する 使用できます。指定されていない既存の属性は変更されません。

車両フィールドの更新の例

このセクションでは、UpdateVehicleRequest を使用して車両フィールドを更新する方法について説明します。 更新するフィールドを示す update_mask が含まれています。詳しくは、 詳細については、フィールド マスクに関するプロトコル バッファのドキュメントをご確認ください。

last_location 以外のフィールドを更新するには、Fleet Engine On demand が必要です Admin 権限が含まれます。

例: 新しいルートタイプとカスタム属性を有効にする

この例では、車両で back_to_back ルートを有効にし、 新しい属性: class。前述の車両属性を更新するで説明したように、この方法で attributes フィールドを更新するには、保持するカスタム属性をすべて指定する必要があります。したがって、この例は cash_only を示しています。 更新オペレーション中に上書きされないようにするために書き込まれた値 attributes フィールドを指定します。

1 つの Key-Value 属性ペアの値のみを更新するには、 UpdateVehicleAttributes メソッドを使用し、attribute フィールドを含めないでください。 UpdateVehicle リクエストのフィールド マスクで指定する必要があります。

gRPCREST については、providers.vehicles.update リファレンスをご覧ください。

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

次のステップ