受け取り場所や配達場所で U ターンを使わない

デフォルトでは、車両は任意の方向から集荷場所または配達場所に到着し、任意の方向に移動できます。そのため、訪問先で車が U ターンを余儀なくされる場合があります。車の大きさ、訪問先の交通標識、通常の交通状況によっては、U ターンが困難または不可能なこともあります。

特定の集荷場所または配送場所で車両が到着と出発で方向を変えないようにするには、この場所の avoid_u_turns を true に設定します。この設定では、車両は同じ進行方向で目的地に到着し、目的地を出発するため、U ターンを回避できます。双方向の道路では、ソルバは両方向を考慮し、ルート最適化の一環として一方を選択します。

side_of_road を true に設定して、車両がウェイポイントに最も近い道路の側で到着と出発を行うルートを取得することもできます。この場合、車両は到着と出発の間で向きを変えません。side_of_roadavoid_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_turnsside_of_road = true とともに使用できます。この場合、U ターンは回避されますが、side_of_road = true のみを設定したときと同様に、車両がウェイポイントと同じ側の道路上にあるルートをソルバが選択します。
  • 特定のアクセス リクエストの avoid_u_turns = true の場合、対応するレスポンスの ShipmentRoute.Visit には injected_solution_location_token フィールドが設定されます。この値の正確な意味は実装の詳細ですが、ソルバによって選択された道路の側面に関する情報をエンコードします。
  • 入力リクエストの一部として ShipmentRoute.Visit を使用する場合、その ShipmentRoute.Visitavoid_u_turns = true を含む VisitRequest に対応している場合、ShipmentRoute.Visit にはソルバによって以前に返された injected_solution_location_token が含まれている必要があります。

制限事項

右折 / 左折回避はベスト エフォートです。状況によっては、ルートに U ターンが含まれることがあります。

  • avoid_u_turns は、side_of_road をサポートする移動モードでのみ機能します。特に、WALKING の移動モードではサポートされていません。
  • avoid_u_turns は、到着と出発が同じでない集荷と配達には使用できません。
  • 集荷または配達が行き止まりの道路にある場合は、道路から出る際に U ターンする必要があります。
  • この機能の目的は、集荷場所と配達場所での U ターンを回避することです。ウェイポイント間の U ターンは回避されません。
  • 別の道路への急な曲がり角は U ターンとは見なされません。通常、回避されません。

この機能は現在開発中であるため、追加の制限事項があります。機能の進化に伴い、制限は解除される予定です。