SkippedShipment
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
פרטים על משלוחים שלא בוצעו בפתרון. במקרים טריוויאליים ו/או אם אנחנו יכולים לזהות את הסיבה לדילוג, אנחנו מדווחים על הסיבה כאן.
ייצוג JSON |
{
"index": integer,
"label": string,
"reasons": [
{
object (Reason )
}
]
} |
שדות |
index |
integer
האינדקס תואם למדד המשלוח במקור ShipmentModel .
|
label |
string
עותק של Shipment.label התואם, אם צוין ב-Shipment .
|
reasons[] |
object (Reason )
רשימת סיבות שמסבירות למה בוצע דילוג על המשלוח. הצגת תגובה מעל Reason . אם אנחנו לא מצליחים להבין למה דילגת על משלוח, לא יוגדרו סיבות לכך.
|
סיבה
אם יש לך אפשרות להסביר למה המשלוח דילג על המשלוח, הסיבות לכך יפורטו כאן. אם הסיבה לא זהה לכל כלי הרכב, ל-reason
יהיה יותר מרכיב אחד. משלוח שדילגת עליו לא יכול לכלול סיבות כפולות, כלומר כאשר כל השדות זהים מלבד 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), תהיה חריגה ממכסת ה'אגסים' ברכב אחד לפחות (כולל רכב 3) ותהיה חריגה ממגבלת המרחק ברכב אחד לפחות (כולל רכב 1).
ייצוג JSON |
{
"code": enum (Code ),
"exampleExceededCapacityType": string,
"exampleVehicleIndex": integer
} |
שדות |
code |
enum (Code )
יש לעיין בהערות של הקוד.
|
exampleExceededCapacityType |
string
אם קוד הסיבה הוא DEMAND_EXCEEDS_VEHICLE_CAPACITY , המסמך מתעד סוג אחד של קיבולת שחורגת מהמכסה.
|
exampleVehicleIndex |
integer
אם הסיבה קשורה לכך שהרכב לא מתאים לשליחה, בשדה הזה יצוין המדד של רכב רלוונטי אחד.
|
קוד
קוד לזיהוי סוג הסיבה. הסדר כאן לא רלוונטי. באופן ספציפי, לא מצוין אם סיבה מסוימת תופיע לפני סיבה אחרת בפתרון, אם שתיהן רלוונטיות.
טיפוסים בני מנייה (enum) |
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 36 מטר לשנייה (בערך 130 ק"מ לשעה). |
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. Java הוא סימן מסחרי רשום של חברת 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. |"]]