ルーティングゾーンを回避します

ルーティングゾーンは、同じ規制を共有する道路のグループです。 現在、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 つの方法があります。

  1. カテゴリごとにゾーンを回避します
  2. ID でゾーンを回避します
  3. 特定の ID を除き、カテゴリごとにゾーンを避けてください

以下では、いくつかの例での使用方法について説明します。

応答メッセージのルーティングゾーン

詳細にジャンプする前に、応答メッセージのルーティングゾーンを確認してみましょう。 これは、回避のためにゾーン 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 の項に従って $1here:cm:envzone に置き換えると、ゾーン ID here:cm:envzone:2 が取得されます。 同様 here:cm:envzone:262here: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 UMWELTZONEID は、ベルリンの中心部を占める「」を参照するもので、このゾーンを回避することで、この場合の環境ゾーンを効果的に回避できます。

ID の取得方法を示すリクエストについて は、「ルーティングゾーン ID を取得する」を参照してください。

ゾーンの ID を使用しないでください

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

ルーティングゾーン 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 の項に従って $1here:cm:envzone に置き換えると、ゾーン ID here:cm:envzone:2 が取得されます。 同様 here:cm:envzone:262here: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

ID 以外の環境ゾーンは使用しないでください
図 2. id 以外の環境ゾーンを避ける

上の図の青い線は、回避オプションを使用して例外的にライプジェー通りを通過するルートを示しています。薄い青のルートは例外なく計画されています。

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

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