自動車のルート検索で「道路を指定」する方法について

NAVITIME APIの自動車ルート検索API(/route_car)に追加された「利用したい道路/利用したくない道路」を指定するパラメータをご紹介します。
このパラメータを使うとどのようなルートが得られるのか、具体的な利用方法を交えてご説明いたしますので、ぜひ最後までご覧ください。

ルート検索でなぜ「道路を指定する」必要があるのか

そもそもルート検索APIとは、

  • 指定された検索条件(最短や最安など)

  • 道路ネットワークデータの収録状況

  • ルート検索日時の道路状況

などの多くの要素を総合的に勘案した中から、最も条件に合致するルートを結果として返すAPIです。

ナビタイムでは創業以来「検索条件を満たす”最適な”ルート」を算出するロジックの研究開発を続けています。 その成果もあり、ナビタイムのルート検索APIで得られるルート結果は、非常に正確で高品質であると高く評価されており、多くの業務用途で活用されています。

一方で、検索条件を満たすルートが必ずしもお客様の期待ルートとならないこともあります。
例えば、

  • 業務上の理由で、決まった道路を通らなくてはならない or 通ってはいけない、ので道路を指定したい

  • タクシー利用のお客様に「〇〇通りを通って△△駅まで行ってください」と言われたのにそのルートがカーナビで出なくて困ったことがある

などのご意見をいただくこともあります。

そこで、ルート検索APIに「利用したい道路/利用したくない道路」を「道路ID」で指定するパラメータを追加しました。

多くのドライバーさんたちが慣れ親しんでいる「国道〇号線」や「〇〇通り」に道路IDを付与し、 そのIDをルート検索APIのパラメータに指定することで、ルート検索APIの結果をユーザーの期待ルートにより簡単に近づける仕組みです。

もちろん指定内容によっては遠回りなルートや、明らかに非効率なルートとなることもありますが、 「お客様の期待ルート」に結果を近づけることでお客様の満足度が一層向上すると考えています。

下図は、タクシー利用の乗客から「東京駅から信濃町駅まで、靖国通りを通って行ってください」と言われたケースでのルート例です。

tips_ルート検索で道路を指定する方法

▲道路を指定した場合としない場合でのルート差

実際に、道路を指定してルート検索APIを実行するには?

ルート検索APIで「use_road(利用したい道路)」を指定すると、その道路を利用するルートを優先して検索します。 逆に「unuse_road(利用したくない道路)」を指定すると、その道路を利用しないルートを優先して検索します。

では、例として上でお見せしたルートをどのように求めるのかをご説明します。

まず、「利用したい道路」の道路IDを求めます。道路IDを取得するには「道路検索API(/road)」を使いましょう。 道路検索APIでは、道路名称やその道路が通過する市区町村を指定して道路IDを検索できます。
レスポンスのitems.idに出力されているものが道路IDです。

・例:「靖国通り」を名称で検索して道路ID「17909」を取得

・リクエスト例

/road?word=靖国通り

レスポンス例

"items": [
    {
        "id": "17909",
        "name": "靖国通り",
        "ruby": "ヤスクニドオリ",
        "types": [
            "local"
        ],
        "address_codes": [
            "13101"
            "13102"
            "13104"
        ],
        "toll_types": [
            "free"
        ]
    }
・・・

次に、ルート検索APIの実行に必要な「出発地/目的地」を設定します。 今回の説明では、ナビタイムの「駅・バス停名検索API(/transport_node)」を使って求めた駅IDを用いて出発地と目的地を設定しています(駅IDを求める方法の説明は割愛します)。

そして、ルート検索APIで新しく追加された「利用したい道路(use_road)」パラメータに、靖国通りを示す道路ID「17909」を指定します。

・例:「東京駅」から「信濃町駅」まで「靖国通り」を通るルートを取得

・リクエスト例

/route_car?start=00006668&goal=00004151&use_road=17909

道路を指定した場合のレスポンス例

"move": {
    "type": "move",
    "from_time": "2021-08-12T10:00:00+09:00",
    "to_time": "2021-08-12T10:25:03+09:00",
    "time": 25,
    "distance": 7667
    ・・・・
}

ルート結果は、所要時間:25分 走行距離:7667mとなりました。

道路を指定しなかった場合のレスポンス例

"move": {
    "type": "move",
    "from_time": "2021-08-12T10:30:00+09:00",
    "to_time": "2021-08-12T10:52:48+09:00",
    "time": 22,
    "distance": 7170
    ・・・・
}

一方「利用したい道路」パラメータを付与しない場合のルート結果は、所要時間:22分 走行距離:7170mとなりました。

【補足】この機能の制限事項について

  1. 利用したい道路/利用したくない道路」パラメータを指定していても、ルート検索算出処理での様々なファクターにより、 指定した道路が考慮されない場合があります。
    例えば「利用したくない道路」として指定した道路が出発地・目的地と重なっている場合は、 やむを得ずその道路を利用するルートとなります。

  2. 道路検索APIでは日本全国の主要な道路を検索対象としていますが、検索データに収録されておらずヒットしない道路があります。 検索でヒットしない道路は「利用したい道路/利用したくない道路」パラメータに指定することができません。
    また、一般的に用いられている道路通称が検索でヒットしないケースがあります。(例:水戸街道、鎌倉街道など)

まとめ

「利用したい道路/利用したくない道路」パラメータの利用方法についてご紹介いたしました。
すでにNAVITIME API 2.0をご利用中のお客様であれば、追加の契約など不要で本検索がご利用いただけます。
是非サービスでの活用をご検討ください。