SkippedShipment
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
솔루션에서 처리되지 않은 배송의 세부정보를 명시합니다. 사소한 경우 또는 건너뛰는 원인을 파악할 수 있는 경우 여기에서 사유를 보고합니다.
JSON 표현 |
{
"index": integer,
"label": string,
"reasons": [
{
object (Reason )
}
]
} |
필드 |
index |
integer
지수는 ShipmentModel 소스의 배송 색인에 해당합니다.
|
label |
string
Shipment 에 지정된 경우 상응하는 Shipment.label 의 사본입니다.
|
reasons[] |
object (Reason )
배송을 건너뛴 이유를 설명하는 목록 Reason 위의 주석을 참고하세요. 배송이 건너뛴 이유를 파악할 수 없는 경우 사유가 설정되지 않습니다.
|
이유
배송이 건너뛴 이유를 설명할 수 있는 경우 여기에 이유가 표시됩니다. 이유가 모든 차량에 동일하지 않은 경우 reason
에 2개 이상의 요소가 포함됩니다. 건너뛴 배송에는 중복된 이유가 있을 수 없습니다. 즉, exampleVehicleIndex
를 제외한 모든 입력란이 동일한 경우입니다. 예:
reasons {
code: DEMAND_EXCEEDS_VEHICLE_CAPACITY
exampleVehicleIndex: 1
exampleExceededCapacityType: "Apples"
}
reasons {
code: DEMAND_EXCEEDS_VEHICLE_CAPACITY
exampleVehicleIndex: 3
exampleExceededCapacityType: "Pears"
}
reasons {
code: CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT
exampleVehicleIndex: 1
}
건너뛴 배송은 일부 차량과 호환되지 않습니다. 사유는 차량마다 다를 수 있지만, 1대 이상의 차량의 '사과' 수용 인원을 초과 (차량 1 포함)하고, 1대 이상의 차량의 '페어' 수용 인원을 초과 (차량 3 포함)하고, 차량 1대 이상을 포함한 차량 1대 이상의 이동 거리 제한을 초과하게 됩니다 (차량 1 포함).
JSON 표현 |
{
"code": enum (Code ),
"exampleExceededCapacityType": string,
"exampleVehicleIndex": integer
} |
필드 |
code |
enum (Code )
코드의 주석을 참고하세요.
|
exampleExceededCapacityType |
string
이유 코드가 DEMAND_EXCEEDS_VEHICLE_CAPACITY 인 경우 초과된 용량 유형을 하나 문서화합니다.
|
exampleVehicleIndex |
integer
배송 차량의 비호환성과 관련된 사유인 경우 이 필드는 관련 차량 1대의 색인을 제공합니다.
|
코드
이유 유형을 식별하는 코드입니다. 여기서 순서는 의미가 없습니다. 특히, 솔루션에서 특정 이유가 다른 이유보다 먼저 나타나는지 여부를 나타내지 않습니다(둘 다 적용되는 경우).
열거형 |
CODE_UNSPECIFIED |
절대로 사용해서는 안 됩니다. |
NO_VEHICLE |
모델에 차량이 없어 모든 배송을 실행할 수 없습니다. |
DEMAND_EXCEEDS_VEHICLE_CAPACITY |
배송 수요가 일부 용량 유형(exampleExceededCapacityType 포함)의 차량 용량을 초과합니다. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT |
이 배송을 수행하는 데 필요한 최소 거리는 차량 startLocation 에서 배송 픽업 또는 배송 위치, 차량 종료 위치까지 차량의 routeDistanceLimit 를 초과합니다. 이 계산에는 지오데시시 거리를 사용합니다. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT |
이동 시간, 대기 시간, 서비스 시간 등 배송을 수행하는 데 필요한 최소 시간이 차량의 routeDurationLimit 시간을 초과합니다. 참고: 이동 시간은 최적의 경우, 즉 최단 거리 x 36m/s (시간당 약 130km)로 계산됩니다. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT |
위와 동일하지만 최소 이동 시간과 차량의 travelDurationLimit 만 비교합니다. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS |
차량이 가장 이른 시작 시간에 시작하는 경우 최적의 시나리오 (시간 계산은 CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT 참고)에서 배송을 수행할 수 없습니다. 총 시간으로 인해 차량이 가장 늦은 종료 시간 후에 종료됩니다. |
VEHICLE_NOT_ALLOWED |
배송의 allowedVehicleIndices 필드가 비어 있지 않으며 이 차량이 배송에 속하지 않습니다. |
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2025-08-29(UTC)
[null,null,["최종 업데이트: 2025-08-29(UTC)"],[[["\u003cp\u003eThis content defines the structure and details of skipped shipments in a solution, including the reasons they were not performed.\u003c/p\u003e\n"],["\u003cp\u003eEach skipped shipment's JSON representation includes an index, label, and a list of reasons explaining why it was skipped, with details on the \u003ccode\u003eindex\u003c/code\u003e and \u003ccode\u003elabel\u003c/code\u003e fields.\u003c/p\u003e\n"],["\u003cp\u003eThe "Reason" section details how reasons for skipping are documented, including \u003ccode\u003ecode\u003c/code\u003e, \u003ccode\u003eexampleExceededCapacityType\u003c/code\u003e, and \u003ccode\u003eexampleVehicleIndex\u003c/code\u003e, which provide specific information about the incompatibility.\u003c/p\u003e\n"],["\u003cp\u003eThe "Code" section lists various enum reasons for skipped shipments, such as \u003ccode\u003eDEMAND_EXCEEDS_VEHICLE_CAPACITY\u003c/code\u003e, \u003ccode\u003eNO_VEHICLE\u003c/code\u003e and \u003ccode\u003eCANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT\u003c/code\u003e, each explaining a different cause.\u003c/p\u003e\n"],["\u003cp\u003eIf a reason applies to multiple vehicles, it will be listed multiple times with a unique \u003ccode\u003eexampleVehicleIndex\u003c/code\u003e for each vehicle, and a skipped shipment will not have duplicate reasons.\u003c/p\u003e\n"]]],[],null,["# SkippedShipment\n\n- [JSON representation](#SCHEMA_REPRESENTATION)\n- [Reason](#Reason)\n - [JSON representation](#Reason.SCHEMA_REPRESENTATION)\n- [Code](#Code)\n\nSpecifies details of unperformed shipments in a solution. For trivial cases and/or if we are able to identify the cause for skipping, we report the reason here.\n\n| JSON representation |\n|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ``` { \"index\": integer, \"label\": string, \"reasons\": [ { object (/maps/tt/route-optimization/experimental/u-turn-avoidance/reference/rest/v1/SkippedShipment#Reason) } ] } ``` |\n\n| Fields ||\n|-------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `index` | `integer` The index corresponds to the index of the shipment in the source `ShipmentModel`. |\n| `label` | `string` Copy of the corresponding [Shipment.label](/maps/tt/route-optimization/experimental/u-turn-avoidance/reference/rest/v1/ShipmentModel#Shipment.FIELDS.label), if specified in the `Shipment`. |\n| `reasons[]` | `object (`[Reason](/maps/tt/route-optimization/experimental/u-turn-avoidance/reference/rest/v1/SkippedShipment#Reason)`)` A list of reasons that explain why the shipment was skipped. See comment above `Reason`. If we are unable to understand why a shipment was skipped, reasons will not be set. |\n\nReason\n------\n\nIf we can explain why the shipment was skipped, reasons will be listed here. If the reason is not the same for all vehicles, `reason` will have more than 1 element. A skipped shipment cannot have duplicate reasons, i.e. where all fields are the same except for `exampleVehicleIndex`. Example: \n\n reasons {\n code: DEMAND_EXCEEDS_VEHICLE_CAPACITY\n exampleVehicleIndex: 1\n exampleExceededCapacityType: \"Apples\"\n }\n reasons {\n code: DEMAND_EXCEEDS_VEHICLE_CAPACITY\n exampleVehicleIndex: 3\n exampleExceededCapacityType: \"Pears\"\n }\n reasons {\n code: CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT\n exampleVehicleIndex: 1\n }\n\nThe skipped shipment is incompatible with all vehicles. The reasons may be different for all vehicles but at least one vehicle's \"Apples\" capacity would be exceeded (including vehicle 1), at least one vehicle's \"Pears\" capacity would be exceeded (including vehicle 3) and at least one vehicle's distance limit would be exceeded (including vehicle 1).\n\n| JSON representation |\n|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ``` { \"code\": enum (/maps/tt/route-optimization/experimental/u-turn-avoidance/reference/rest/v1/SkippedShipment#Code), \"exampleExceededCapacityType\": string, \"exampleVehicleIndex\": integer } ``` |\n\n| Fields ||\n|-------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------|\n| `code` | `enum (`[Code](/maps/tt/route-optimization/experimental/u-turn-avoidance/reference/rest/v1/SkippedShipment#Code)`)` Refer to the comments of Code. |\n| `exampleExceededCapacityType` | `string` If the reason code is `DEMAND_EXCEEDS_VEHICLE_CAPACITY`, documents one capacity type that is exceeded. |\n| `exampleVehicleIndex` | `integer` If the reason is related to a shipment-vehicle incompatibility, this field provides the index of one relevant vehicle. |\n\nCode\n----\n\nCode identifying the reason type. The order here is meaningless. In particular, it gives no indication of whether a given reason will appear before another in the solution, if both apply.\n\n| Enums ||\n|------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `CODE_UNSPECIFIED` | This should never be used. |\n| `NO_VEHICLE` | There is no vehicle in the model making all shipments infeasible. |\n| `DEMAND_EXCEEDS_VEHICLE_CAPACITY` | The demand of the shipment exceeds a vehicle's capacity for some capacity types, one of which is `exampleExceededCapacityType`. |\n| `CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT` | The minimum distance necessary to perform this shipment, i.e. from the vehicle's `startLocation` to the shipment's pickup and/or delivery locations and to the vehicle's end location exceeds the vehicle's `routeDistanceLimit`. Note that for this computation we use the geodesic distances. |\n| `CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT` | The minimum time necessary to perform this shipment, including travel time, wait time and service time exceeds the vehicle's `routeDurationLimit`. Note: travel time is computed in the best-case scenario, namely as geodesic distance x 36 m/s (roughly 130 km/hour). |\n| `CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT` | Same as above but we only compare minimum travel time and the vehicle's `travelDurationLimit`. |\n| `CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS` | The vehicle cannot perform this shipment in the best-case scenario (see `CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT` for time computation) if it starts at its earliest start time: the total time would make the vehicle end after its latest end time. |\n| `VEHICLE_NOT_ALLOWED` | The `allowedVehicleIndices` field of the shipment is not empty and this vehicle does not belong to it. |"]]