La pagina seguente contiene tabelle dei parametri in ordine alfabetico per i seguenti componenti del metodo optimizeTours dell'API Route Optimization:
Queste tabelle dei parametri elencano e descrivono brevemente gli oggetti di primo livello e i parametri principali per facilitarne l'individuazione. Per un elenco esaustivo con descrizioni complete e tutti i parametri nidificati, consulta la documentazione di riferimento dell'API.
Corpo della richiesta
Il corpo della richiesta include i seguenti elementi, illustrati nel diagramma a destra ed elencati nella tabella seguente:
OptimizeToursRequest: l'oggetto richiesta di primo livello contenente il modello e i parametri di risoluzione.ShipmentModel: la struttura dei dati principale contenente spedizioni, veicoli e vincoli globali.Shipment: Un'attività con ritiri e consegne.VisitRequest: la posizione e i vincoli per un ritiro o una consegna.
Vehicle: Un veicolo disponibile per eseguire le spedizioni.
| Genitore | Parametro | Property type | Descrizione |
|---|---|---|---|
OptimizeToursRequest |
allowLargeDeadlineDespiteInterruptionRisk |
booleano (true/false) |
Se true, la richiesta viene elaborata anche se il timeout è impostato su un valore elevato (superiore a 30 minuti) che rischia potenziali interruzioni del server. |
considerRoadTraffic |
booleano (true/false) |
Se true, utilizza i dati sul traffico per il routing. Se è false, utilizza solo le velocità della rete stradale. |
|
geodesicMetersPerSecond |
numero | Quando useGeodesicDistances è true, questa velocità viene utilizzata per calcolare i tempi di percorrenza. |
|
injectedFirstSolutionRoutes[] |
array di oggetti (ShipmentRoute) |
Itinerari di una soluzione precedente da cui iniziare l'ottimizzazione. | |
injectedSolutionConstraint |
oggetto (InjectedSolutionConstraint) |
Vincola la soluzione a essere simile alle route esistenti, specificando quali proprietà devono essere conservate e quali possono essere rilassate. | |
interpretInjectedSolutionsUsingLabels |
booleano (true/false) |
Se true, le spedizioni/i veicoli nelle rotte inserite vengono abbinati in base al label anziché all'indice dell'array. |
|
label |
stringa | Etichetta arbitraria per identificare la richiesta, restituita nella risposta. | |
maxValidationErrors |
integer | Specifica il numero massimo di errori di convalida da restituire. Se non specificato, viene applicato un limite predefinito. | |
model |
oggetto (ShipmentModel) |
Obbligatorio. L'insieme di veicoli e spedizioni da ottimizzare. | |
populatePolylines |
booleano (true/false) |
Se true, restituisce polilinee codificate per i percorsi. |
|
populateTransitionPolylines |
booleano (true/false) |
Se true, restituisce le polilinee codificate per le singole transizioni tra le visite. |
|
refreshDetailsRoutes[] |
array di oggetti (ShipmentRoute) |
Un elenco di percorsi da aggiornare. Vengono ricalcolate polilinee, durate e distanze per i percorsi esistenti senza modificare la sequenza delle visite. | |
searchMode |
enum (SearchMode) |
RETURN_FAST (risultati rapidi) o CONSUME_ALL_AVAILABLE_TIME (migliore qualità entro il timeout). |
|
solvingMode |
enum (SolvingMode) |
DEFAULT_SOLVE (impostazione predefinita) o VALIDATE_ONLY per convalidare il modello senza risolverlo. |
|
timeout |
Durata | La durata massima di esecuzione del risolutore (ad es. "30s", "300s"). | |
useGeodesicDistances |
booleano (true/false) |
Se true, le distanze e i tempi di percorrenza vengono calcolati utilizzando le distanze geodetiche (in linea retta) e la velocità geodesicMetersPerSecond. |
|
ShipmentModel(parte di OptimizeToursRequest) |
durationDistanceMatrices[] |
array di oggetti (DurationDistanceMatrix) |
Specifica le matrici di durata e distanza personalizzate utilizzate per il routing tra le località. |
durationDistanceMatrixDstTags[] |
array di stringhe | Tag che definiscono le destinazioni (colonne) per le matrici personalizzate di durata e distanza. | |
durationDistanceMatrixSrcTags[] |
array di stringhe | Tag che definiscono le origini (righe) per le matrici personalizzate di durata e distanza. | |
globalDurationCostPerHour |
numero | Costo orario dell'intervallo di tempo globale del percorso, dall'inizio del viaggio del primo veicolo alla fine del viaggio dell'ultimo veicolo. | |
globalEndTime |
Timestamp | L'ora di fine più recente per qualsiasi evento nel modello. | |
globalStartTime |
Timestamp | L'ora di inizio più recente per qualsiasi evento nel modello. | |
maxActiveVehicles |
integer | Il numero massimo di veicoli che possono essere attivi nella soluzione. | |
precedenceRules[] |
array di oggetti (PrecedenceRule) |
Regole che definiscono i vincoli di ordinamento tra spedizioni specifiche. | |
shipments[] |
array di oggetti (Shipment) |
L'elenco delle spedizioni da gestire. | |
shipmentTypeIncompatibilities[] |
array di oggetti (ShipmentTypeIncompatibility) |
Regole che impediscono che spedizioni di determinati tipi vengano gestite dallo stesso veicolo. | |
shipmentTypeRequirements[] |
array di oggetti (ShipmentTypeRequirement) |
Regole che richiedono che le spedizioni di determinati tipi vengano gestite dallo stesso veicolo. | |
transitionAttributes[] |
array di oggetti (TransitionAttributes) |
Specifica costi aggiuntivi, ritardi e limiti di distanza per le transizioni tra visite con tag specifici. | |
vehicles[] |
array di oggetti (Vehicle) |
L'elenco dei veicoli disponibili per eseguire le spedizioni. | |
Shipment(parte di ShipmentModel) |
allowedVehicleIndices[] |
array di numeri interi | Indici dei veicoli autorizzati a eseguire questa spedizione. |
costsPerVehicle[] |
map (key: integer, value: number) | Costi aggiuntivi sostenuti se una spedizione viene gestita da un veicolo specifico. | |
costsPerVehicleIndices[] |
array di numeri interi | Indici dei veicoli a cui si applicano i valori costsPerVehicle. |
|
deliveries[] |
array di oggetti (VisitRequest) |
Alternative per la consegna della spedizione. | |
ignore |
booleano (true/false) |
Se true, la spedizione viene ignorata e non utilizzata per l'ottimizzazione. |
|
label |
stringa | Etichetta definita dall'utente per identificare la spedizione, restituita nella risposta. | |
loadDemands |
map (key: string, value: Load) |
La capacità richiesta (ad es. peso, volume) per trasportare questa spedizione. | |
penaltyCost |
numero | Costo se la spedizione non viene gestita. Se non viene impostato, la spedizione è obbligatoria. | |
pickups[] |
array di oggetti (VisitRequest) |
Alternative per il ritiro della spedizione. | |
pickupToDeliveryAbsoluteDetourLimit |
Durata | Il tempo di deviazione assoluto massimo consentito tra il ritiro e la consegna rispetto al percorso diretto. | |
pickupToDeliveryRelativeDetourLimit |
numero | La deviazione relativa massima consentita per la spedizione (ad es. un valore di 2,0 significa che il tempo totale può essere al massimo il doppio del tempo di viaggio diretto). | |
pickupToDeliveryTimeLimit |
Durata | La durata massima consentita dall'inizio del ritiro all'inizio della consegna. | |
shipmentType |
stringa | Classificazione del tipo utilizzata per le regole di incompatibilità e requisiti. | |
VisitRequest(un componente di pickups e deliveries in Shipment) |
arrivalLocation |
oggetto (LatLng) |
La posizione geografica di arrivo come coordinate di latitudine/longitudine. |
arrivalWaypoint |
oggetto (Waypoint) |
La posizione in cui arriva il veicolo per eseguire la visita. Definito da coordinate o da un ID luogo. | |
cost |
numero | Il costo sostenuto se questa specifica richiesta di visita viene selezionata dal risolutore. | |
departureLocation |
oggetto (LatLng) |
La posizione geografica di partenza come coordinate di latitudine/longitudine. | |
departureWaypoint |
oggetto (Waypoint) |
La posizione da cui parte il veicolo dopo aver completato la visita. Se omesso, si presume che sia uguale a arrivalWaypoint. |
|
duration |
Durata | La durata della visita (tempo di servizio), ad esempio il tempo necessario per caricare/scaricare. | |
label |
stringa | Etichetta definita dall'utente per questa specifica richiesta di visita, restituita nella risposta. | |
loadDemands |
map (key: string, value: Load) |
Richiede di specificare la variazione del carico in questa visita (ad es. -1 per consegnare un pacco). | |
tags[] |
array di stringhe | Tag allegati a questa richiesta di visita. Questi dati vengono utilizzati per calcolare i tempi di percorrenza tra questa visita e le altre utilizzando transitionAttributes. |
|
timeWindows[] |
array di oggetti (TimeWindow) |
Le finestre temporali consentite per l'arrivo a questa visita. | |
visitTypes[] |
array di stringhe | Stringhe che descrivono il tipo di visita (ad es. "delivery", "installation"). Utilizzato per applicare extraVisitDurationForVisitType dal modello di veicolo. |
|
Vehicle(parte di ShipmentModel) |
breakRule |
oggetto (BreakRule) |
Definisce le regole per le pause (ad es. pausa pranzo obbligatoria). |
costPerHour |
numero | Costo orario della durata totale del percorso. | |
costPerKilometer |
numero | Costo per chilometro percorso. | |
costPerTraveledHour |
numero | Costo orario mentre il veicolo è in movimento. | |
endLocation |
oggetto (LatLng) |
La posizione geografica di destinazione come coordinate di latitudine/longitudine. | |
endTags[] |
array di stringhe | Tag che definiscono lo stato finale del veicolo, utilizzati per gli attributi di transizione. | |
endTimeWindows[] |
array di oggetti (TimeWindow) |
Intervalli di tempo consentiti per il completamento del percorso del veicolo. | |
endWaypoint |
oggetto (Waypoint) |
Posizione finale geografica utilizzando un waypoint (coordinate o ID luogo). | |
extraVisitDurationForVisitType |
mappa (chiave: stringa, valore: Duration) | Aggiunge una durata extra alle visite in base al loro visitType. |
|
fixedCost |
numero | Un costo fisso applicato se il veicolo viene utilizzato, indipendentemente dalla distanza o dalla durata del percorso. | |
ignore |
booleano (true/false) |
Se true, il veicolo viene ignorato e non utilizzato per l'ottimizzazione. |
|
label |
stringa | Etichetta definita dall'utente per il veicolo, restituita nella risposta. | |
loadLimits |
map (key: string, value: LoadLimit) |
Capacità del veicolo (ad es. peso massimo, volume massimo). | |
routeDistanceLimit |
oggetto (DistanceLimit) |
Un limite rigido o flessibile alla distanza totale del percorso del veicolo. | |
routeDurationLimit |
oggetto (DurationLimit) |
Un limite rigido o flessibile alla durata totale del percorso del veicolo. | |
routeModifiers |
oggetto (RouteModifiers) |
Uno o più vincoli, ad esempio evitare pedaggi, autostrade o traghetti. | |
startLocation |
oggetto (LatLng) |
La posizione geografica di partenza come coordinate di latitudine/longitudine. | |
startTags[] |
array di stringhe | Tag che definiscono lo stato iniziale del veicolo, utilizzati per gli attributi di transizione. | |
startTimeWindows[] |
array di oggetti (TimeWindow) |
Intervalli di tempo consentiti per l'inizio del percorso del veicolo. | |
startWaypoint |
oggetto (Waypoint) |
Posizione geografica di partenza utilizzando un waypoint (coordinate o ID luogo). | |
travelDurationLimit |
oggetto (DurationLimit) |
Un limite rigido o flessibile alla durata totale del viaggio (escluso il tempo di attesa/servizio) del veicolo. | |
travelDurationMultiple |
numero | Moltiplicatore applicato ai tempi di percorrenza (ad es. 1,5 rende il viaggio più lento del 50%). | |
travelMode |
enum (TravelMode) |
La modalità di viaggio (ad es. DRIVING, WALKING). Influisce sui tempi di percorrenza e sulle distanze. |
|
unloadingPolicy |
enum (UnloadingPolicy) |
Definisce l'ordine di scarico (ad es. LIFO o LAST_IN_FIRST_OUT). |
|
usedIfRouteIsEmpty |
booleano (true/false) |
Se true, il veicolo è considerato usato anche senza spedizioni. Sostiene costi fissi e si sposta tra le posizioni di partenza e di arrivo. |
Corpo della risposta
Il corpo della risposta include i seguenti elementi, illustrati nel diagramma a destra ed elencati nella tabella riportata di seguito:
OptimizeToursResponse: l'oggetto di risposta di primo livello che contiene le route e le metriche ottimizzate.Metrics: le statistiche complessive su costi ed esecuzione della soluzione.ShipmentRoute: la sequenza di visite e il percorso di viaggio assegnati a un singolo veicolo.Visit: Una fermata di un percorso per eseguire un ritiro o una consegna.Transition: il percorso e la durata del viaggio tra due fermate dell'itinerario.AggregatedMetrics: i totali sommati per durata, distanza e altre metriche. Questo elemento può essere presente sia inMetricsche inShipmentRoute.
| Genitore | Parametro | Property type | Descrizione |
|---|---|---|---|
OptimizeToursResponse |
metrics |
oggetto (Metrics) |
Metriche aggregate per la soluzione, tra cui costo totale, distanza totale, durata totale e conteggi di utilizzo dei veicoli. |
requestLabel |
stringa | L'etichetta copiata dal campo label della richiesta. Utilizzato per correlare la risposta alla richiesta originale. |
|
routes[] |
array di oggetti (ShipmentRoute) |
L'elenco dei percorsi calcolati per ogni veicolo. Contiene una voce per ogni veicolo, indipendentemente dall'utilizzo. | |
skippedShipments[] |
array di oggetti (SkippedShipment) |
L'elenco delle spedizioni ignorate (non gestite), insieme ai motivi per cui sono state ignorate. | |
validationErrors[] |
array di oggetti (OptimizeToursValidationError) |
Un elenco di errori di convalida trovati nel modello di input. Questo campo viene compilato se solvingMode è stato impostato su VALIDATE_ONLY o se si sono verificati errori durante la risoluzione. |
|
Metrics(parte di OptimizeToursResponse) |
aggregatedRouteMetrics |
oggetto (AggregatedMetrics) |
Statistiche aggregate su tutti i percorsi, come distanza totale percorsa, durata totale e tempi di attesa. |
costs |
mappa (chiave: stringa, valore: numero) | Una ripartizione dei costi per tipo (ad es. "model.vehicles.cost_per_kilometer", "model.shipments.penalty_cost"). | |
earliestVehicleStartTime |
Timestamp | L'ora di inizio più recente tra tutti i veicoli utilizzati. | |
latestVehicleEndTime |
Timestamp | L'ora di fine più recente tra tutti i veicoli utilizzati. | |
skippedMandatoryShipmentCount |
integer | Il numero di spedizioni obbligatorie che sono state saltate. | |
totalCost |
numero | Il costo totale della soluzione, che somma tutti i costi di percorso e le penali per le spedizioni saltate. | |
usedVehicleCount |
integer | Il numero di veicoli utilizzati nella soluzione. | |
AggregatedMetrics(Parte di Metrics e ShipmentRoute) |
breakDuration |
Durata | La durata totale delle pause effettuate su tutti i percorsi. |
costs |
mappa (chiave: stringa, valore: numero) | Una ripartizione dei costi per tipo (ad es. "model.vehicles.cost_per_kilometer", "model.shipments.penalty_cost"). | |
delayDuration |
Durata | La durata totale del ritardo su tutti i percorsi. | |
earliestVehicleStartTime |
Timestamp | L'ora di inizio più recente tra tutti i veicoli utilizzati. | |
latestVehicleEndTime |
Timestamp | L'ora di fine più recente tra tutti i veicoli utilizzati. | |
maxLoads |
map (key: string, value: VehicleLoad) |
Il carico massimo trasportato da qualsiasi veicolo in qualsiasi punto della soluzione, suddiviso per tipo di carico. | |
performedShipmentCount |
integer | Il numero totale di spedizioni eseguite su tutti i veicoli. | |
skippedMandatoryShipmentCount |
integer | Il numero di spedizioni obbligatorie che sono state saltate. | |
totalCost |
numero | Il costo totale della soluzione, che somma tutti i costi di percorso e le penali per le spedizioni saltate. | |
totalDuration |
Durata | La durata totale di tutti i percorsi (viaggio + attesa + ritardo + pausa + visita). | |
travelDistanceMeters |
numero | La distanza totale percorsa in metri su tutti i percorsi. | |
travelDuration |
Durata | La durata totale del viaggio su tutti gli itinerari. | |
usedVehicleCount |
integer | Il numero di veicoli utilizzati nella soluzione. | |
visitDuration |
Durata | La durata totale delle visite (carico/scarico) su tutti i percorsi. | |
waitDuration |
Durata | La durata totale dell'attesa su tutti i percorsi. | |
ShipmentRoute(parte di OptimizeToursResponse) |
breaks[] |
array di oggetti (Break) |
Un elenco delle pause effettuate dal veicolo durante il percorso. |
hasTrafficInfeasibilities |
booleano (true/false) |
Indica se il percorso presenta problemi di fattibilità relativi al traffico. | |
metrics |
oggetto (AggregatedMetrics) |
Metriche specifiche per questo percorso, come la distanza totale e la durata del viaggio. | |
routeCosts |
mappa (chiave: stringa, valore: numero) | Una ripartizione dei costi per questo itinerario. Le chiavi sono i tipi di costi (ad es. "cost_per_hour") e i valori sono gli importi. | |
routePolyline |
oggetto (EncodedPolyline) |
La polilinea codificata che rappresenta geograficamente il percorso completo dell'itinerario. | |
routeTotalCost |
numero | Il costo totale dell'itinerario, somma di tutti i costi nella mappa routeCosts. |
|
transitions[] |
array di oggetti (Transition) |
Un elenco ordinato di transizioni (tratte di viaggio) che collegano le visite. | |
vehicleEndTime |
Timestamp | L'ora in cui il veicolo termina il suo percorso. | |
vehicleIndex |
integer | L'indice del veicolo nell'origine ShipmentModel che esegue questa route. |
|
vehicleLabel |
stringa | L'etichetta definita dall'utente del veicolo, copiata dal modello di richiesta. | |
vehicleStartTime |
Timestamp | L'ora in cui il veicolo inizia il suo percorso. | |
visits[] |
array di oggetti (Visit) |
La sequenza ordinata di visite (ritiri e consegne) eseguite dal veicolo su questo percorso. | |
Visit(parte di ShipmentRoute) |
detour |
Durata | Il tempo di deviazione aggiuntivo sostenuto da questa visita rispetto al percorso diretto tra la visita precedente e quella successiva. |
isPickup |
booleano (true/false) |
Se true, questa visita è un ritiro. Se il valore è false, si tratta di una consegna. |
|
loadDemands |
map (key: string, value: Load) |
Le richieste di carico soddisfatte da questa visita (ad es. -1 per una consegna). Questa è una copia dei carichi corrispondenti di VisitRequest. |
|
shipmentIndex |
integer | L'indice del campo Shipment nel modello di origine a cui fa riferimento questo servizio. |
|
shipmentLabel |
stringa | L'etichetta della spedizione, copiata da ShipmentModel. |
|
startTime |
Timestamp | L'ora in cui è pianificato l'inizio della visita. | |
visitLabel |
stringa | L'etichetta della richiesta di visita, copiata da VisitRequest nel modello. |
|
visitRequestIndex |
integer | L'indice di VisitRequest nell'elenco di ritiro o consegna della spedizione a cui corrisponde questa visita. |
|
Transition(parte di ShipmentRoute) |
breakDuration |
Durata | La durata delle pause effettuate durante questa transizione. |
delayDuration |
Durata | La durata del ritardo subito durante questa transizione (ad es. arrivo in anticipo e attesa di una finestra temporale). | |
routePolyline |
oggetto (EncodedPolyline) |
La polilinea codificata che rappresenta il percorso di questa transizione specifica. | |
routeToken |
stringa | Un token opaco che può essere passato all'SDK Google Navigation per ricostruire il percorso durante la navigazione. | |
startTime |
Timestamp | L'ora di inizio di questa transizione. | |
totalDuration |
Durata | La durata totale della transizione, inclusi i tempi di viaggio, attesa, pause e ritardi. | |
trafficInfoUnavailable |
booleano (true/false) |
Se true, indica che i dati sul traffico non erano disponibili per questa transizione. |
|
travelDistanceMeters |
numero | La distanza percorsa durante questa transizione, in metri. | |
travelDuration |
Durata | La durata del viaggio durante questa transizione. | |
vehicleLoads |
map (key: string, value: VehicleLoad) |
Il carico trasportato dal veicolo durante questa transizione, suddiviso per tipo di carico (ad es. "weight"). | |
waitDuration |
Durata | La durata dell'attesa prima dell'inizio della visita successiva. |