각 차량이 따라간 경로, 건너뛴 배송, 솔루션의 전반적인 비용이 포함된 순회 최적화 문제를 해결한 후의 응답입니다.
| JSON 표현 | 
|---|
| { "routes": [ { object ( | 
| 필드 | |
|---|---|
| routes[] | 
 각 차량에 대해 계산된 경로입니다. i번째 경로는 모델의 i번째 차량에 해당합니다. | 
| requestLabel | 
 요청에 라벨이 지정된 경우  | 
| skippedShipments[] | 
 건너뛴 모든 배송의 목록입니다. | 
| validationErrors[] | 
 Google에서 독립적으로 감지할 수 있었던 모든 유효성 검사 오류 목록입니다.  | 
| processedRequest | 
 경우에 따라 Google에서 수신된 요청을 수정하여 해결합니다(예: 비용 추가). solvingMode == TRANSFORM_AND_RETURN_REQUEST인 경우 수정된 요청이 여기에 반환됩니다. 실험용: 자세한 내용은 https://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request를 참고하세요. | 
| metrics | 
 이 솔루션의 시간, 거리, 사용량 측정항목 | 
OptimizeToursValidationError
OptimizeToursRequest를 검증할 때 발생한 오류 또는 경고를 설명합니다.
| JSON 표현 | 
|---|
| {
  "code": integer,
  "displayName": string,
  "fields": [
    {
      object ( | 
| 필드 | |
|---|---|
| code | 
 유효성 검사 오류는 항상 존재하는 쌍 ( 이 섹션 다음에 있는 필드는 오류에 관한 추가 컨텍스트를 제공합니다. MULTIPLE ERRORS: 오류가 여러 개 있는 경우 검증 프로세스에서 여러 오류를 출력하려고 시도합니다. 컴파일러와 마찬가지로 이는 불완전한 프로세스입니다. 일부 유효성 검사 오류는 '심각'하여 전체 유효성 검사 프로세스가 중지됩니다. 특히  안정성:  | 
| displayName | 
 오류 표시 이름입니다. | 
| fields[] | 
 오류 컨텍스트에는 0개, 1개 (대부분) 또는 그 이상의 필드가 포함될 수 있습니다. 예를 들어 차량 4번과 배송 2번의 첫 번째 수령을 참조하는 방법은 다음과 같습니다. 단, 지정된 오류 코드의 경우  | 
| errorMessage | 
 사람이 읽을 수 있는 오류를 설명하는 문자열입니다.  안정성: 안정적이지 않음: 특정  | 
| offendingValues | 
 필드의 값을 포함할 수 있습니다. 이 기능을 사용할 수 없는 경우도 있습니다. 이 방법에 의존해서는 안 되며 수동 모델 디버깅에만 사용해야 합니다. | 
FieldReference
유효성 검사 오류의 컨텍스트를 지정합니다. FieldReference는 항상 이 파일의 특정 필드를 참조하며 동일한 계층 구조를 따릅니다. 예를 들어 다음을 사용하여 차량 5의 startTimeWindows 요소 2를 지정할 수 있습니다.
name: "vehicles" index: 5 subField { name: "endTimeWindows" index: 2 }
그러나 메시지가 복잡해지지 않도록 OptimizeToursRequest 또는 ShipmentModel와 같은 최상위 항목은 생략합니다.
| JSON 표현 | 
|---|
| { "name": string, "subField": { object ( | 
| 필드 | |
|---|---|
| name | 
 필드 이름입니다(예: "vehicles". | 
| subField | 
 필요한 경우 중첩된 하위 필드를 재귀적으로 중첩합니다. | 
| 통합 필드  
 | |
| index | 
 반복되는 경우 필드의 색인입니다. | 
| key | 
 필드가 맵인 경우 키입니다. | 
측정항목
모든 경로를 기준으로 집계된 전반적인 측정항목입니다.
| JSON 표현 | 
|---|
| {
  "aggregatedRouteMetrics": {
    object ( | 
| 필드 | |
|---|---|
| aggregatedRouteMetrics | 
 경로별로 집계됩니다. 각 측정항목은 동일한 이름의 모든  | 
| skippedMandatoryShipmentCount | 
 건너뛴 필수 배송 건수입니다. | 
| usedVehicleCount | 
 사용된 차량 수입니다. 참고: 차량 경로가 비어 있고  | 
| earliestVehicleStartTime | 
 중고차의 가장 빠른 시작 시간으로, 모든 중고차  생성된 출력은 항상 Z-정규화되고 소수점 이하 0, 3, 6 또는 9자리인 RFC 3339를 사용합니다. 'Z' 이외의 오프셋도 허용됩니다. 예를 들면  | 
| latestVehicleEndTime | 
 중고차의 최신 종료 시간으로, 모든 중고차  생성된 출력은 항상 Z-정규화되고 소수점 이하 0, 3, 6 또는 9자리인 RFC 3339를 사용합니다. 'Z' 이외의 오프셋도 허용됩니다. 예를 들면  | 
| costs | 
 비용 관련 요청 입력란별로 분류된 솔루션 비용입니다. 키는 입력 OptimizeToursRequest를 기준으로 한 프로토 경로(예: 'model.shipments.pickups.cost')이고 값은 전체 솔루션에 걸쳐 집계된 해당 비용 필드에서 생성된 총 비용입니다. 즉, costs["model.shipments.pickups.cost"] 는 솔루션의 모든 수령 비용의 합계입니다. 모델에 정의된 모든 비용은 여기에 자세히 보고됩니다. 단, 2022년 1월 현재 집계된 방식으로만 보고되는 TransitionAttributes와 관련된 비용은 예외입니다. | 
| totalCost | 
 솔루션의 총 비용입니다. 비용 맵의 모든 값의 합계입니다. |