- Richiesta HTTP
- Parametri percorso
- Corpo della richiesta
- Corpo della risposta
- Ambiti di autorizzazione
- Autorizzazioni IAM
Invia un OptimizeToursRequest
contenente un ShipmentModel
e restituisce un OptimizeToursResponse
contenente ShipmentRoute
, che sono un insieme di percorsi che possono essere eseguiti dai veicoli per ridurre al minimo il costo complessivo.
Un modello ShipmentModel
è composto principalmente da Shipment
che devono essere eseguiti e da Vehicle
che possono essere utilizzati per trasportare Shipment
. I ShipmentRoute
assegnano i Shipment
ai Vehicle
. In particolare, assegnano una serie di Visit
a ciascun veicolo, dove un Visit
corrisponde a un VisitRequest
, ovvero un ritiro o una consegna per un Shipment
.
L'obiettivo è fornire un'assegnazione di ShipmentRoute
a Vehicle
in modo da ridurre al minimo il costo totale in cui il costo ha molti componenti definiti in ShipmentModel
.
Richiesta HTTP
POST https://routeoptimization.googleapis.com/v1/{parent=projects/*/locations/*}:optimizeTours
L'URL utilizza la sintassi di transcodifica gRPC.
Parametri del percorso
Parametri | |
---|---|
parent |
Obbligatorio. Progetto o località di destinazione per effettuare una chiamata. Formato: * Se non viene specificata alcuna località, verrà scelta automaticamente una regione. |
Corpo della richiesta
Il corpo della richiesta contiene dati con la seguente struttura:
Rappresentazione JSON |
---|
{ "timeout": string, "model": { object ( |
Campi | |
---|---|
timeout |
Se il timeout è impostato, il server restituisce una risposta prima che il periodo di timeout sia trascorso o che sia stata raggiunta la scadenza del server per le richieste sincrone, a seconda dell'evento che si verifica per primo. Per le richieste asincrone, il server genererà una soluzione (se possibile) prima del timeout. Durata in secondi con un massimo di nove cifre frazionarie e termina con " |
model |
Modello di spedizione da risolvere. |
solvingMode |
Per impostazione predefinita, la modalità di risoluzione è |
searchMode |
Modalità di ricerca utilizzata per risolvere la richiesta. |
injectedFirstSolutionRoutes[] |
Guida l'algoritmo di ottimizzazione a trovare una prima soluzione simile a una precedente. Il modello è vincolato quando viene creata la prima soluzione. Tutte le spedizioni non effettuate su un itinerario vengono implicitamente saltate nella prima soluzione, ma possono essere effettuate in soluzioni successive. La soluzione deve soddisfare alcuni presupposti di base della validità:
Se la soluzione iniettata non è fattibile, non viene necessariamente restituito un errore di convalida, ma potrebbe essere restituito un errore che indica l'impossibilità di applicazione. |
injectedSolutionConstraint |
Limitare l'algoritmo di ottimizzazione a trovare una soluzione finale simile a una soluzione precedente. Questa opzione, ad esempio, può essere utilizzata per bloccare parti di percorsi che sono già stati completati o che devono essere completati ma non devono essere modificati. Se la soluzione inserita non è fattibile, non viene necessariamente restituito un errore di convalida e potrebbe invece essere restituito un errore che indica l'inattuabilità. |
refreshDetailsRoutes[] |
Se il campo non è vuoto, gli itinerari specificati verranno aggiornati senza modificare la sequenza di visite o i tempi di percorrenza sottostanti: verranno aggiornati solo gli altri dettagli. Questo non risolve il modello. A partire dal 2020/11, questo campo compila solo le polilinee delle route non vuote e richiede che I campi Questo campo non deve essere utilizzato insieme a
|
interpretInjectedSolutionsUsingLabels |
Se il valore è vero:
Questa interpretazione si applica ai campi Se impostato su true, le etichette delle seguenti categorie devono apparire al massimo una sola volta nella categoria:
Se un La rimozione delle visite ai percorsi o di interi percorsi da una soluzione inserita potrebbe influire sui vincoli impliciti, il che potrebbe portare a cambiamenti nella soluzione, errori di convalida o inattuabilità. NOTA: il chiamante deve assicurarsi che ogni |
considerRoadTraffic |
Prendi in considerazione la stima del traffico per calcolare i campi |
populatePolylines |
Se impostato su true, le polilinee verranno compilate nelle risposte |
populateTransitionPolylines |
Se true, i polilinee verranno compilati nella risposta |
allowLargeDeadlineDespiteInterruptionRisk |
Se questo criterio è impostato, la richiesta può avere una scadenza (vedi https://grpc.io/blog/deadlines) di massimo 60 minuti. In caso contrario, la scadenza massima è di soli 30 minuti. Tieni presente che le richieste di lunga durata presentano un rischio di interruzione significativamente maggiore (ma comunque ridotto). |
useGeodesicDistances |
Se true, le distanze di percorrere verranno calcolate utilizzando le distanze geodetiche anziché quelle di Google Maps e i tempi di percorrenza verranno calcolati utilizzando le distanze geodetiche con una velocità definita da |
label |
L'etichetta che può essere utilizzata per identificare questa richiesta, riportata in |
geodesicMetersPerSecond |
Se |
maxValidationErrors |
Tronca il numero di errori di convalida restituiti. Questi errori in genere sono associati a un payload di errore INVALID_ARGUMENT come dettaglio dell'errore BadRequest (https://cloud.google.com/apis/design/errors#error_details), a meno che non si veda il campo |
Corpo della risposta
In caso di esito positivo, il corpo della risposta contiene un'istanza di OptimizeToursResponse
.
Ambiti di autorizzazione
Richiede il seguente ambito OAuth:
https://www.googleapis.com/auth/cloud-platform
Autorizzazioni IAM
Richiede la seguente autorizzazione IAM per la risorsa parent
:
routeoptimization.locations.use
Per saperne di più, consulta la documentazione IAM.