Come descritto brevemente nella Panoramica dell'ottimizzazione dei percorsi, una richiesta di base è costituita da Modello, Spedizioni e Veicoli come entità obbligatorie:
- Modello acquisisce le impostazioni e i vincoli per l'intera richiesta, inclusi
Shipments
eVehicles
. - Le spedizioni rappresentano attività o spedizioni effettive che includono
VisitRequest
di ritiro e consegna. Le spedizioni hanno impostazioni e vincoli locali. - Veicoli indica veicoli, conducenti o personale. I veicoli hanno anche impostazioni e vincoli locali.
Le proprietà di ogni entità descrivono parte di un problema di ottimizzazione a un determinato livello di granularità. I vincoli a livello di modello vengono applicati a tutte le spedizioni e a tutti i veicoli, mentre i vincoli e le proprietà specificati per le spedizioni o i veicoli sono specifici per una singola spedizione o un singolo veicolo.
Per una documentazione completa su ogni tipo di messaggio, consulta la documentazione di riferimento per i messaggi ShipmentModel
(REST, gRPC), Shipment
(REST, gRPC) e Vehicle
(REST, gRPC).
OptimizeToursRequest
strutture
Alcune proprietà di uso comune del messaggio OptimizeToursRequest
di primo livello
(REST, gRPC) includono:
searchMode
indica se restituire la prima soluzione che soddisfa i vincoli specificati o trovare la soluzione migliore possibile entro una scadenza impostata.considerRoadTraffic
determina se viene utilizzato o meno il traffico in tempo reale per il calcolo dell'itinerario e dell'orario di arrivo stimato.populateTransitionPolylines
determina se i polilinei e i token percorso devono essere restituiti o meno nella risposta.
Proprietà del modello
Alcune proprietà di uso comune del messaggio ShipmentModel
(REST,
gRPC) includono:
globalStartTime
indica l'ora di inizio più antica dei percorsi per tutti i veicoli e le spedizioni. Nessun veicolo può iniziare le prime transizioni e le prime spedizioni prima di questa data.globalEndTime
indica l'ora di fine più recente dei percorsi di tutti i veicoli e delle spedizioni. Tutte le spedizioni e le transizioni assegnate devono essere completate prima di questa data.
Proprietà spedizione
Alcune proprietà di uso comune del messaggio Shipment
(REST, gRPC)
includono:
pickups[]
edeliveries[]
indicano dove è possibile ritirare o consegnare una spedizione. Le proprietàpickups[]
edeliveries[]
utilizzano entrambe il messaggioVisitRequest
(REST, gRPC).loadDemands
indica il carico necessario per un veicolo per completare una spedizione. La proprietàload_limits
(REST, gRPC) corrispondente dei veicoli rappresenta il carico massimo che un veicolo può trasportare contemporaneamente. Scopri di più sul carico in Carichi e limiti.penalty_cost
indica il costo sostenuto se una spedizione viene saltata. Scopri di più sui costi in Parametri del modello di costo.
Proprietà del veicolo
Alcune proprietà di uso comune del messaggio Vehicle
(REST, gRPC)
includono:
startLocation
indica il punto in cui un veicolo deve iniziare il suo percorso. Questa proprietà è facoltativa. Se non specificato, il percorso del veicolo inizia dalla sede della prima spedizione assegnata.endLocation
indica dove un veicolo deve terminare il suo percorso. Questa proprietà è facoltativa. Se non specificato, il percorso del veicolo termina nella località della sua ultima spedizione assegnata.startTimeWindows[]
indica quando un veicolo può iniziare il suo percorso. Questa proprietà è facoltativa.endTimeWindows[]
indica quando un veicolo può iniziare e terminare il suo percorso. Entrambe le proprietà sono facoltative.loadLimits
indica la capacità del veicolo disponibile per soddisfare le richieste di carico delle spedizioni. Scopri di più su richieste e limiti di carico in Richieste e limiti di carico.
Una richiesta di esempio completa in formato JSON ha il seguente aspetto:
{
"model": {
"shipments": [
{
"pickups": [
{
"arrivalLocation": {
"latitude": 37.73881799999999,
"longitude": -122.4161
}
}
],
"deliveries": [
{
"arrivalLocation": {
"latitude": 37.79581,
"longitude": -122.4218856
}
}
]
}
],
"vehicles": [
{
"startLocation": {
"latitude": 37.73881799999999,
"longitude": -122.4161
},
"endLocation": {
"latitude": 37.73881799999999,
"longitude": -122.4161
},
"costPerKilometer": 1.0
}
],
"globalStartTime": "2024-02-13T00:00:00.000Z",
"globalEndTime": "2024-02-14T06:00:00.000Z"
}
}
OptimizeTours
e BatchOptimizeTours
utilizzano entrambi i messaggi di richiesta come nell'esempio riportato sopra, ma in modi diversi. Prima di effettuare una richiesta di ottimizzazione del percorso, è importante comprendere la differenza tra i due metodi: