차량 필드 업데이트

이 문서에서는 작업을 수행할 수 있는 중요한 차량 필드를 다룹니다. 업데이트할 때 사용됩니다.

  • vehicle_state: 차량의 이용 가능 여부를 결정합니다. 새로운 경로를 찾을 수 있습니다.
  • vehicle_type: 차량을 만들 때 필수 필드입니다. 이 필드는 차량 일치를 위한 필터 기준 역할을 할 수도 있습니다. 자세한 내용은 차량 만들기 참조하세요.
  • attributes[]: 유형의 배열(선택사항) VehicleAttribute 사용 맞춤 기준을 정의하여 더욱 효과적인 차량 검색 또는 나열 시 필터링 동작
 

차량 필드의 전체 목록은 다음을 참고하세요.

차량 상태 필드

시스템에서 차량 상태를 OFFLINE 또는 ONLINE로 설정할 수 있습니다. 예를 들어 매일 오전 9시, 매일 OFFLINE에 차량 상태를 ONLINE(으)로 설정할 수 있음 오후 5시에요.

오프라인 모드 온라인 모드
OFFLINE을 사용하여 차량이 수락되지 않음을 나타냅니다. 새로운 경로를 찾을 수 있습니다. 참고로, 차량이 할당된 이동을 완료하는 동안에도 볼 수 있습니다
  • ONLINE 상태에서 생성된 Vehicle는 다음 위치에서 즉시 반환될 수 있음: SearchVehicles개 쿼리에 대한 응답입니다. 차량 검색을 참고하세요. 자세히 알아보기 확인하세요.
  • ONLINE 상태에서 생성된 차량은 last_location를 사용해야 합니다. 필드를 CreateVehicle 호출하세요.

차량 속성 필드

차량 attributes 필드를 사용하여 맞춤설정된 기준을 만들어 더 넓은 범위의 차량에서 차량을 찾을 수 있습니다. 검색 기준을 만들 수 있습니다. 이렇게 하면 앱의 기능이 향상되어 검색 기준을 사용할 때보다 더 나은 차량 일치를 제공합니다. 다른 차량 필드에만 기반합니다. 각 차량은 최대 100대 속성이며, 각 속성에는 고유한 키가 있어야 합니다. 값은 문자열, 사용할 수 있습니다.

예를 들어 class라는 맞춤 속성을 선언하여 클래스 수준에 따라 차량 공유 차량을 차별화합니다. 이 경우 차량 클래스 수준을 나타내는 다음 문자열 값 ECONOMY, STANDARD, LUXURY

하지만 맞춤 속성 값을 상호 배타적으로 사용할 필요는 없습니다. 이 반려동물 동반 가능, 금연, 시간이 오래 걸림과 같은 기준을 사용 여정에 대해 자세히 알아보세요. 이러한 속성은 불리언 값을 사용하는 별도의 맞춤 속성일 수 있습니다. 값으로 사용됩니다. 특정 차량에 다음 세 가지 커스텀 속성을 모두 할당할 수 있음 class 맞춤 속성과 함께 적절한 문자열 값으로 설정하세요.

이런 식으로 속성을 사용하면 특정 니즈가 있는 여행을 위한 차량 찾기 방법에 대한 안내를 보려면 맞춤 속성을 쿼리 필터로 사용하려면 차량 검색을 참고하세요.

차량 속성 업데이트

UpdateVehicle 또는 UpdateVehicleAttributes입니다. 각 attributes 키는 당 하나의 값만 가질 수 있습니다. 차량 attributes를 사용하여 맞춤 차량 속성을 선언합니다. 필드 마스크에 넣은 다음 아래 메서드에 따라 값을 제공합니다.

UpdateVehicle UpdateVehicleAttributes
이 API는 단일 속성만 업데이트할 수 없습니다. 이 메서드, attributes 마스크의 전체 집합은 차량에 대해 다시 선언되는 차량 속성입니다. 그 결과 에 명시적으로 포함되지 않은 기존 속성을 덮어씁니다. 필드 마스크 이 메서드를 사용하여 새 맞춤 속성을 선언하는 경우 또한 차량에 적용하고자 하는 모든 맞춤 속성을 있습니다. 필드 마스크에서 attributes를 제외하면 이 메서드는 기존 맞춤 속성을 이전에 정의된 대로 유지합니다. 사용됩니다. 필드 마스크에 attributes를 사용하는 경우 값을 설정하지 않으면 속성을 가져옵니다. 이 메서드는 특정 목록을 수락하여 업데이트. 요청은 지정된 속성만 업데이트하거나 추가합니다. 필드 마스크에 포함되어야 합니다. 지정되지 않은 기존 속성은 유지됨 변경되지 않습니다.

차량 필드 업데이트 예시

이 섹션에서는 UpdateVehicleRequest를 사용하여 차량 필드를 업데이트하는 방법을 보여줍니다. 업데이트할 필드를 나타내는 update_mask가 포함되어 있습니다. 자세한 내용은 자세한 내용은 필드 마스크에 관한 프로토콜 버퍼 문서를 참고하세요.

last_location 이외의 필드를 업데이트하려면 Fleet Engine 주문형이 필요합니다. 관리자 권한이 있어야 합니다.

예: 새 이동 유형 및 맞춤 속성 사용 설정

이 예시에서는 차량에 back_to_back 이동을 사용 설정하고 새 속성: class 앞서 차량 속성 업데이트에서 설명했듯이 이 접근 방식을 사용하여 attributes 필드를 업데이트하려면 보존할 커스텀 속성을 지정합니다. 따라서 이 예는 cash_only 업데이트 작업 중에 덮어쓰지 않도록 작성된 값 - attributes 필드를 지정하는

하나의 키-값 속성 쌍의 값만 업데이트하려면 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

다음 단계