Per impostazione predefinita, i veicoli possono arrivare in un luogo di ritiro o di consegna da qualsiasi direzione e poi ripartire in qualsiasi direzione. In alcuni casi, questo costringe il veicolo a fare inversione a U nel luogo della visita, il che potrebbe essere difficile o impossibile a causa delle dimensioni del veicolo, dei segnali stradali nel luogo o delle normali condizioni di traffico.
Per impedire ai veicoli di cambiare direzione tra l'arrivo e la partenza
per una determinata posizione di ritiro o consegna, puoi impostare avoid_u_turns
su
true per questa posizione. Con questa impostazione, il veicolo arriverà e lascerà
la posizione con la stessa direzione, evitando così l'inversione a U. Sulle strade a doppio senso,
il risolutore prenderà in considerazione entrambe le direzioni e ne sceglierà una come parte dell'ottimizzazione del percorso.
Puoi anche impostare side_of_road
su true per ottenere un percorso in cui il veicolo
arriva e parte dal lato della strada più vicino al waypoint. In questo
caso, il veicolo non cambia direzione tra l'arrivo e la
partenza. È possibile impostare sia side_of_road
sia avoid_u_turns
su true
per ottenere lo stesso risultato. Per maggiori dettagli, vedi Interazione con altre funzionalità.
In pratica, avoid_u_turns
deve essere utilizzato quando è sicuro attraversare la strada per
raggiungere il waypoint. Utilizza side_of_road
quando l'attraversamento è sconsigliato o non
possibile.
Esempio: invia una richiesta OptimizeTours
con avoid_u_turns
Le richieste OptimizeTours
possono essere effettuate utilizzando REST o gRPC.
Prima di effettuare una richiesta, sostituisci i seguenti parametri con valori appropriati per il tuo ambiente:
- Assicurati di aver configurato le credenziali predefinite dell'applicazione come descritto in Utilizzare OAuth.
Imposta PROJECT_NUMBER_OR_ID sul numero o sull'ID del tuo progetto Cloud.
Il seguente comando invia una richiesta
OptimizeTours
all'API Route Optimization e riceve una risposta in modo sincrono.curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ --data @- <<EOM { "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 } ], } } EOM
Al termine della richiesta, riceverai un messaggio di risposta.
Interazione con altre funzionalità
avoid_u_turns
può essere utilizzato insieme aside_of_road = true
. In questo caso, le inversioni a U vengono evitate, ma il risolutore seleziona un percorso in cui il veicolo si trova sullo stesso lato della strada del waypoint, in modo simile all'impostazioneside_of_road = true
da sola.- Quando
avoid_u_turns = true
per una determinata richiesta di visita, alloraShipmentRoute.Visit
nella risposta corrispondente ha il campoinjected_solution_location_token
impostato. Il significato preciso del suo valore è un dettaglio di implementazione, ma codifica le informazioni sul lato della strada scelto dal risolutore. - Quando utilizzi un
ShipmentRoute.Visit
come parte della richiesta di input, se questoShipmentRoute.Visit
corrisponde a unVisitRequest
in cuiavoid_u_turns = true
, alloraShipmentRoute.Visit
deve contenere uninjected_solution_location_token
restituito in precedenza dal risolutore.
Limitazioni
L'evitamento dell'inversione a U si basa sul "best effort". In alcune situazioni, il percorso potrebbe comunque contenere inversioni a U:
avoid_u_turns
funziona solo con le modalità di viaggio che supportanoside_of_road
. Nello specifico, non è supportata per la modalità di viaggioWALKING
.avoid_u_turns
non può essere utilizzato per i ritiri e le consegne in cui l'arrivo e la partenza non coincidono.- Quando un ritiro o una consegna si trova su una strada senza uscita, è necessario fare un'inversione a U per uscire dalla strada.
- Lo scopo di questa funzionalità è evitare le inversioni a U nei luoghi di ritiro e consegna. Le inversioni a U tra i waypoint non vengono evitate.
- Le curve molto strette su una strada diversa non sono considerate inversioni a U e in genere non vengono evitate.
Durante lo sviluppo di questa funzionalità, sono presenti ulteriori limitazioni. Prevediamo che vengano rimossi man mano che la funzionalità si evolve.
avoid_u_turns
non può essere utilizzato insieme ainterpret_injected_solutions_using_labels
.