L'evitamento dell'inversione a U è una funzionalità di ottimizzazione del percorso che impedisce ai veicoli di invertire la marcia nel punto di ritiro o consegna specifico di una visita. Se imposti l'evitamento dell'inversione a U, specifichi che il veicolo deve essere orientato nella stessa direzione quando arriva e quando lascia una posizione di visita.
L'evitamento delle inversioni a U funziona nel seguente modo:
- Imposti la proprietà di evitamento dell'inversione a U in una visita specifica.
- L'API considera entrambe le direzioni di marcia sulle strade a doppio senso e sceglie il percorso più ottimale.
- L'API genera un percorso in cui il veicolo arriva e parte senza fare un'inversione a U nella località della visita. L'autista potrebbe dover attraversare la strada per raggiungere questa posizione.
Questa proprietà è ideale per le situazioni in cui fare inversione a U è difficile o impossibile a causa delle dimensioni del veicolo, dei segnali stradali o delle normali condizioni del traffico.
Proprietà
La proprietà di evitamento dell'inversione a U è definita all'interno dell'oggetto VisitRequest.
Questo oggetto viene utilizzato all'interno degli array pickups e deliveries di una
spedizione.
| Proprietà | Tipo | Descrizione |
|---|---|---|
avoidUTurns |
booleano | Se impostata su true, l'API impedisce al veicolo di fare inversione a U in questa località di visita. Il veicolo arriverà e partirà nella stessa direzione. |
Esempi
Questa sezione tratta due tipi di esempi:
- Esempi di codice che illustrano la struttura dell'inversione a U.
- Un esempio di richiesta che include la funzionalità.
Esempi di codice
L'esempio seguente mostra la struttura diavoidUTurns all'interno di un ritiro
e di una consegna:
"pickups":[ { "arrivalLocation": { "latitude": 37.42506261000996, "longitude": -122.09535511930135 }, "avoidUTurns": true } ], "deliveries":[ { "arrivalLocation": { "latitude": 37.42421503206021, "longitude": -122.09526063135228 }, "avoidUTurns": true } ]
Esempio di richiesta
L'esempio seguente mostra una richiesta optimizeTours di base che
incorpora l'evitamento dell'inversione a U. Questa richiesta include i seguenti elementi:
- Una spedizione con un ritiro e una consegna all'interno dell'oggetto
model. - La proprietà
avoidUTurnsimpostata sutruesia nelle località di ritiro che in quelle di consegna per impedire al veicolo di cambiare direzione in queste fermate.
{ "model": { "shipments":[ { "pickups":[ { "arrivalLocation": { "latitude": 37.42506261000996, "longitude": -122.09535511930135 }, "avoidUTurns": true } ], "deliveries":[ { "arrivalLocation": { "latitude": 37.42421503206021, "longitude": -122.09526063135228 }, "avoidUTurns": true } ] } ], "vehicles":[ { "travelMode": "DRIVING", "costPerKilometer": 1.0 } ] } }
Evita le inversioni a U con sideOfRoad
Sebbene sideOfRoad sia una funzionalità separata, è strettamente correlata all'evitamento
delle inversioni a U perché impedisce molte inversioni a U indirizzando il veicolo sul lato
della strada più vicino alla destinazione. In questo modo, il veicolo è costretto ad avvicinarsi a una
posizione di visita da una direzione specifica, eliminando la necessità
di fare un'inversione a U.
In pratica, dovresti utilizzare l'evitamento dell'inversione a U quando è sicuro attraversare la strada
a piedi per raggiungere la posizione della visita. Se attraversare la strada è
sconsigliato o non possibile, valuta la possibilità di impostare sideOfRoad su true
invece.
La proprietà sideOfRoad è definita all'interno di un oggetto Waypoint.
Interazione con altre funzionalità
L'evitamento delle inversioni a U interagisce con altre funzionalità di pianificazione del percorso nei seguenti modi:
- Lato della strada: se imposti sia
avoidUTurnschesideOfRoadsutrue, aumentano leggermente le possibilità di evitare un'inversione a U mentre il veicolo viene indirizzato sul lato della strada più vicino alla posizione della visita. Tuttavia, in questo modo si introducono ulteriori complessità relative alle limitazioni dell'evitamento delle inversioni a U. Per la maggior parte delle località di visita, l'impostazione di una sola di queste proprietà è sufficiente per evitare le inversioni a U. - Soluzioni inserite:quando utilizzi l'evitamento dell'inversione a U, la risposta dell'API
include un
injectedSolutionLocationTokenall'interno diShipmentRoute.Visitgenerato per registrare il lato della strada selezionato. Se riutilizzi questa visita come soluzione inserita in una richiesta futura, devi restituire questo token all'API.
Limitazioni
L'evitamento dell'inversione a U è una funzionalità "best effort". L'API potrebbe comunque includere inversioni a U in un percorso generato alle seguenti condizioni:
- La modalità di viaggio è impostata su una modalità diversa da
DRIVING. - Le località di arrivo e partenza per una specifica località di visita sono diverse. In questo caso, l'API restituisce un errore.
- La visita si trova su una strada senza uscita, che richiede un'inversione a U per uscire.
- L'inversione a U avviene lungo il percorso, non nella posizione effettiva della visita.
- La manovra è una svolta molto brusca su una strada diversa, che l'API non classifica come inversione a U.