이 문서에서는 차량을 만들고 관리할 때 업데이트할 수 있는 중요한 차량 필드를 설명합니다.
|
차량 필드의 전체 목록은 다음을 참고하세요.
|
차량 상태 필드
시스템에서 차량 상태를 OFFLINE
또는 ONLINE
로 설정할 수 있습니다. 예를 들어 매일 오전 9시에 차량 상태를 ONLINE
로, 오후 5시에 OFFLINE
로 설정할 수 있습니다.
OFFLINE 모드 | ONLINE 모드 |
---|---|
OFFLINE 를 사용하여 차량이 새 이동을 허용하지 않음을 나타냅니다. 이 상태에서도 차량은 할당된 이동을 완료할 수 있습니다. |
|
차량 속성 필드
차량 attributes
필드를 사용하여 맞춤 기준을 만들어 소비자 또는 차량 관리자가 다양한 검색 기준을 통해 차량에서 차량을 찾을 수 있도록 합니다. 이렇게 하면 다른 차량 필드에만 기반한 검색 기준을 사용하는 것보다 더 나은 차량 일치를 제공하는 앱의 기능이 향상됩니다. 각 차량에는 최대 100개의 속성이 있을 수 있으며, 각 속성에는 고유한 키가 있어야 합니다. 값은 문자열, 불리언 또는 숫자일 수 있습니다.
예를 들어 class라는 맞춤 속성을 선언하여 등급 수준별로 차량 공유 차량을 구분할 수 있습니다. 차량 등급 수준을 나타내려면 다음 문자열 값을 사용합니다. ECONOMY
, STANDARD
, LUXURY
하지만 맞춤 속성 값은 상호 배타적이지 않아도 됩니다. 반려동물 동반 가능, 금연, 장거리 이동 가능과 같은 기준을 사용할 수 있습니다. 이러한 각 속성은 불리언 값을 사용하는 별도의 맞춤 속성일 수 있습니다. 지정된 차량에는 이러한 세 가지 맞춤 속성과 함께 적절한 문자열 값으로 설정된 class 맞춤 속성이 할당될 수 있습니다.
이렇게 속성을 사용하면 특정 니즈가 있는 이동에 적합한 차량을 찾는 데 유용한 다양한 기능을 제공할 수 있습니다. 맞춤 속성을 쿼리 필터로 사용하는 방법에 관한 안내는 차량 검색을 참고하세요.
차량 속성 업데이트
UpdateVehicle
또는 UpdateVehicleAttributes
를 사용하여 차량 속성을 업데이트할 수 있습니다. 각 attributes
키에는 차량당 하나의 값만 있을 수 있습니다. 필드 마스크에서 attributes
를 사용하여 맞춤 차량 속성을 선언한 다음 아래 메서드를 기반으로 값을 제공합니다.
UpdateVehicle |
UpdateVehicleAttributes |
|
---|---|---|
이 API는 단일 속성만 업데이트할 수 없습니다. 이 메서드를 사용하면 필드 마스크에서 attributes 필드를 사용하면 차량에 대한 차량 속성의 전체 세트가 다시 선언됩니다. 이렇게 하면 필드 마스크에 명시적으로 포함되지 않은 기존 속성이 덮어쓰기됩니다. 이 메서드를 사용하여 새 맞춤 속성을 선언하는 경우 차량에 유지하려는 모든 맞춤 속성도 다시 선언해야 합니다. 필드 마스크에서 attributes 를 제외하면 이 메서드는 기존 맞춤 속성을 차량에 대해 이전에 정의된 대로 그대로 둡니다. 필드 마스크에서 attributes 를 사용하지만 값을 설정하지 않으면 차량에서 모든 맞춤 속성을 삭제하는 것과 같습니다.
|
이 메서드는 업데이트할 속성의 특정 목록을 허용합니다. 요청은 필드 마스크에 지정된 속성만 업데이트하거나 추가합니다. 지정되지 않은 기존 속성은 변경되지 않고 그대로 유지됩니다. |
차량 필드 업데이트 예시
이 섹션에서는 업데이트할 필드를 나타내는 update_mask
가 포함된 UpdateVehicleRequest
를 사용하여 차량 필드를 업데이트하는 방법을 보여줍니다. 자세한 내용은 필드 마스크에 관한 프로토콜 버퍼 문서를 참고하세요.
last_location
이외의 필드를 업데이트하려면 Fleet Engine 주문형 관리자 권한이 필요합니다.
예: 새 이동 유형 및 맞춤 속성 사용 설정
이 예에서는 차량의 back_to_back
이동을 사용 설정하고 새 속성 class
를 지정합니다. 앞의 차량 속성 업데이트에서 설명한 것처럼 이 접근 방식을 사용하여 attributes
필드를 업데이트하려면 유지하려는 모든 맞춤 속성을 표시해야 합니다. 따라서 이 예에서는 attributes
필드를 지정하는 업데이트 작업 중에 덮어쓰지 않도록 보존하기 위해 작성된 cash_only
값을 보여줍니다.
하나의 키-값 속성 쌍의 값만 업데이트하려면 UpdateVehicleAttributes
메서드를 대신 사용하고 UpdateVehicle
요청의 필드 마스크에 attribute
필드를 포함하지 마세요.
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