La pagina seguente contiene le 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 solo 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 della richiesta di primo livello contenente il modello e i parametri di risoluzione.ShipmentModel: la struttura dei dati di base contenente spedizioni, veicoli e vincoli globali.Shipment: un'attività con ritiri e consegne.VisitRequest: la località 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 di causare 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) |
Percorsi di una soluzione precedente da cui iniziare l'ottimizzazione. | |
injectedSolutionConstraint |
oggetto (InjectedSolutionConstraint) |
Vincola la soluzione in modo che sia simile ai percorsi esistenti, specificando quali proprietà devono essere conservate e quali possono essere allentate. | |
interpretInjectedSolutionsUsingLabels |
booleano (true/false) |
Se true, associa le spedizioni/i veicoli nei percorsi inseriti in base al relativo 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 viene 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 polilinee codificate per le singole transizioni tra le visite. |
|
refreshDetailsRoutes[] |
array di oggetti (ShipmentRoute) |
Un elenco di route da aggiornare. In questo modo, vengono ricalcolate le polilinee, le durate e le 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 (predefinito) 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 Distance Matrix personalizzate utilizzate per il calcolo itinerario tra le località. |
durationDistanceMatrixDstTags[] |
array di stringhe | Tag che definiscono le destinazioni (colonne) per le matrici di durata e Distance Matrix personalizzate. | |
durationDistanceMatrixSrcTags[] |
array di stringhe | Tag che definiscono le origini (righe) per le matrici di durata e Distance Matrix personalizzate. | |
globalDurationCostPerHour |
numero | Costo orario dell'intervallo di tempo globale del percorso, dalla prima partenza del veicolo all'ultimo arrivo del 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 | 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 le 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 i costi aggiuntivi, i ritardi e i 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[] |
mappa (chiave: numero intero, valore: numero) | Costi aggiuntivi sostenuti se un veicolo specifico gestisce questa spedizione. | |
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 viene utilizzata nell'ottimizzazione. |
|
label |
stringa | Etichetta definita dall'utente per identificare la spedizione, restituita nella risposta. | |
loadDemands |
mappa (chiave: stringa, valore: 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 indica che il tempo totale può essere al massimo il doppio del tempo di percorrenza diretto). | |
pickupToDeliveryTimeLimit |
Durata | La durata massima consentita dall'inizio del ritiro all'inizio della consegna. | |
shipmentType |
stringa | Classificazione dei caratteri tipografici utilizzata per le regole di incompatibilità e i requisiti. | |
VisitRequest(un componente di pickups e deliveries in Shipment) |
arrivalLocation |
oggetto (LatLng) |
La località di arrivo geografica espressa come coordinate di latitudine/longitudine. |
arrivalWaypoint |
oggetto (Waypoint) |
La località in cui il veicolo arriva 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 località di partenza geografica espressa come coordinate di latitudine/longitudine. | |
departureWaypoint |
oggetto (Waypoint) |
La località 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 il carico/lo scarico. | |
label |
stringa | Etichetta definita dall'utente per questa specifica richiesta di visita, restituita nella risposta. | |
loadDemands |
mappa (chiave: stringa, valore: 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 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. "consegna", "installazione"). Utilizzato per applicare extraVisitDurationForVisitType dal modello del 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 località geografica di arrivo espressa 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) |
Finestre consentite per il veicolo per terminare il percorso. | |
endWaypoint |
oggetto (Waypoint) |
Località di arrivo 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 viene utilizzato nell'ottimizzazione. |
|
label |
stringa | Etichetta definita dall'utente per il veicolo, restituita nella risposta. | |
loadLimits |
mappa (chiave: stringa, valore: LoadLimit) |
Capacità dei veicoli (ad es. peso massimo, volume massimo). | |
routeDistanceLimit |
oggetto (DistanceLimit) |
Un limite rigido o flessibile per la distanza totale del percorso del veicolo. | |
routeDurationLimit |
oggetto (DurationLimit) |
Un limite rigido o flessibile per la durata totale del percorso del veicolo. | |
routeModifiers |
oggetto (RouteModifiers) |
Uno o più vincoli, ad esempio evitare pedaggi, autostrade o traghetti. | |
startLocation |
oggetto (LatLng) |
La località di partenza geografica espressa 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) |
Finestre consentite per l'inizio del percorso del veicolo. | |
startWaypoint |
oggetto (Waypoint) |
Località di partenza geografica che utilizza un waypoint (coordinate o ID luogo). | |
travelDurationLimit |
oggetto (DurationLimit) |
Un limite rigido o flessibile sulla 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 viene considerato utilizzato anche senza spedizioni. Comporta costi fissi e viaggia tra le località 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 seguente:
OptimizeToursResponse: l'oggetto di risposta di primo livello che contiene i percorsi e le metriche ottimizzati.Metrics: le statistiche complessive sui costi e sull'esecuzione della soluzione.ShipmentRoute: la sequenza di visite e il percorso di viaggio assegnati a un singolo veicolo.Visit: una fermata su un percorso per eseguire un ritiro o una consegna.Transition: il percorso e la durata tra due fermate del percorso.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 che sono state ignorate (non gestite), insieme ai motivi per cui sono state ignorate. | |
validationErrors[] |
array di oggetti (OptimizeToursValidationError) |
Un elenco di errori di convalida rilevati 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 per tutti i percorsi, come distanza totale di viaggio, durata totale e tempi di attesa. |
costs |
map (key: string, value: number) | Una suddivisione 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 dei percorsi e le penalità 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 |
map (key: string, value: number) | Una suddivisione 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 |
mappa (chiave: stringa, valore: VehicleLoad) |
Il carico massimo trasportato da un veicolo in qualsiasi punto della soluzione, con chiave in base al tipo di carico. | |
performedShipmentCount |
integer | Il numero totale di spedizioni eseguite da 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 dei percorsi e le penalità 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 i percorsi. | |
usedVehicleCount |
integer | Il numero di veicoli utilizzati nella soluzione. | |
visitDuration |
Durata | La durata totale delle visite (carico/scarico) lungo 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à legati al traffico. | |
metrics |
oggetto (AggregatedMetrics) |
Metriche specifiche per questo percorso, come la distanza totale e la durata del viaggio. | |
routeCosts |
map (key: string, value: number) | Un'analisi dettagliata dei costi per questo percorso. Le chiavi sono i tipi di costo (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 del percorso, ovvero la 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 questo percorso. |
|
vehicleLabel |
stringa | L'etichetta del veicolo definita dall'utente, copiata dal modello di richiesta. | |
vehicleStartTime |
Timestamp | L'ora in cui il veicolo inizia il 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 richiesto 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 è false, si tratta di una consegna. |
|
loadDemands |
mappa (chiave: stringa, valore: Load) |
Le richieste di carico soddisfatte da questa visita (ad es. -1 per una consegna). Questa è una copia delle richieste di carico VisitRequest corrispondenti. |
|
shipmentIndex |
integer | L'indice del campo Shipment nel modello di origine gestito da questa visita. |
|
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 verificatosi 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, pausa e ritardo. | |
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 |
mappa (chiave: stringa, valore: VehicleLoad) |
Il carico trasportato dal veicolo durante questa transizione, identificato dal tipo di carico (ad es. "peso"). | |
waitDuration |
Durata | La durata dell'attesa prima che possa iniziare la visita successiva. |