Elenco dei parametri

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

La struttura dei dati del 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

La struttura dei dati del 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 in Metrics che in ShipmentRoute.
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.