ルーティングゾーンを回避します ルーティングゾーンは、同じ規制を共有する道路のグループです。 現在、vignette
およびcongestionPricing
environmental
の 3 つのゾーンカテゴリがサポート されています(詳細については、 API リファレンス を参照してください)。 x ヨーロッパの一部の国ではvignette
道路が利用されています。 システムは、一定期間の支払い (1 年など ) に基づいて動作します。 出張者は、時折横断する場合の年間コストを節約するために、このような道路を避けたいと思う場合があります。 congestionPricing
ゾーンは、通常は市内の中心部、空港、橋、またはその他の混雑したエリアにある道路で構成される経路指定ゾーンの別のカテゴリです。 ラッシュアワーの時間帯に高い価格を課金することで、交通渋滞を緩和するために使用されます。 environmental
一方、ゾーンは、特定の汚染基準の下にある車両を侵入から除外することで、都市部の大気質を改善するように設計されています。
各カテゴリには複数のインスタンスがあります。 たとえば、ドイツのほとんどの都市には独自の環境ゾーンがあります。 各ゾーンインスタンスには、それぞれ識別する一意の ID があります。
さまざまなルーティングゾーンに関する情報は、 platform.here.com の各カタログから取得されます。 たとえば、環境ゾーンの場合は https://platform.here.com/data/hrn:here:data::olp-here:rib-2/environmental-zones/overview と入力します。 プラットフォームカタログへのアクセス権がない場合は、ルーティングレスポンスを使用してこの情報を取得できます。
ルートは、ゾーンの特定のカテゴリまたはゾーンの特定のインスタンスを回避するように計画できます。 特に、 API を使用するには、次の 3 つの方法があります。
カテゴリごとにゾーンを回避します ID でゾーンを回避します 特定の ID を除き、カテゴリごとにゾーンを避けてください 以下では、いくつかの例での使用方法について説明します。
ルーティングゾーンの情報は、マップ属性 API V8 から要求できます。 マップ属性 API V8 HERE にリクエストを送信する方法についての情報を取得 できます。
応答メッセージのルーティングゾーン 詳細にジャンプする前に、応答メッセージのルーティングゾーンを確認してみましょう。 これは、回避のためにゾーン ID を取得する方法の 1 つでもあります。
ルートが複数のルーティングゾーンを通過する場合、return
オプションでパラメータ routingZones
が渡されていれば、関連するルーティングゾーンを応答メッセージの routingZones
セクションで見つけることができます。 例 : 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
が取得されます。 同様 here:cm:envzone:262
here:cm:envzone:267
に、ゾーンの REST の ID は、およびとして取得できます。 これらの ID を持つゾーンを回避する方法については、このページで後述します。
また、オプションを使用 span=routingZones
して、ルートに沿ったゾーンの場所を抽出できます。 情報は、例えば、ルーティングゾーンを高輝度表示してルートポリラインを表示するために使用できます。
カテゴリごとにゾーンを回避します 場合によっては、ユーザーがゾーンのカテゴリ全体を回避することがあります。 これは avoid[zoneCategories]
オプションで行うことができます。 たとえば、次のコマンドを使用すると、タイプのすべてのゾーンを回避して、ベルリンの環境ゾーンを回避 environmental
できます。
curl -X 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}'
図 1. 環境ゾーンを避ける 上の図の青い線は、すべての環境ゾーンを回避するルートを示しています。 これとは対照的に、淡いブルーの線は、回避せずに市内を通過するルートを示しています。
注 回避オプションをに置き換える avoid[zoneIdentifiers]=here:cm:envzone:2
ことができます。 here:cm:envzone:2
BERLIN UMWELTZONE
ID は、ベルリンの中心部を占める「」を参照するもので、このゾーンを回避することで、この場合の環境ゾーンを効果的に回避できます。
ID の取得方法を示すリクエストについて は、「ルーティングゾーン ID を取得する 」を参照してください。
ゾーンの ID を使用しないでください 上記の例では、回避オプションをに置き換える avoid[zoneIdentifiers]=here:cm:envzone:2
ことができます。 here:cm:envzone:2
BERLIN UMWELTZONE
ID は、ベルリンの中心部を占める「」を参照するもので、このゾーンを回避することで、この場合の環境ゾーンを効果的に回避できます。
ルーティングゾーン ID を取得します 回避するゾーン ID を取得する 1 つの方法は routingZone
、応答メッセージのブロックから取得することです。
ルートが複数のルーティングゾーンを通過する場合 、return
オプションでパラメータroutingZones
を指定していれば、return=travelSummary,summary,polyline,routingZones
応答メッセージの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
が取得されます。 同様 here:cm:envzone:262
here:cm:envzone:267
に、ゾーンの REST の ID は、およびとして取得できます。 これらの ID を持つゾーンを回避する方法については、このページで後述します。
また、オプションを使用 span=routingZones
して、ルートに沿ったゾーンの場所を抽出できます。 情報は、例えば、ルーティングゾーンを高輝度表示してルートポリラインを表示するために使用できます。
例外があるゾーンカテゴリは避けてください カテゴリ内の一部のゾーンへのアクセス権が付与されているものの、すべてのゾーンへのアクセス権が付与されていない場合は、一部の例外を除き、ゾーンカテゴリを回避してルートを計画できます。
たとえば、ベルリンの乗用車を含むディーゼル車の運転禁止が、数通りあるとします。 たとえば、ディーゼル車の所有者が、ディーゼル車の運転禁止リストに記載されているライプジェーシュトラーセなど、該当する地域の 1 つに居住しているとします。 DIESELFAHRVERBOT
このドライバーへのルートは、ライプジェーシュトラーセを除く他のすべてのゾーンを避ける必要があります。 これを行うには、BERLIN UMWELTZONE
および LEIPZIGER STRASSE DIESELFAHRVERBOT
を除くすべての環境ゾーンを回避します。
この場合の回避オプションはです avoid[zoneCategories]=environmental;exceptZoneIds=here:cm:envzone:2,here:cm:envzone:261
。
図 2. id 以外の環境ゾーンを避ける 上の図の青い線は、回避オプションを使用して例外的にライプジェー通りを通過するルートを示しています。薄い青のルートは例外なく計画されています。