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

ルーティングゾーンの使用方法

ルート検索ゾーンは同じ規制を共有する道路のグループです。現在、vignettecongestionPricingenvironmentalと呼ばれる3つのゾーンカテゴリーがサポートされています (詳細については、「APIリファレンス」の「avoid」オプションの「zoneCategories」を参照してください)。 vignette道路はヨーロッパの一部の国で使用されています。 このシステムは一定期間 (1年間など) の支払いに基づいて機能します。 移動者は、時々しか通らない道路にかかる年間コストを節約するために、これらの道路を避けたいと考える可能性があります。 congestionPricingゾーンもルート検索ゾーンのカテゴリーの1つで、通常は市内中心部、空港、橋、またはその他の混雑したエリアの道路で構成されます。 ラッシュアワーに高い料金を請求して交通渋滞を緩和するために使用されます 一方のenvironmentalゾーンは、一定の汚染基準に満たない車両が市街地に入らないようにし、市街地の大気の質を改善することを目的としています。

各カテゴリーには複数のインスタンスがあります。 たとえば、ドイツのほとんどの都市には独自の環境ゾーンがあります。 各ゾーン インスタンスには、それぞれを識別する一意の ID があります。

さまざまなルート検索ゾーンに関する情報はplatform.here.comの各カタログから取得できます。 たとえば、環境ゾーンはこのカタログで利用できます。 プラットフォームカタログにアクセスできない場合は、ルート検索レスポンスを使用してこの情報を取得できます。

ルートは、ゾーンの特定カテゴリーまたはゾーンの特定インスタンスを避けて計画できます。 具体的には次の3つの方法でAPIを使用します。

  1. ゾーンをカテゴリー別に回避する
  2. ゾーンをID別に回避する
  3. 特定のIDを除き、ゾーンをカテゴリー別に回避する

以降で、これらの使用方法をいくつかの例とともに説明します。

ルート検索ゾーンに関する情報を取得する

ルート検索ゾーンに関する情報はMap Attributes API v8からリクエストできます。詳細については、「HERE Map Attributes API v8開発者ガイド」を参照してください。

レスポンスメッセージ内のルート検索ゾーン

詳細を確認する前に、応答メッセージ内のルート検索ゾーンを見てみましょう。 これは回避設定用にゾーン ID を取得できる 1 つの方法でもあります。

ルートが複数のルート検索ゾーンを通過する場合、該当するルート検索ゾーンは応答メッセージの routingZones セクションで確認できます。ただし、パラメーター routingZonesreturn オプションで渡されていることを条件とします。 (return=travelSummary,summary,polyline,routingZonesなど)。

ベルリンを通過するルート内のroutingZonesセクションの1つの例は次のようになります。

"routingZones": [
  {
    "name": "BERLIN UMWELTZONE",
    "type": "environmental",
    "ref": "$0:all:$1:2"
  },
  {
    "name": "BRÜCKENSTRASSE DIESELFAHRVERBOT",
    "type": "environmental",
    "ref": "$0:all:$1:262"
  },
  {
    "name": "HERMANNSTRASSE DIESELFAHRVERBOT",
    "type": "environmental",
    "ref": "$0:all:$1:267"
  }
]

レスポンスメッセージでは、ゾーンのnameフィールドとtypeフィールドを取得できます。 ルート検索ゾーンのtypeはそのカテゴリーであり、前のコードブロックで明記されています。 refフィールドはゾーンのIDを圧縮した形式です。 これは refReplacements セクションと併せて解釈できます。このセクションは同じ応答メッセージに含まれます。

"refReplacements": {
  "0": "hrn:here:data::olp-here:rib-2:2673:environmental-zones",
  "1": "here:cm:envzone"
}

たとえば、応答内の最初のルート検索ゾーンの ID を調べるには、ref フィールド "ref": "$0:all:$1:2" の最後の部分、つまり $1:2" を確認します。 refReplacements セクションに従って $1here:cm:envzone に置き換えると、ゾーン ID here:cm:envzone:2 が取得されます。 同様に、残りのゾーンの ID を here:cm:envzone:262 および here:cm:envzone:267 として取得できます。 これらの ID を持つゾーンの回避については、このページの後半で説明します。

さらに、ルート沿いのゾーンの位置情報をオプション span=routingZones を使用して抽出できます。 この情報を使用して、たとえば、ルート検索ゾーンを強調表示したルート ポリラインを視覚化できます。

ゾーンをカテゴリー別に回避する

ユーザーがゾーンの特定カテゴリー全体を回避することが必要な場合があります。これは avoid[zoneCategories] オプションを使用して実行できます。 たとえば、次のコマンドを使用すると、environmental タイプのすべてのゾーンを回避することでベルリンの環境ゾーンを回避できます。

curl -gX GET 'https://router.hereapi.com/v8/routes?'\
'destination=52.451857,13.41379&'\
'origin=52.565889,13.417365&'\
'transportMode=car&'\
'avoid[zoneCategories]=environmental&'\
'apiKey=YOUR_API_KEY'
環境ゾーンを回避する

画像の青いラインは、すべての環境ゾーンを回避するルートを示しています。 これに対して、薄い青色のラインは、回避設定なしで市内を通過するルートを示しています。

ゾーンをID別に回避する

上記の例で、回避オプションをavoid[zoneIdentifiers]=here:cm:envzone:2に置き換えることができます。here:cm:envzone:2は「BERLIN UMWELTZONE」を参照するIDです。これはベルリンの中心エリアの大部分を占めているため、この場合にこのゾーンを回避すると環境ゾーンを効果的に回避できます。

ルート検索ゾーンIDを取得する

回避設定用にゾーン ID を取得できる 1 つの方法は、応答メッセージの routingZone ブロックからゾーン ID を取得することです。

ルートが複数のルート検索ゾーンを通過する場合、該当するルート検索ゾーンを応答メッセージの routingZones セクションで確認できます。ただし、パラメーター routingZonesreturn オプションで指定されていることが条件です (return=travelSummary,summary,polyline,routingZones など)。

このリクエストでは、ベルリンを通過するルート内の routingZones セクションを次のように指定しています。

"routingZones": [
  {
    "name": "BERLIN UMWELTZONE",
    "type": "environmental",
    "ref": "$0:all:$1:2"
  },
  {
    "name": "BRÜCKENSTRASSE DIESELFAHRVERBOT",
    "type": "environmental",
    "ref": "$0:all:$1:262"
  },
  {
    "name": "HERMANNSTRASSE DIESELFAHRVERBOT",
    "type": "environmental",
    "ref": "$0:all:$1:267"
  }
]

レスポンスメッセージでは、ゾーンのnameフィールドとtypeフィールドを取得できます。 ルート検索ゾーンのtypeはそのカテゴリーであり、前のコードブロックで明記されています。 refフィールドはゾーンのIDを圧縮した形式です。 これは refReplacements セクションと併せて解釈できます。このセクションは同じ応答メッセージに含まれます。

"refReplacements": {
  "0": "hrn:here:data::olp-here:rib-2:2673:environmental-zones",
  "1": "here:cm:envzone"
}

たとえば、応答内の最初のルート検索ゾーンの ID を調べるには、ref フィールド "ref": "$0:all:$1:2" の最後の部分、つまり $1:2" を確認します。 refReplacements セクションに従って $1here:cm:envzone に置き換えると、ゾーン ID here:cm:envzone:2 が取得されます。 同様に、残りのゾーンの ID を here:cm:envzone:262 および here:cm:envzone:267 として取得できます。 これらの ID を持つゾーンの回避については、このページの後半で説明します。

さらに、ルート沿いのゾーンの位置情報をオプション span=routingZones を使用して抽出できます。 この情報を使用して、たとえば、ルート検索ゾーンを強調表示したルート ポリラインを視覚化できます。

例外を使用してゾーン カテゴリーを回避する

カテゴリー内の一部のゾーンにはアクセスできるもののすべてのゾーンにはアクセスできない場合、いくつかの例外があるゾーン カテゴリーの回避設定を使用してルートを計画できます。

たとえば、ベルリンの一部の道路では自動車を含むディーゼル車の運転が禁止されています。 ディーゼル車の所有者が、その影響を受けるエリアの 1 つ (ディーゼル運転禁止リストに掲載されている Leipzigerstraße など) の居住者であるとします。 このドライバーのルートは、Leipzigerstraße を除く他のすべての DIESELFAHRVERBOT ゾーンを回避する必要があります。 これは BERLIN UMWELTZONELEIPZIGER STRASSE DIESELFAHRVERBOT を除くすべての環境ゾーンを回避することで実行できます。

この場合の回避オプションは avoid[zoneCategories]=environmental;exceptZoneIds=here:cm:envzone:2,here:cm:envzone:261 です。

例外IDを使用して環境ゾーンを回避する

画像の青いラインは例外のある回避オプションを使用してLeipzigerstraßeを通過するルートを示しています。一方、薄い青色のルートは例外なしで計画されています。