SkippedShipment
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Specifica i dettagli delle importazioni non eseguite in una soluzione. Per i casi banali e/o se siamo in grado di identificare la causa dell'abbandono, riportiamo il motivo qui.
Rappresentazione JSON |
{
"index": integer,
"label": string,
"reasons": [
{
object (Reason )
}
]
} |
Campi |
index |
integer
L'indice corrisponde all'indice della spedizione nell'origine ShipmentModel .
|
label |
string
Copia del Shipment.label corrispondente, se specificato nel Shipment .
|
reasons[] |
object (Reason )
Un elenco di motivi che spiegano il motivo per cui la spedizione è stata saltata. Vedi il commento sopra Reason . Se non riusciamo a capire il motivo per cui una spedizione è stata saltata, i motivi non verranno impostati.
|
Motivo
Se possiamo spiegare il motivo per cui la spedizione è stata saltata, i motivi verranno elencati qui. Se il motivo non è lo stesso per tutti i veicoli, reason
conterrà più di un elemento. Una spedizione saltata non può avere motivi duplicati, ad esempio se tutti i campi sono gli stessi tranne exampleVehicleIndex
. Esempio:
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
}
La spedizione saltata non è compatibile con tutti i veicoli. I motivi possono essere diversi per tutti i veicoli, ma la capacità "Mela" di almeno un veicolo verrà superata (incluso il veicolo 1), la capacità "Pera" di almeno un veicolo verrà superata (incluso il veicolo 3) e il limite di distanza di almeno un veicolo verrà superato (incluso il veicolo 1).
Rappresentazione JSON |
{
"code": enum (Code ),
"exampleExceededCapacityType": string,
"exampleVehicleIndex": integer
} |
Campi |
code |
enum (Code )
Fai riferimento ai commenti del Codice.
|
exampleExceededCapacityType |
string
Se il codice motivo è DEMAND_EXCEEDS_VEHICLE_CAPACITY , documenta un tipo di capacità superata.
|
exampleVehicleIndex |
integer
Se il motivo è legato a un'incompatibilità tra spedizione e veicolo, questo campo fornisce l'indice di un veicolo pertinente.
|
Codice
Codice che identifica il tipo di motivo. L'ordine qui è privo di significato. In particolare, non indica se un determinato motivo apparirà prima di un altro nella soluzione, nel caso in cui entrambi i motivi siano applicabili.
Enum |
CODE_UNSPECIFIED |
Non deve mai essere utilizzato. |
NO_VEHICLE |
Non è presente alcun veicolo nel modello, il che rende non possibili tutte le spedizioni. |
DEMAND_EXCEEDS_VEHICLE_CAPACITY |
La richiesta della spedizione supera la capacità di un veicolo per alcuni tipi di capacità, tra cui exampleExceededCapacityType . |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT |
La distanza minima necessaria per eseguire questa spedizione, ad esempio dal startLocation del veicolo alle località di ritiro e/o consegna della spedizione e alla località di fine del veicolo, supera la routeDistanceLimit del veicolo. Tieni presente che per questo calcolo utilizziamo le distanze geodetiche. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT |
Il tempo minimo necessario per eseguire questa spedizione, inclusi il tempo di viaggio, i tempi di attesa e i tempi di assistenza, supera i routeDurationLimit del veicolo. Nota: il tempo di percorrenza viene calcolato nello scenario migliore, ovvero come distanza geodetica x 36 m/s (circa 130 km/h). |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT |
Come sopra, ma confrontiamo solo il tempo di percorrenza minimo e i travelDurationLimit del veicolo. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS |
Il veicolo non può effettuare questa spedizione nello scenario migliore (vedi CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT per il calcolo del tempo) se parte all'ora di inizio più anticipata: il tempo totale farebbe terminare il viaggio del veicolo dopo la sua ora di fine più tardiva. |
VEHICLE_NOT_ALLOWED |
Il campo allowedVehicleIndices della spedizione non è vuoto e questo veicolo non è di sua proprietà. |
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-08-29 UTC.
[null,null,["Ultimo aggiornamento 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. |"]]