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

回避設定

ルートは特定のマップフィーチャーやエリアを回避するように計算できます。

エリアを回避する

領域をバウンディングボックス、ポリゴン、またはコリドーとして指定することで、地理的領域全体を回避できます。たとえば、ベルリンエリアを回避するルートは、avoid[areas]=bbox:13.082,52.416,13.628,52.626と指定すると計算できます。

エリアを回避する方法については、「ルート内のエリアを回避するには」を参照してください。

ルート検索ゾーンを回避する

ルート検索ゾーンとその回避方法の詳細については、「ルーティングゾーンの使用方法」を参照してください。

セグメントを回避する

マップの特定の場所は、回避するセグメントの識別子を指定することで回避できます。たとえば、ベルリンのInvalidenstrasseの一部である特定セグメントを回避するルートは、avoid[segments]=here:cm:segment:207551710と指定すると計算できます。

フィーチャーを回避する

マップフィーチャーは、回避するフィーチャーカテゴリーのリストを指定することで回避できます。たとえば、有料道路を回避するルートは、ルートをリクエストするときにavoid[features]=tollRoadと指定すると計算できます。

トラックのルーティングで高速道路や有料道路を回避する

非常に長いトラックルートで高速道路や有料道路を避けると、レスポンス時間が非常に長くなるか、ルートがまったく返されない可能性があります。ルート検索アルゴリズムでは通常、特に長距離運転の場合、ルートの大部分が高速道路で行われるものと想定されます。この想定から外れると、前述のような動作が発生します。これはトラックルートの場合に特に問題となります。高速道路以外の代替ルートにはトラック制限が多い場合があり、その結果、ルートが見つからないかルートを見つけるのに非常に長い計算時間がかかるおそれがあります。

さらに、多くの国では、主要道路のほとんどまたはすべてが有料道路であるため (特にトラックの場合)、「avoid toll-roads」オプションにも同様の制限があります。たとえば、transportMode=truckavoid[features]=tollRoadsを使用してヨーロッパを横断するルートでは、多くの場合、すべての主要道路を回避する必要があり、その結果、計算できたとしても、トラックにとっては非常に長くて不便なルートになります。

季節閉鎖を回避する

季節閉鎖の詳細と回避方法については、「季節閉鎖」を参照してください。

回避リクエストの違反

avoidリクエストに違反せずにルートを計算できない場合があります。 たとえば、他の方法ではアクセスできない島にルーティングする際にavoid[features]=ferryを指定する場合です。この場合、そのフィーチャーの使用を最小限に抑えたルートが返される可能性があります。利用可能な唯一のルートがavoidリクエストに違反する場合、ルートが返されないこともあります。

または、そのフィーチャーが多くの高速/shortルートに存在するために、それを回避するルートを見つけるのが非常に困難な場合もあります。この例として、多くのトンネルがある山岳地帯を横断するルートの計算にavoid[feature]=tunnelsを使用することが考えられます。

avoidリクエストに違反するルートが返された場合、そのルートがそのフィーチャーを回避しないことを示す通知が示されます。

指定された回避オプションを回避する例

次のリクエストでは、avoidオプションを使用してtollRoadフィーチャーを正常に回避します。

curl -gX GET 'https://router.hereapi.com/v8/routes?'\
'destination=47.168076,11.861380&'\
'origin=47.257410,11.351458&'\
'transportMode=car&'\
'avoid[features]=tollRoad&'\
'apiKey=YOUR_API_KEY'

指定された回避オプションに違反する例

次のリクエストは回避オプションに違反しています。

curl -gX GET 'https://router.hereapi.com/v8/routes?'\
'destination=53.863531,14.284817&'\
'origin=53.859552,14.271760&'\
'transportMode=car&'\
'avoid[features]=ferry&'\
'apiKey=YOUR_API_KEY'

次の応答では、violatedAvoidFerry コードを含む notice が指定されます。

{
  "routes": [
    {
      "id": "7616d85b-da9a-46bd-9b9f-e8dafe34213a",
      "sections": [
        {
          ...,
          "transport": {
            "mode": "car"
          },
          "type": "vehicle"
        },
        {
          ...,
          "notices": [
            {
              "code": "violatedAvoidFerry",
              "title": "Violated avoid ferry"
            }
          ],
          "transport": {
            "mode": "ferry"
          },
          "type": "vehicle"
        },
        {
          ...,
          "transport": {
            "mode": "car"
          },
          "type": "vehicle"
        }
      ]
    }
  ]
}

回避オプションが失敗する例

次のリクエストでは回避オプションに失敗しています。

curl -gX GET 'https://router.hereapi.com/v8/routes?'\
'origin=52.531106,13.384915&'\
'transportMode=car&'\
'destination=55.954408,-3.194735&'\
'avoid[features]=ferry,carShuttleTrain&'\
'return=summary&'\
'apiKey=YOUR_API_KEY'
{
  "notices": [
    {
      "title": "Route calculation failed: Couldn't find a route.",
      "code": "noRouteFound"
    }
  ],
  "routes": []
}