OptimizeToursResponse

각 차량이 따르는 경로, 건너뛴 배송, 솔루션의 전체 비용을 포함하는 투어 최적화 문제 해결 후의 응답입니다.

JSON 표현
{
  "routes": [
    {
      object (ShipmentRoute)
    }
  ],
  "requestLabel": string,
  "skippedShipments": [
    {
      object (SkippedShipment)
    }
  ],
  "validationErrors": [
    {
      object (OptimizeToursValidationError)
    }
  ],
  "processedRequest": {
    object (OptimizeToursRequest)
  },
  "metrics": {
    object (Metrics)
  }
}
필드
routes[]

object (ShipmentRoute)

각 차량에 대해 계산된 경로입니다. i번째 경로는 모델의 i번째 차량에 해당합니다.

requestLabel

string

요청에 라벨이 지정된 경우 OptimizeToursRequest.label의 사본입니다.

skippedShipments[]

object (SkippedShipment)

건너뛴 모든 배송의 목록입니다.

validationErrors[]

object (OptimizeToursValidationError)

Google에서 독립적으로 감지할 수 있는 모든 검증 오류 목록입니다. OptimizeToursValidationError 메시지의 'MULTIPLE ERRORS' 설명을 참고하세요. 오류 대신 solvingMode가 DEFAULT_SOLVE인 경우 경고가 포함됩니다.

processedRequest

object (OptimizeToursRequest)

경우에 따라 문제를 해결하기 전에 수신 요청을 수정합니다(예: 비용 추가). solvingMode == TRANSFORM_AND_RETURN_REQUEST인 경우 수정된 요청이 여기에 반환됩니다.

실험 단계: 자세한 내용은 https://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request를 참고하세요.

metrics

object (Metrics)

이 솔루션의 기간, 거리, 사용량 측정항목입니다.

OptimizeToursValidationError

OptimizeToursRequest를 검증할 때 발생한 오류 또는 경고를 설명합니다.

JSON 표현
{
  "code": integer,
  "displayName": string,
  "fields": [
    {
      object (FieldReference)
    }
  ],
  "errorMessage": string,
  "offendingValues": string
}
필드
code

integer

유효성 검사 오류는 항상 존재하는 (code, displayName) 쌍으로 정의됩니다.

이 섹션 다음의 필드에는 오류에 관한 추가 컨텍스트가 제공됩니다.

여러 오류: 오류가 여러 개 있는 경우 유효성 검사 프로세스에서 여러 오류를 출력하려고 시도합니다. 컴파일러와 마찬가지로 완벽한 프로세스는 아닙니다. 일부 유효성 검사 오류는 '심각'하여 전체 유효성 검사 프로세스를 중지합니다. displayName="UNSPECIFIED" 오류의 경우가 여기에 해당됩니다. 일부 오류로 인해 검사 프로세스에서 다른 오류를 건너뛸 수 있습니다.

안정성: code 및 displayName는 매우 안정적이어야 합니다. 하지만 시간이 지남에 따라 새로운 코드와 표시 이름이 표시될 수 있으며, 이로 인해 새로운 오류가 이전 오류를 숨겨 특정 (유효하지 않은) 요청에서 다른 (code, displayName) 쌍이 생성될 수 있습니다. 예를 들어 '여러 오류'를 참고하세요.

displayName

string

오류 표시 이름입니다.

fields[]

object (FieldReference)

오류 컨텍스트에는 0개, 1개 (대부분의 경우) 또는 그 이상의 필드가 포함될 수 있습니다. 예를 들어 차량 4번과 배송 2번의 첫 번째 수령을 다음과 같이 참조할 수 있습니다.

fields { name: "vehicles" index: 4}
fields { name: "shipments" index: 2 subField {name: "pickups" index: 0} }

하지만 특정 오류 코드의 경우 fields의 카디널리티는 변경되지 않습니다.

errorMessage

string

오류를 설명하는 사람이 읽을 수 있는 문자열입니다. code과 errorMessage은 1:1 매핑 관계입니다 (code != 'UNSPECIFIED'인 경우).

안정성: 안정적이지 않음: 특정 code와 연결된 오류 메시지가 시간이 지남에 따라 변경될 수 있습니다 (명확하게 하기 위해). 대신 displayName 및 code를 사용하세요.

offendingValues

string

필드의 값을 포함할 수 있습니다. 이 기능은 항상 제공되는 것은 아닙니다. 이 API를 사용해서는 안 되며 수동 모델 디버깅에만 사용해야 합니다.

FieldReference

유효성 검사 오류의 컨텍스트를 지정합니다. FieldReference는 항상 이 파일의 지정된 필드를 참조하며 동일한 계층 구조를 따릅니다. 예를 들어 다음을 사용하여 차량 5의 startTimeWindows의 요소 2를 지정할 수 있습니다.

name: "vehicles" index: 5 subField { name: "endTimeWindows" index: 2 }

하지만 메시지가 너무 많아지는 것을 방지하기 위해 OptimizeToursRequest 또는 ShipmentModel과 같은 최상위 수준 항목은 생략합니다.

JSON 표현
{
  "name": string,
  "subField": {
    object (FieldReference)
  },

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "index": integer,
  "key": string
  // End of mutually exclusive fields.
}
필드
name

string

필드 이름입니다(예: 'vehicles').

subField

object (FieldReference)

필요한 경우 재귀적으로 중첩된 하위 필드입니다.

다음은 상호 배타적인 필드의 목록입니다. 응답에는 다음 필드 중 최대 하나가 설정됩니다.
index

integer

반복되는 경우 필드의 색인입니다.

key

string

필드가 맵인 경우 키입니다.

상호 배타적 필드의 끝입니다.

측정항목

전체 경로에서 집계된 전체 측정항목입니다.

JSON 표현
{
  "aggregatedRouteMetrics": {
    object (AggregatedMetrics)
  },
  "skippedMandatoryShipmentCount": integer,
  "usedVehicleCount": integer,
  "earliestVehicleStartTime": string,
  "latestVehicleEndTime": string,
  "costs": {
    string: number,
    ...
  },
  "totalCost": number
}
필드
aggregatedRouteMetrics

object (AggregatedMetrics)

경로에 따라 집계됩니다. 각 측정항목은 이름이 동일한 모든 ShipmentRoute.metrics 필드의 합계 (또는 부하의 경우 최대값)입니다.

skippedMandatoryShipmentCount

integer

건너뛴 필수 배송 수입니다.

usedVehicleCount

integer

사용된 차량 수입니다. 참고: 차량 경로가 비어 있고 Vehicle.used_if_route_is_empty가 true인 경우 차량이 사용된 것으로 간주됩니다.

earliestVehicleStartTime

string (Timestamp format)

중고 차량의 가장 빠른 시작 시간으로, 모든 중고 차량의 ShipmentRoute.vehicle_start_time 중 최솟값으로 계산됩니다.

생성된 출력은 항상 Z-정규화되고 소수점 이하 0, 3, 6 또는 9자리인 RFC 3339를 사용합니다. 'Z' 이외의 오프셋도 허용됩니다. 예를 들면 "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" 또는 "2014-10-02T15:01:23+05:30"입니다.

latestVehicleEndTime

string (Timestamp format)

중고 차량의 최신 종료 시간으로, 모든 중고 차량의 ShipmentRoute.vehicle_end_time 중 최댓값으로 계산됩니다.

생성된 출력은 항상 Z-정규화되고 소수점 이하 0, 3, 6 또는 9자리인 RFC 3339를 사용합니다. 'Z' 이외의 오프셋도 허용됩니다. 예를 들면 "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" 또는 "2014-10-02T15:01:23+05:30"입니다.

costs

map (key: string, value: number)

비용 관련 요청 필드별로 분류된 솔루션 비용입니다. 키는 입력 OptimizeToursRequest와 관련된 프로토 경로입니다(예: 'model.shipments.pickups.cost'). 값은 전체 솔루션에서 집계된 해당 비용 필드로 생성된 총비용입니다. 즉, costs["model.shipments.pickups.cost"] 는 솔루션 전반의 모든 수령 비용의 합계입니다. 모델에 정의된 모든 비용은 여기에 자세히 보고됩니다. 단, 2022년 1월부터는 TransitionAttributes와 관련된 비용만 집계된 방식으로 보고됩니다.

totalCost

number

솔루션의 총비용입니다. 비용 맵에 있는 모든 값의 합계입니다.