Per impostazione predefinita, i veicoli possono arrivare a un punto di ritiro o di consegna da qualsiasi direzione e poi partire in qualsiasi direzione. In alcuni casi, questo costringe il veicolo a fare inversione di marcia nel luogo della visita, il che può essere difficile o impossibile a causa delle dimensioni del veicolo, dei segnali stradali presenti nella località o delle condizioni di traffico abituali.
Per impedire ai veicoli di cambiare direzione tra l'arrivo e la partenza per una determinata località di ritiro o consegna, puoi impostare avoid_u_turns su true per questa località. Con questa impostazione, il veicolo arriverà e partirà dalla stazione con la stessa direzione, evitando così il dietrofront. Per le strade a doppio senso, il risolutore prenderà in considerazione entrambe le direzioni e ne sceglierà una nell'ambito 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 nemmeno la 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 è possibile attraversare la strada in sicurezza per raggiungere il waypoint. Utilizza side_of_road quando l'attraversamento è sconsigliato o non è possibile.
Esempio: effettua 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 i 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
OptimizeToursall'API RouteOptimization 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_turnspuò essere utilizzato insieme aside_of_road = true. In questo caso, si evitano i vicoli ciechi, 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 = trueda sola.- Quando
avoid_u_turns = trueper una determinata richiesta di visita, il valoreShipmentRoute.Visitnella risposta corrispondente ha il campoinjected_solution_location_tokenimpostato. 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.Visitall'interno della richiesta di input, se questoShipmentRoute.Visitcorrisponde a unVisitRequestin cuiavoid_u_turns = true,ShipmentRoute.Visitdeve contenere uninjected_solution_location_tokenrestituito in precedenza dal risolutore.
Limitazioni
L'evitamento di inversioni a U è secondo il criterio del "best effort". In alcune situazioni, il percorso potrebbe comunque includere dei "U-turn":
avoid_u_turnsfunziona solo con le modalità di viaggio che supportanoside_of_road. Nello specifico, non è supportato per la modalità di viaggioWALKING.avoid_u_turnsnon può essere utilizzato per i ritiri e le consegne in cui l'arrivo e la partenza non sono gli stessi.- Quando un ritiro o una consegna si trova in una strada senza uscita, è necessario fare un U-turn per uscire dalla strada.
- Lo scopo di questa funzionalità è evitare di fare inversioni a U nei punti di ritiro e consegna. I cambi di direzione tra i waypoint non vengono evitati.
- Le curve molto strette che portano a un'altra strada non sono considerate inversioni a U e generalmente non vengono evitate.
Mentre questa funzionalità è in fase di sviluppo, sono presenti ulteriori limitazioni. Prevediamo che verranno rimossi man mano che la funzionalità si evolve.
avoid_u_turnsnon può essere utilizzato insieme ainterpret_injected_solutions_using_labels.