U ターン回避

U ターン回避は、集荷と配達のオブジェクトの `ShipmentModel.Shipment` にあります。

U ターン回避は、車両が訪問先の特定の集荷場所または配達場所で転回しないようにするルート最適化機能です。U ターン回避を設定すると、車両が訪問先に到着したときと出発したときに同じ方向を向くように指定できます。

U ターン回避は次のように機能します。

  1. 特定の訪問先に U ターン回避プロパティを設定します。
  2. API は、双方向道路の移動方向を両方考慮して、最適な経路を選択します。
  3. API は、車両が訪問先で U ターンせずに到着して出発するルートを生成します。ドライバーは、この場所に到達するために道路を横断する必要がある場合があります。

このプロパティは、車両のサイズ、交通標識、通常の交通量により、U ターンが困難または不可能な場合に最適です。

プロパティ

U ターン回避プロパティは、VisitRequest オブジェクト内で定義されます。 このオブジェクトは、配送の pickups 配列と deliveries 配列内で使用されます。

プロパティ タイプ 説明
avoidUTurns ブール値 true に設定すると、API は車両がこの訪問先で U ターンしないようにします。車両は同じ方向を向いて到着し、出発します。

このセクションでは、次の 2 種類の例について説明します。

  • U ターン回避の構造を示すコードサンプル。
  • この機能を含むリクエストの例。

コードサンプル

次の例は、集荷 と配達におけるavoidUTurnsの構造を示しています。

"pickups":[
  {
    "arrivalLocation": {
      "latitude": 37.42506261000996,
      "longitude": -122.09535511930135
    },
    "avoidUTurns": true
  }
],
"deliveries":[
  {
    "arrivalLocation": {
      "latitude": 37.42421503206021,
      "longitude": -122.09526063135228
    },
    "avoidUTurns": true
  }
]

リクエストの例

次の例は、U ターン回避を組み込んだ基本的な optimizeTours リクエストを示しています。このリクエストには、次の要素が含まれています。

  • model オブジェクト内に集荷と配達を含む配送。
  • 集荷場所と 配達場所の両方で avoidUTurns プロパティが true に設定され、車両がこれらの 停車地で方向を変えないようにします。
  {
    "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
        }
      ]
    }
  }

sideOfRoad を使用して U ターンを回避する

sideOfRoad は別の機能ですが、車両を目的地に最も近い道路の側面にルーティングすることで多くの U ターンを回避するため、U ターン 回避と密接に関連しています。これにより、車両は特定の方向から訪問先に近づくため、U ターンを行う必要がなくなります。

実際には、訪問先まで徒歩で道路を横断しても安全な場合に U ターン回避を使用する必要があります。道路の横断が 推奨されない場合や不可能な場合は、代わりにsideOfRoadtrue に設定することを検討してください。

sideOfRoad プロパティは、Waypoint オブジェクト内で定義されます。

他の機能との連携

U ターン回避は、他のルーティング機能と次のように連携します。

  • 道路の側面: avoidUTurnssideOfRoad の両方を true に設定すると、車両を訪問先に最も近い道路の側面にルーティングしながら、U ターンを回避できる可能性がわずかに高まります。 ただし、これを行うと、U ターン回避の制限に関連する複雑さが増します。ほとんどの訪問先では、これらのプロパティのいずれか 1 つを設定するだけで U ターンを回避できます。
  • 挿入されたソリューション: U ターン回避を使用すると、API レスポンスには 生成された ShipmentRoute.Visit内にinjectedSolutionLocationTokenが含まれ、選択した道路の側面が記録されます。この訪問先を今後のリクエストで挿入されたソリューションとして再利用する場合は、このトークンを API に渡す必要があります。

制限事項

U ターン回避はベスト エフォート機能です。次のような場合でも、API は生成されたルートに U ターンを含めることがあります。

  • 移動手段が DRIVING 以外のモードに設定されている。
  • 特定の訪問先の到着場所と出発場所が異なる。この場合、API はエラーを返します。
  • 訪問先が袋小路にあり、退出するには U ターンが必要である。
  • U ターンが実際の訪問先ではなく、ルートに沿って行われる。
  • この操作は、別の道路への急なターンであり、API は U ターンとして分類しない。