エリアを回避

このパラメータavoid[areas] を使用すると、指定したエリアを回避するルートを計算できます。

パフォーマンスを考慮する場合、これらの領域のサイズに基づいて、領域を回避するために異なるアルゴリズムが使用されます。 指定されたエリアが大きく、回避されたエリアを通るルートが唯一の場合、回避されたエリア内のルートの一部が最適でない可能性があります。

回避されたエリアをルートが通過する可能性のあるシナリオ:

  • 送信元から宛先への代替ルートを計算できませんでした。
  • 送信元 、宛先、または中間のウェイポイント が、回避された領域内にあります。

ティーアガルテン公園内のエリアを通らないようにリクエストする場合は、以下の点に注意してください。

curl -X GET \
  'https://router.hereapi.com/v8/routes?origin=52.522297,13.353296&destination=52.508309,13.355633&transportMode=car&avoid[areas]=bbox:13.37588,52.51061,13.34226,52.51892&apikey={YOUR_API_KEY}'
エリアを回避
図 1. 回避する領域

指定したエリアを回避するために、ルートが迂回路になります。

回避エリア違反

次のリクエストでは、宛先が回避する領域内にあるため、指定した領域を回避できません。

curl -X GET \
  'https://router.hereapi.com/v8/routes?origin=52.514647,13.387549&destination=52.516547,13.379095&transportMode=car&avoid[areas]=bbox:13.382279,52.51441,13.376397,52.518284&apikey={YOUR_API_KEY}'
エリアの違反を回避
図 2. エリアの違反を回避

レスポンスで notice は、コードを使用してviolatedBlockedRoadが指定されます。

{
  "routes": [
    {
      "id": "a394029a-06c3-4864-b46c-8296acfcf6a1",
      "sections": [
        {
          "id": "7237d4d1-131d-4cf5-ba2f-b95a16e571a2",
          "type": "vehicle",
          "departure": {
            "time": "2021-11-09T17:58:56+01:00",
            "place": {
              "type": "place",
              "location": {
                "lat": 52.5146499,
                "lng": 13.3875485
              },
              "originalLocation": {
                "lat": 52.5146469,
                "lng": 13.3875489
              }
            }
          },
          "arrival": {
            "time": "2021-11-09T18:02:24+01:00",
            "place": {
              "type": "place",
              "location": {
                "lat": 52.5165322,
                "lng": 13.3790967
              },
              "originalLocation": {
                "lat": 52.5165469,
                "lng": 13.3790949
              }
            }
          },
          "notices": [
            {
              "title": "Violated avoid areas.",
              "code": "violatedBlockedRoad",
              "severity": "critical"
            }
          ],
          "transport": {
            "mode": "car"
          }
        }
      ]
    }
  ]
}

」に一致する結果は 件です

    」に一致する結果はありません