ガイドAPIリファレンス
ガイド

さまざまなオプションでルートを再評価する

このチュートリアルでは、計算に使用されたものとは異なるルート オプションのセットを使用してルートを評価するようにリクエストすることで、さまざまなユースケースに対応する方法を説明します。

これらすべてのユースケースに共通するのは、最初の計算中にrouteHandleがリクエストされ、その後、そのハンドルを使用した後続のリクエストを使用してルートが再評価されることです。routeHandleをリクエストして使用する方法については、「ルートハンドルの使用方法」を参照してください。

交通渋滞のないルートを計算し、そのルートの交通情報をリクエストします。

多くの場合、交通状況がルート選択に影響を与えないときにドライバーが選ぶルートを計算し、そのルートに沿った現在の交通状況を評価する必要があります。

最初のリクエストでは、routeHandle のみをリクエストし、traffic[mode]=disabled を渡します。

curl -gX GET 'https://router.hereapi.com/v8/routes?'\
'origin={YOUR_ORIGIN}&'\
'destination={YOUR_DESTINATION}&'\
'return=routeHandle&'\
'transportMode=car&'\
'traffic[mode]=disabled&'\
'apiKey=YOUR_API_KEY'

後続のリクエストでは、交通状況に関する情報を取得するために、incidentssummarydynamicSpeedInfo をリクエストしています。

curl -gX GET 'https://router.hereapi.com/v8/routes/{ROUTE_HANDLE}?'\
'return=polyline,incidents,summary&'\
'spans=incidents,dynamicSpeedInfo,notices&'\
'transportMode=car&'\
'apiKey=YOUR_API_KEY'

レスポンスには、ユーザーに公開できるさまざまな情報が含まれています。

  • summary にはトラフィックベースの duration が含まれています。
  • incidents はルート上のすべての交通障害を一覧表示します。
  • notices は、ルートの一部が交通障害によって遮断されている場合に通知します。
  • dynamicSpeedInfo には交通速度と基本速度に関する情報が含まれています。

他の車両タイプが使用するルートを選択する

ある車両タイプに対して計算されたルートが、別の車両タイプではどのように機能するかを評価する場合があります。

たとえば、car のルートを計算し、大型トラックがどのように対処できるかを評価できます。

curl -gX GET 'https://router.hereapi.com/v8/routes?'\
'origin=52.551716,13.420443&'\
'destination=52.496361,13.319506&'\
'return=routeHandle&'\
'transportMode=car&'\
'apiKey=YOUR_API_KEY'

次に、ルートは40トンのトラック用に評価されます。

curl -gX GET 'https://router.hereapi.com/v8/routes/{ROUTE_HANDLE}?'\
'return=polyline,summary&'\
'spans=notices&'\
'transportMode=truck&'\
'vehicle[grossWeight]=40000&'\
'apiKey=YOUR_API_KEY'

通知のレスポンスを確認することが重要です。乗用車ベースのルートが何らかのトラック制限に違反する可能性はそれほど低くありません。たとえば、次のようになります。

"notices": [
  {
    "title": "Violated vehicle restriction.",
    "code": "violatedVehicleRestriction",
    "severity": "critical",
    "details": [
      {
        "type": "restriction",
        "cause": "Route violates vehicle restriction",
        "maxWeight": {
          "value": 24000,
          "type": "current"
        },
        ...
      }
    ]
  }
]

ルートが移動モードの通行制限により使用が禁止されているセグメントを通過する場合、routeHandleリクエストは完全に失敗します。たとえば、歩行者公園を通過するトラックのルートを評価する場合:

{
  "notices": [
    {
      "title": "Route handle decoding failed due to forbidden segments for the specified transport mode.",
      "code": "violatedTransportModeInRouteHandleDecoding",
      "severity": "critical"
    }
  ],
  "routes": []
}