このドキュメントでは、追加可能な重要な車両フィールドについて説明します。 車両の作成と管理に役立ちます。
|
車両フィールドの完全なリストについては、以下をご覧ください。
|
車両状態フィールド
車両の状態は OFFLINE
または ONLINE
に設定できます。たとえば、
毎日午前 9 時と OFFLINE
に車両の状態を ONLINE
に設定する
午後 5 時です。
オフライン モード | オンライン モード |
---|---|
OFFLINE を使用して、車両が通行していないことを示す
作成します。なお、割り当てられたルートを完了している間も、
必要があります。 |
|
車両属性フィールド
車両の attributes
フィールドを使用して、カスタマイズした条件を作成し、
車両を幅広く探せるようにしました。
さまざまな検索条件を指定できます。これにより、アプリの機能が強化され、
検索条件を使用した結果よりも車両の一致率が向上します
他の車両フィールドのみに基づいて生成されます。1 台につき最大 100 台まで
それぞれに一意のキーが必要です。値は文字列、
ブール値、数値などです。
たとえば、class というカスタム属性を宣言して、
クラスレベルでライドシェア車両を区別できます。次を使用:
車両クラスのレベルを表す文字列値 ECONOMY
、
STANDARD
、LUXURY
。
ただし、カスタム属性値は相互に排他的である必要はありません。もしかしたら、 ペット同伴、非喫煙、長く待つなどの基準を使用します ルート。それぞれをブール値属性を持つ個別のカスタム属性にできます。 使用できます。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
リクエストのフィールド マスクで指定する必要があります。
gRPC と REST の 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