Come descritto brevemente nella Panoramica dell'ottimizzazione del percorso, una richiesta di base è costituita da Modello, Spedizioni e Veicoli come entità richieste:
- Model acquisisce le impostazioni e i vincoli per l'intera richiesta,
inclusi sia
Shipments
cheVehicles
. - Le spedizioni rappresentano attività o spedizioni effettive che includono il ritiro e la
consegna
VisitRequest
. Le spedizioni hanno impostazioni e vincoli locali. - I veicoli rappresentano veicoli, conducenti o personale. I veicoli hanno anche impostazioni e vincoli locali.
Le proprietà di ogni entità descrivono una parte di un problema di ottimizzazione a un particolare livello di granularità. I vincoli a livello di modello vengono applicati a tutte le spedizioni e 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 la 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 quanto segue:
searchMode
indica se restituire la prima soluzione che soddisfa i vincoli specificati o trovare la migliore soluzione possibile entro una scadenza prestabilita.considerRoadTraffic
determina se il traffico in tempo reale viene utilizzato per il calcolo del percorso e della stima dell'orario di arrivo.populateTransitionPolylines
determina se le polilinee del percorso e i token del percorso vengono restituiti nella risposta.
Proprietà del modello
Alcune proprietà comunemente utilizzate del messaggio ShipmentModel
(REST,
gRPC) includono:
globalStartTime
rappresenta l'ora di inizio più anticipata dei percorsi per tutti i veicoli e le spedizioni. Nessun veicolo può iniziare le prime transizioni e spedizioni prima di questo orario.globalEndTime
rappresenta 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 questo orario.
Proprietà della spedizione
Alcune proprietà comunemente utilizzate del messaggio Shipment
(REST, gRPC)
includono:
pickups[]
edeliveries[]
rappresentano i luoghi in cui è possibile ritirare o consegnare una spedizione. Le proprietàpickups[]
edeliveries[]
utilizzano entrambe il messaggioVisitRequest
(REST, gRPC).loadDemands
rappresenta il carico necessario a un veicolo per completare una spedizione. La proprietàload_limits
(REST, gRPC) dei veicoli rappresenta la quantità di carico che un veicolo può ospitare contemporaneamente. Scopri di più sul carico in Richieste e limiti di carico.penalty_cost
rappresenta il costo sostenuto se una spedizione viene saltata. Scopri di più sui costi in Parametri del modello di costi.
Proprietà del veicolo
Alcune proprietà comunemente utilizzate del messaggio Vehicle
(REST, gRPC)
includono:
startLocation
indica il punto in cui un veicolo deve iniziare il percorso. Questa proprietà è facoltativa. Se non specificato, il percorso del veicolo inizia dalla posizione della prima spedizione assegnata.endLocation
rappresenta il punto in cui un veicolo deve terminare il percorso. Questa proprietà è facoltativa. Se non specificato, il percorso del veicolo termina nella posizione dell'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 percorso. Entrambe le proprietà sono facoltative.loadLimits
rappresentano 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
l'esempio precedente, ma in modi diversi. Prima di effettuare una richiesta di ottimizzazione del percorso, è importante comprendere la differenza tra i due metodi:
Confronto tra OptimizeTours e BatchOptimizeTours