L'evitamento dell'inversione a U è una funzionalità di ottimizzazione del percorso che impedisce ai veicoli di fare inversione a U nella sede di ritiro o consegna specifica di una visita. Se imposti l'evitamento dell'inversione a U, specifichi che il veicolo deve essere rivolto nella stessa direzione quando arriva e quando lascia una sede di visita.
L'evitamento dell'inversione a U funziona nel seguente modo:
- Imposti la proprietà di evitamento dell'inversione a U su una visita specifica.
- L'API considera entrambe le direzioni di viaggio 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 inversione a U nella sede della visita. Il conducente potrebbe dover attraversare la strada per raggiungere questa sede.
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 sede 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'evitamento 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 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 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 per le sedi di ritiro che 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 } ] } }
Evitare le inversioni a U con sideOfRoad
Sebbene sideOfRoad sia una funzionalità separata, è strettamente correlata all'evitamento dell'inversione 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 sede di visita da una direzione specifica, eliminando la necessità di fare inversione a U.
In pratica, devi utilizzare l'evitamento dell'inversione a U quando è sicuro attraversare la strada a piedi per raggiungere la sede 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 dell'inversione a U interagisce con altre funzionalità di routing nei seguenti modi:
- Lato della strada: se imposti sia
avoidUTurnschesideOfRoadsutrueaumentano leggermente le probabilità di evitare un'inversione a U mentre indirizzi il veicolo sul lato della strada più vicino alla sede della visita. Tuttavia, in questo modo si introducono ulteriori complessità relative alle limitazioni dell'evitamento dell'inversione a U. Per la maggior parte delle sedi di visita, è sufficiente impostare una sola di queste proprietà 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 nelle seguenti condizioni:
- La modalità di viaggio è impostata su una modalità diversa da
DRIVING. - Le sedi di arrivo e partenza per una sede di visita specifica 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 si verifica lungo il percorso, anziché nella sede della visita vera e propria.
- La manovra è una svolta molto brusca su una strada diversa, che l'API non classifica come inversione a U.