ルーティングゾーンの使用方法
ルート検索ゾーンは同じ規制を共有する道路のグループです。現在、vignette、congestionPricing、environmentalと呼ばれる3つのゾーンカテゴリーがサポートされています (詳細については、「APIリファレンス」の「avoid」オプションの「zoneCategories」を参照してください)。
vignette道路はヨーロッパの一部の国で使用されています。
このシステムは一定期間 (1年間など) の支払いに基づいて機能します。
移動者は、時々しか通らない道路にかかる年間コストを節約するために、これらの道路を避けたいと考える可能性があります。
congestionPricingゾーンもルート検索ゾーンのカテゴリーの1つで、通常は市内中心部、空港、橋、またはその他の混雑したエリアの道路で構成されます。
ラッシュアワーに高い料金を請求して交通渋滞を緩和するために使用されます
一方のenvironmentalゾーンは、一定の汚染基準に満たない車両が市街地に入らないようにし、市街地の大気の質を改善することを目的としています。
各カテゴリーには複数のインスタンスがあります。 たとえば、ドイツのほとんどの都市には独自の環境ゾーンがあります。 各ゾーン インスタンスには、それぞれを識別する一意の ID があります。
さまざまなルート検索ゾーンに関する情報はplatform.here.comの各カタログから取得できます。 たとえば、環境ゾーンはこのカタログで利用できます。 プラットフォームカタログにアクセスできない場合は、ルート検索レスポンスを使用してこの情報を取得できます。
ルートは、ゾーンの特定カテゴリーまたはゾーンの特定インスタンスを避けて計画できます。 具体的には次の3つの方法でAPIを使用します。
- ゾーンをカテゴリー別に回避する
- ゾーンをID別に回避する
- 特定のIDを除き、ゾーンをカテゴリー別に回避する
以降で、これらの使用方法をいくつかの例とともに説明します。
ルート検索ゾーンに関する情報を取得する
ルート検索ゾーンに関する情報はMap Attributes API v8からリクエストできます。詳細については、「HERE Map Attributes API v8開発者ガイド」を参照してください。
レスポンスメッセージ内のルート検索ゾーン
詳細を確認する前に、応答メッセージ内のルート検索ゾーンを見てみましょう。 これは回避設定用にゾーン ID を取得できる 1 つの方法でもあります。
ルートが複数のルート検索ゾーンを通過する場合、該当するルート検索ゾーンは応答メッセージの routingZones セクションで確認できます。ただし、パラメーター routingZones が return オプションで渡されていることを条件とします。
(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 セクションに従って $1 を here: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 セクションで確認できます。ただし、パラメーター routingZones が return オプションで指定されていることが条件です (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 セクションに従って $1 を here: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 UMWELTZONE と LEIPZIGER STRASSE DIESELFAHRVERBOT を除くすべての環境ゾーンを回避することで実行できます。
この場合の回避オプションは avoid[zoneCategories]=environmental;exceptZoneIds=here:cm:envzone:2,here:cm:envzone:261 です。
画像の青いラインは例外のある回避オプションを使用してLeipzigerstraßeを通過するルートを示しています。一方、薄い青色のルートは例外なしで計画されています。
25 日前の更新