Domyślnie pojazdy mogą dojeżdżać do miejsca odbioru lub dostawy z dowolnego kierunku, a potem odjeżdżać w dowolnym kierunku. W niektórych przypadkach może to zmusić pojazd do zawrócenia w miejscu wizyty, co może być trudne lub niemożliwe z powodu rozmiaru pojazdu, znaków drogowych w miejscu wizyty lub warunków drogowych.
Aby zapobiec zmianie kierunku jazdy pojazdu między przybyciem a odjazdem w przypadku danej lokalizacji odbioru lub dostawy, możesz ustawić wartość avoid_u_turns
na „true” (prawda) w przypadku tej lokalizacji. W przypadku tego ustawienia pojazd będzie przyjeżdżał i wyjeżdżał z miejsca docelowego w tym samym kierunku, unikając zawracania. Na drogach dwukierunkowych kalkulator bierze pod uwagę oba kierunki i wybiera jeden z nich w ramach optymalizacji trasy.
Możesz też ustawić parametr side_of_road
na wartość true, aby uzyskać trasę, na której pojazd dojeżdża i odjeżdża od punktu docelowego po stronie drogi najbliższej punktowi drogi. W tym przypadku pojazd nie zmienia też kierunku między przybyciem a odjazdem. Aby osiągnąć ten sam wynik, możesz ustawić wartości side_of_road
i avoid_u_turns
na „PRAWDA”. Więcej informacji znajdziesz w artykule Interakcje z innymi funkcjami.
W praktyce polecenie avoid_u_turns
należy stosować, gdy można bezpiecznie przejść przez drogę, aby dotrzeć do punktu orientacyjnego. Użyj side_of_road
, gdy przejście nie jest zalecane lub niemożliwe.
Przykład: wysłanie żądania OptimizeTours
do usługi avoid_u_turns
Żądania OptimizeTours
można wysyłać za pomocą interfejsu REST lub gRPC.
Zanim wyślesz żądanie, zastąp te parametry wartościami odpowiednimi dla Twojego środowiska:
- Upewnij się, że domyślne dane logowania aplikacji są skonfigurowane zgodnie z opisem w artykule Korzystanie z protokołu OAuth.
Ustaw wartość PROJECT_NUMBER_OR_ID na numer lub identyfikator projektu Cloud.
Poniższe polecenie wysyła żądanie
OptimizeTours
do interfejsu RouteOptimization API i otrzymuje odpowiedź w sposób synchroniczny.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
Po zakończeniu procesu otrzymasz wiadomość z odpowiedzią.
Interakcje z innymi funkcjami
avoid_u_turns
można używać razem zside_of_road = true
. W tym przypadku zawracanie jest wykluczone, ale rozwiązanie wybiera trasę, na której pojazd znajduje się po tej samej stronie drogi co punkt orientacyjny, podobnie jak w przypadku ustawieniaside_of_road = true
.- Jeśli
avoid_u_turns = true
dla określonego żądania wizyty, toShipmentRoute.Visit
w odpowiedniej odpowiedzi ma ustawione poleinjected_solution_location_token
. Dokładne znaczenie tej wartości jest szczegółem implementacji, ale koduje informacje o stronie drogi wybranej przez rozwiązanie. - Jeśli w ramach żądania wejścia używasz wartości
ShipmentRoute.Visit
, która odpowiada wartościVisitRequest
w którejavoid_u_turns = true
, toShipmentRoute.Visit
musi zawierać wartośćinjected_solution_location_token
zwróconą wcześniej przez rozwiązanie.ShipmentRoute.Visit
Ograniczenia
Unikanie zawracania jest możliwe w ramach możliwości. W niektórych sytuacjach trasa może zawierać zawracanie:
avoid_u_turns
działa tylko w przypadku trybów podróży, które obsługująside_of_road
. W szczególności nie jest on obsługiwany w trybie podróżyWALKING
.avoid_u_turns
nie można używać do odbioru i dostawy, gdy miejsce przyjazdu i wyjazdu są różne.- Jeśli odbiór lub dostawa odbywa się na ulicy bez wylotu, konieczny jest zawracanie, aby opuścić ulicę.
- Celem tej funkcji jest unikanie zawracania w miejscach odbioru i dostawy. Nie unikaj zawracania między punktami pośrednimi.
- Bardzo ostre zakręty na inną drogę nie są uważane za zawracanie i zazwyczaj nie są unikane.
Ta funkcja jest w trakcie opracowywania, dlatego obowiązują dodatkowe ograniczenia. Oczekujemy, że zostaną one zniesione w miarę rozwoju tej funkcji.
- Usługi
avoid_u_turns
nie można używać razem z usługąinterpret_injected_solutions_using_labels
.