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' 설명을 참고하세요. 오류 대신 solvingModeDEFAULT_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" 오류의 경우가 여기에 해당됩니다. 일부 오류로 인해 유효성 검사 프로세스에서 다른 오류를 건너뛸 수 있습니다.

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

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

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

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

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)
  },

  // Union field index_or_key can be only one of the following:
  "index": integer,
  "key": string
  // End of list of possible types for union field index_or_key.
}
필드
name

string

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

subField

object (FieldReference)

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

통합 필드 index_or_key.

index_or_key는 다음 중 하나여야 합니다.

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

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