根據預設,車輛可從任何方向抵達取貨或送貨地點,然後從任何方向離開。在某些情況下,這會迫使車輛在拜訪地點迴轉,但由於車輛大小、地點的交通標誌或一般交通狀況,迴轉可能很困難或不可能。
如要避免車輛在抵達特定上車或送達地點後改變方向,可以將該地點的 avoid_u_turns
設為 true。在此設定下,車輛抵達和離開地點時會朝向同一方向,因此不會迴轉。在雙向道路上,求解器會考量兩個方向,並選擇其中一個做為路徑最佳化的一部分。
您也可以將 side_of_road
設為 true,取得車輛在最靠近途中的道路側邊抵達和離開的路徑。在此情況下,車輛也不會在抵達和出發之間變更航向。您可以將 side_of_road
和 avoid_u_turns
都設為 true,達到相同結果。詳情請參閱「與其他功能互動」。
在實務上,avoid_u_turns
應在安全過馬路前往航點時使用。如果系統不建議或無法進行交叉比對,請使用 side_of_road
。
範例:使用 avoid_u_turns
發出 OptimizeTours
要求
您可以使用 REST 或 gRPC 發出 OptimizeTours
要求。
提出要求前,請將下列參數替換為適合您環境的值:
- 請確認您已按照「使用 OAuth」一文所述,設定應用程式預設憑證。
將 PROJECT_NUMBER_OR_ID 設為 Cloud 專案編號或 ID。
下列指令會將
OptimizeTours
要求傳送至 Route Optimization API,並同步接收回應。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
要求完成後,您會收到回覆訊息。
與其他功能的互動
avoid_u_turns
可與side_of_road = true
搭配使用。在這種情況下,系統會避開迴轉,但求解器會選取車輛與途中的航點位於道路同一側的路徑,與單獨設定side_of_road = true
類似。- 如果特定造訪要求的
avoid_u_turns = true
為ShipmentRoute.Visit
,則對應回應中的ShipmentRoute.Visit
會設定injected_solution_location_token
欄位。這個值的確切意義是實作細節,但會編碼求解器選取的道路側資訊。 - 在輸入要求中使用
ShipmentRoute.Visit
時,如果該ShipmentRoute.Visit
對應於avoid_u_turns = true
中的VisitRequest
,則ShipmentRoute.Visit
必須包含求解器先前傳回的injected_solution_location_token
。
限制
系統會盡可能避免迴轉。在某些情況下,路線仍可能包含迴轉:
avoid_u_turns
僅適用於支援side_of_road
的交通方式。具體來說,這項功能不支援WALKING
旅行模式。avoid_u_turns
不適用於抵達和出發地點不同的取貨和送貨服務。- 如果取貨或送貨地點位於死巷,你必須迴轉才能離開。
- 這項功能的目的是避免在取貨和送貨地點迴轉。 系統不會避開路線控點間的迴轉。
- 如果轉彎角度很大,轉入不同道路,系統不會將其視為迴轉,通常也不會避開。
這項功能仍在開發階段,因此有其他限制。我們預期隨著這項功能不斷演進,這些指標也會隨之提升。
- 「
avoid_u_turns
」無法與「interpret_injected_solutions_using_labels
」搭配使用。