デフォルトでは、車両は任意の方向から集荷場所または配達場所に到着し、任意の方向に出発できます。場合によっては、車両が訪問場所で U ターンを強制されることがあります。車両のサイズ、場所の交通標識、通常の交通状況により、U ターンが困難または不可能になることがあります。
特定の集荷場所または配達場所で、車両が到着から出発までの間に方向を変えないようにするには、この場所の avoid_u_turns
を true に設定します。この設定では、車両は同じ向きで目的地に到着し、出発するため、U ターンを回避できます。双方向の道路では、ソルバーは両方向を考慮し、ルートの最適化の一部としていずれかを選択します。
side_of_road
を true に設定して、車両がウェイポイントに最も近い道路の側で到着して出発するルートを取得することもできます。この場合、車両は到着から出発までの間に進行方向を変更しません。side_of_road
と avoid_u_turns
の両方を true に設定して、同じ結果を得ることもできます。詳しくは、他の機能とのインタラクションをご覧ください。
実際には、道路を安全に横断して経由地に到達できる場合に avoid_u_turns
を使用する必要があります。横断が推奨されない場合や横断できない場合は、side_of_road
を使用します。
例: avoid_u_turns
を使用して OptimizeTours
リクエストを行う
OptimizeTours
リクエストは、REST または gRPC のいずれかを使用して行うことができます。
リクエストを行う前に、次のパラメータを環境に適した値に置き換えます。
- OAuth を使用するの説明に沿って、アプリケーションのデフォルト認証情報が構成されていることを確認します。
PROJECT_NUMBER_OR_ID に Cloud プロジェクト番号または ID を設定します。
次のコマンドは、Route Optimization API に
OptimizeTours
リクエストを送信し、レスポンスを同期的に受信します。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
と併用できます。この場合、U ターンは回避されますが、ソルバーは、side_of_road = true
のみを設定した場合と同様に、車両が経由地と同じ側の道路を走行するルートを選択します。- 特定の訪問リクエストの
avoid_u_turns = true
の場合、対応するレスポンスのShipmentRoute.Visit
にはinjected_solution_location_token
フィールドが設定されます。値の正確な意味は実装の詳細ですが、ソルバーが選択した道路の側に関する情報がエンコードされます。 - 入力リクエストの一部として
ShipmentRoute.Visit
を使用する場合、そのShipmentRoute.Visit
がavoid_u_turns = true
を含むVisitRequest
に対応している場合、ShipmentRoute.Visit
にはソルバーによって以前に返されたinjected_solution_location_token
が含まれている必要があります。
制限事項
U ターン回避はベスト エフォートです。状況によっては、ルートに U ターンが含まれることがあります。
avoid_u_turns
は、side_of_road
をサポートする移動手段でのみ機能します。特に、WALKING
の移動手段ではサポートされていません。avoid_u_turns
は、到着地と出発地が異なる集荷と配達には使用できません。- 集荷または配達が袋小路で行われる場合は、U ターンして道路から出る必要があります。
- この機能の目的は、集荷場所や配達場所での U ターンを避けることです。経由地間の U ターンは回避されません。
- 別の道路への急な方向転換は U ターンとは見なされず、通常は回避されません。
この機能の開発中は、追加の制限事項があります。この機能の進化に伴い、これらの制限は解除される予定です。
avoid_u_turns
はinterpret_injected_solutions_using_labels
と併用できません。