セグメントのルーティングを回避します

ルーティングセグメントは、道路の一部、または線形でナビゲート可能な区間を表すトポロジセグメントです( 「セグメント」を参照)。

以下では、いくつかの例を使用して、ルーティングセグメントを回避する方法について説明します。

返されたルートのセグメントを回避します

span=segmentRef 指定したを使用してルートが計算された場合、返されたルート(図 1 の青い線)にはセグメントスパンのリストが含まれます。

セグメントを避けてください
図 1. セグメントを避けてください

次のコマンドを使用して、指定した起点と終点の間のセグメントスパンのリストを計算できます。

curl -X GET \
  'https://router.hereapi.com/v8/routes?origin=45.484661,9.228382&destination=45.485542,9.234576&return=polyline&spans=segmentRef&transportMode=car&apikey={YOUR_API_KEY}'

次のセグメントスパンのリストを返します。

{
  "routes": [
    {
      "sections": [
        {
          "type": "vehicle",
          "departure": {},
          "arrival": {},
          "polyline": "BG8vl42CwvqzR8D4X0FgoB8Lk1B0FwbqEoR",
          "refReplacements": {
            "0": "hrn:here:data::olp-here:rib-2:3217:",
            "1": "here:cm:segment"
          },
          "spans": [
            {
              "offset": 0,
              "segmentRef": "$0:377570872:$1:76764732#+0.6376674544619554..1"
            },
            {
              "offset": 1,
              "segmentRef": "$0:377570872:$1:89214839#+0..1"
            },
            {
              "offset": 2,
              "segmentRef": "$0:377570872:$1:95058600#+0..1"
            },
            {
              "offset": 3,
              "segmentRef": "$0:377570872:$1:82740696#+0..1"
            },
            {
              "offset": 4,
              "segmentRef": "$0:377570872:$1:96835127#+0..0.626940133196055"
            }
          ],
          "transport": {
            "mode": "car"
          }
        }
      ]
    }
  ]
}

オフセット 2 のセグメントには、refReplacement パラメーターを使用して here:cm:segment:95058600#+ に変換される segmentId および方向が $1:95058600#+ として指定されています。 このセグメントを両方向で回避する必要がある場合、ルートリクエストに avoid[segments]=here:cm:segment:95058600 は方向パートを含まないものを含める必要があります。

注 : refReplacement を使用した完全な HERE リソースネーム の構築の詳細について は、 Referencing HERE Map Content entities ページを参照してください。

curl -X GET \
  'https://router.hereapi.com/v8/routes?origin=45.484785,9.229564&destination=45.485299,9.232146&avoid[segments]=here:cm:segment:95058600&return=polyline&spans=segmentRef&transportMode=car&departureTime=any&apikey={YOUR_API_KEY}'

回避策を指定して返されたルート ( 図 1 の紫色の線 ) は、回避されたセグメントを中心に移動します。

ヒント : 1 つ以上のセグメントにまたがる小さなルートを計算すると、ルートの一部である場合に、これらのセグメントの ID とその方向を学習できます。

マップの特定の方向へのセグメントの配置は避けてください

東から西へなど、特定の道路を特定の方向に移動しないようにする場合を想定します ( 図 2 を参照 ) 。

ルートの方向にセグメントを配置しないでください
図 2. ルートの方向にセグメントを配置しないでください

このセグメントをマップから取得すると ( セグメントを参照) 、ユーザーはセグメント ID 、ジオメトリ、開始ノード、終了ノードを取得します。

{
  "identifier": "here:cm:segment:95058600",
  "geometry": [
    {
      "latitude": 45.48495,
      "longitude": 9.23058,
      "z_level": 0,
      "elevation": 0
    },
    {
      "latitude": 45.48514,
      "longitude": 9.23143,
      "z_level": 0,
      "elevation": 0
    }
  ],
  "length": 69.72647,
  "startNode": {
    "identifier": "here:cm:node:66488603",
    "geometry": {
      "latitude": 45.48495,
      "longitude": 9.23058,
      "z_level": 0,
      "elevation": 0
    }
  },
  "endNode": {
    "identifier": "here:cm:node:66488604",
    "geometry": {
      "latitude": 45.48514,
      "longitude": 9.23143,
      "z_level": 0,
      "elevation": 0
    }
  }
}

セグメントの正の方向は、開始ノードから終了ノードに移動することに対応します。 開始ノードの経度 は終了ノードよりも小さいため、正の方向はウェストからイーストへの移動に対応します。 この区間を東西に移動しないようにするには、この区間を負の方向に移動しないでください avoid[segments]=here:cm:segment:95058600#-

curl -X GET \
  'https://router.hereapi.com/v8/routes?origin=45.485299,9.232146&destination=45.484785,9.229564&avoid[segments]=here:cm:segment:95058600#-&return=polyline&spans=segmentRef&transportMode=car&departureTime=any&apikey={YOUR_API_KEY}'

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

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