A.実施形態:
A−1.システムの概略構成:
図1は、本発明の一実施形態としてのナビゲーションシステムの概略構成を示す図である。ナビゲーションシステム1は、利用者に対して、出発地から目的地までの経路を案内するシステムである。本実施形態のナビゲーションシステム1は、後述の案内制御処理によって、出発地から目的地までの経路に加えて、経路中の曲がり角の案内をすることができる。以降では、利用者が徒歩で移動する場合の徒歩経路の案内を例示するが、利用者が自動車で移動する場合の自動車経路の案内についても同様に構成できる。また、徒歩経路に公共交通機関(電車、空港、船、高速バス等)を利用する場合の公共交通機関経路を組み合わせてもよい。
ナビゲーションシステム1は、「経路案内装置」として機能するサーバ10と、「経路探索装置」として機能するサーバ20と、「クライアント装置」として機能するスマートフォン30と、を備えている。サーバ10とサーバ20とは、有線通信によってインターネットINTに接続されている。スマートフォン30は、通信キャリアBSを介した無線通信によってインターネットINTに接続されている。通信キャリアBSには、送受信アンテナや、無線基地局、交換局が含まれる。すなわち、サーバ10とサーバ20とスマートフォン30とは、インターネットINTを介して相互に通信することができる。
A−1−1.経路案内装置(サーバ10):
サーバ10は、CPU110と、通信部120と、ROM/RAM130と、記憶部140と、を備えており、各部は図示しないバスにより相互に接続されている。
CPU110は、ROMに格納されているコンピュータプログラムをRAMに展開して実行することにより、サーバ10の各部を制御する。そのほか、CPU110は、取得部112、案内制御部114、施設情報取得部116としても機能する。取得部112と案内制御部114と施設情報取得部116とは協働して、後述の案内制御処理を実行する。サーバ10は、案内制御処理を実行することによって、利用者が指定した出発地から目的地までの経路の情報と、当該経路中の曲がり角周辺の施設の情報と、をスマートフォン30に案内させることができる。
通信部120は、他の装置との間における、図示しない通信インターフェースを介した通信を制御する。他の装置には、サーバ20やスマートフォン30、図示しない他のサーバ等が含まれる。
記憶部140は、ハードディスク、フラッシュメモリ、メモリカードなどで構成される。以降の説明では、データベースを単に「DB」とも呼ぶ。記憶部140は、地図情報DB141を含んでいる。地図情報DB141は、地図画像を表すデータを格納するデータベースである。地図画像を表すデータには、地形、建物、道路の形状等、地図表示のために必要な情報が含まれている。地図情報DB141は予め整備されて記憶部140に記憶されている。
A−1−2.経路探索装置(サーバ20):
図1のサーバ20は、CPU210と、通信部220と、ROM/RAM230と、記憶部240と、を備えており、各部は図示しないバスにより相互に接続されている。
CPU210は、ROMに格納されているコンピュータプログラムをRAMに展開して実行することによりサーバ20の各部を制御するほか、探索部212として機能する。探索部212は、サーバ10からの要求に基づき、出発地から目的地までの経路を探索する。この「経路」には、徒歩経路と自動車経路とが含まれうる。具体的には、探索部212は、経路情報DB243に記憶されたネットワークデータを用いて、例えば周知のダイクストラ法に基づいて経路を探索する。探索部212は、このようにして得られた経路の情報を、サーバ10へと送信する。なお、サーバ20には、図示しない路線情報DB(鉄道ネットワークデータが格納されたデータベース)が記憶されていてもよく、探索部212は、前述の徒歩経路や自動車経路と組み合わせて、路線情報DBを利用した公共交通機関経路を探索してもよい。
通信部220は、サーバ10など他の装置との間における、図示しない通信インターフェースを介した通信を制御する。
記憶部240は、ハードディスク、フラッシュメモリ、メモリカードなどで構成される。記憶部240は、地図情報DB241と、経路情報DB243と、施設情報DB245と、を含んでいる。地図情報DB241は、地図画像を表すデータが格納されたデータベースである。地図画像を表すデータには、地形、建物、道路の形状等、地図表示のために必要な情報が含まれている。本実施形態では、サーバ10にも同様のデータを保持しているため、サーバ20の地図情報DB241は省略可能である。
経路情報DB243は、道路ネットワークデータが格納されたデータベースである。道路ネットワークデータには、ノードと、ノード間をつなぐリンクと、が含まれる。各リンクには、そのリンクが表す道路の平均移動時間(旅行時間)が、移動手段(徒歩、車、バス等)毎に、リンクコストとして対応付けられている。道路ネットワークデータは、探索部212が、道路上の経路を探索するために用いられる。
図2は、施設情報DB245の一例を示す図である。施設情報DB245は、施設に関する施設情報を格納するテーブルである。施設IDには、施設情報DB245に記憶されている各施設を識別するためのIDが格納されている。施設名称には、各施設を識別するための名称が格納されている。施設ポリゴンには、施設の位置および範囲といった、施設の外形を表すポリゴンデータが格納されている。図2の例では、ポリゴンデータを図形によって表現している。しかし、ポリゴンデータは実際には、例えば複数の緯度経度の組み合わせ(点列)の形式で格納されている。
施設アイコンには、地図画像上において当該施設に付されるアイコンの画像データが格納されている。図2の例では、施設アイコンを持つエントリと、施設アイコンを持たないエントリとが混在している。緯度経度には、施設の位置を表す位置情報としての、緯度および経度が格納されている。緯度経度には、例えば施設の代表点の緯度経度を利用できる。住所には、施設の住所を表す文字列が格納されている。ジャンルには、施設の種類が格納されている。メッシュ番号には、サーバ10の地図情報DB141や、サーバ20の地図情報DB241に格納されている地図上において、当該施設がどのメッシュ番号に位置するかを識別するための識別子が格納されている。
図3は、メッシュ番号について説明する図である。図3は、サーバ10の地図情報DB141や、サーバ20の地図情報DB241に格納されている地図画像データDataの一例を示している。この地図画像データDataは、予め、一定の間隔(例えば、1度毎の経線と、2/3度毎の緯線)で分割されており、分割された範囲を「メッシュ」と呼ぶ。各メッシュには、一意に識別可能な番号が予め付されており、これをメッシュ番号と呼ぶ。図3では、メッシュ番号「M8」で識別される1つのメッシュに、斜線のハッチングを付している。
図2に戻り、例えば、エントリE1の例では、施設ID「1」の施設は、ジャンルが「ホテル」の「Aホテル」であること、施設ポリゴン、「Aホテル」の緯度経度は「XX/YY]であり、住所は「XX町1丁目20」であり、地図画像データDataにおいてメッシュ番号「M10」に位置する施設であること、を示している。なお、図2以降の図において緯度経度の「XX」は任意の緯度、緯度経度の「YY」は任意の経度、その他の項目の「X」は任意の文字列を表す。
A−1−3.クライアント装置(スマートフォン30):
スマートフォン30は、CPU310と、通信部320と、ROM/RAM330と、記憶部340と、入出力部350と、現在位置取得部360と、を備えており、各部は図示しないバスにより相互に接続されている。
CPU310は、ROMに格納されているコンピュータプログラムをRAMに展開して実行することによりスマートフォン30の各部を制御するほか、案内部312として機能する。案内部312は、スマートフォン30の利用者(すなわち、サーバ10の利用者)に対して、経路の情報と、当該経路中の曲がり角周辺の施設の情報と、を案内する。具体的には、例えば、案内部312は以下の手順a1〜a3を実行する。
(a1)案内部312は、利用者から、入出力部350を介して「出発地」および「目的地」の指定を取得する。なお、現在位置取得部360によって取得された現在位置を以て、出発地の取得は省略してもよい。案内部312は、経路の探索のための他の条件(例えば、経由地、移動手段の指定、表示順序等)を取得してもよい。
(a2)案内部312は、サーバ10に対して、取得した各情報を含んだ経路探索要求を送信する。この後、サーバ10において後述の案内制御処理が実行される。
(a3)案内部312は、サーバ10から、表示用情報等の案内用情報を取得する。この表示用情報には、経路の情報と、当該経路中の曲がり角周辺の施設の情報と、が含まれている。案内部312は、表示用情報を入出力部350に表示させる。なお、案内部312は、案内用情報に含まれる、表示用情報の内容を表す音声データに基づく音声を、入出力部350から出力してもよい。また、案内部312は、表示用情報等の案内用情報を記憶部340に記憶させてもよい。
通信部320は、サーバ10など他の装置との間における、図示しない通信インターフェースを介した通信を制御する。記憶部340は、ハードディスク、フラッシュメモリ、メモリカードなどで構成される。入出力部350は、スマートフォン30と利用者との間の情報の入出力に使用される種々のインターフェースである。入出力部350としては、例えば、入力部としてのタッチパネル、操作ボタン、マイク、出力部としてのタッチパネル、液晶パネル、スピーカ、LED(Light Emitting Diode)インジケータ等を採用できる。現在位置取得部360は、GPS(Global Positioning System/全地球測位システム)を構成する人工衛星から送信された電波を受信し、スマートフォン30の現在位置を表す緯度および経度を取得する。
A−2.案内制御処理:
図4は、案内制御処理の手順を示すフローチャートである。案内制御処理は、利用者が指定した出発地から目的地までの経路の情報と、当該経路中の曲がり角周辺の施設の情報と、をスマートフォン30に案内させる処理である。案内制御処理は、スマートフォン30からの経路探索要求の取得をトリガとして開始される。
ステップS102において、サーバ10の案内制御部114は、経路探索要求に含まれる「出発地」の位置情報と、「目的地」の位置情報を取得する。
ステップS104において、サーバ10の取得部112は、サーバ20の探索部212に、出発地から目的地までの経路を探索させ、探索された経路(本実施形態の例では徒歩経路)を取得する。
ステップS106において、サーバ10の案内制御部114は、ステップS104で取得した経路中に曲がり角が含まれるか否かを判定する。具体的には、案内制御部114は、ステップS104で取得した経路中に含まれる各ノードおよび各リンクについて、曲がり角判定処理を行う。
A−2−1.曲がり角判定処理:
図5は、曲がり角判定処理の手順を示すフローチャートである。曲がり角判定処理では、1つのノードに隣接する複数のリンクの形状が、特定形状であるか否かを判定することによって、当該複数のリンクにより形成される経路が曲がり角であるか否かを判定する。具体的には、以下の判定を行う。
・1つのノードに隣接する複数のリンクの形状が特定形状に該当する場合は、当該複数のリンクより形成される経路は「曲がり角でない」と判定する。
・1つのノードに隣接する複数のリンクの形状が特定形状に該当しない場合は、当該複数のリンクにより形成される経路は「曲がり角である」と判定する。
本実施形態では、「特定形状」を、複数のリンクがノードを挟み形成する角度が所定角度以上であること、と定義する。
図6は、曲がり角判定処理について説明する図である。図6では、案内制御処理(図4)のステップS104において取得部112が取得した経路の一例を示している。この経路RTには、8つのノードN1〜N8と、各ノード間を結ぶリンクL1〜L7が含まれている。経路RTの出発地はノードN1、目的地はノードN8とする。
図5のステップS202において、サーバ10の案内制御部114は、経路RTの出発地に最も近いノードの両端にリンクがあるか否か判定する。ノードの両端にリンクがある場合(ステップS202:YES)、案内制御部114は処理をステップS210へ遷移させる。ノードの両端にリンクがない場合(ステップS202:NO)、案内制御部114は処理をステップS204へ遷移させる。
ステップS204において、サーバ10の案内制御部114は、曲がり角判定処理の処理対象ノードを、経路RTの進行方向側(すなわち、目的地に近い側)の次のノードへ遷移させる。その後、案内制御部114は処理をステップS202へ遷移させ、次のノードの両端にリンクがあるか否かを判定する。
例えば、図6の例では、出発地に最も近いノードN1は、一端にしかリンクがない(ステップS202:NO)。このため、案内制御部114は、経路RTの進行方向の次のノードN2に、処理対象ノードを遷移させる(ステップS204)。次のノードN2には、両端にリンクL1,L2がある(ステップS202:YES)。このため、案内制御部114は、ノードN2を処理対象ノードとする。
図5のステップS210において、サーバ10の案内制御部114は、処理対象ノードの両端にある各リンクの長さ(以降「リンク長」とも呼ぶ)が、それぞれ所定長以上であるか否かを判定する。所定長は任意に定めることができる。各リンクの長さがいずれも所定長以上である場合(ステップS210:YES)、案内制御部114は処理をステップS212へ遷移させる。いずれか一方のリンクの長さが所定長未満である場合(ステップS210:NO)、案内制御部114は処理をステップS214へ遷移させる。
ステップS212において、サーバ10の案内制御部114は、曲がり角の判定を行うリンクA,Bを、以下の各リンクとする。その後、案内制御部114は、処理をステップS220へ遷移させる。
・リンクA:処理対象ノードの一端側のリンク、
・リンクB:処理対象ノードの他端側のリンク。
ステップS214において、サーバ10の案内制御部114は、曲がり角の判定を行うリンクA,Bを、以下の各リンクとする。その後、案内制御部114は、処理をステップS216へ遷移させる。
・リンクA:ステップS210においてリンク長が所定長以上であったリンク、
・リンクB:リンクAの両端に位置するノードのうち、リンクAの進行方向側にあるノード(以降「進行方向側ノード」とも呼ぶ)の次の次のノードと、進行方向側ノードと、を結ぶ線分。
ステップS216において、サーバ10の案内制御部114は、曲がり角判定処理の処理対象ノードを、経路RTの進行方向側の次のノードへ遷移させる。その後、案内制御部114は処理をステップS220へ遷移させる。ステップS216は、ステップS214で飛ばしたノードと、処理対象ノードとを整合させることを目的とする。
ステップS220において、サーバ10の案内制御部114は、ステップS212を実行した場合は以下の手順b1を、ステップS214を実行した場合は以下の手順b2を、それぞれ判定する。
(b1)ステップS212において決定したリンクA,Bが、処理対象ノードを挟み形成する角度が所定角度以上であるか。
(b2)ステップS214において決定したリンクA,Bが、進行方向側ノードを挟み形成する角度が所定角度以上であるか。
手順b1,b2の所定角度は同じ値を採用できる。所定角度は任意に設定できるが、鈍角であることが好ましい。本実施形態では、所定角度を150度とする。
所定角度以上である場合(ステップS220:YES)、ステップS222において、サーバ10の案内制御部114は、リンクA,Bにより形成される経路は「曲がり角でない」と判定する。一方、所定角度未満である場合(ステップS220:NO)、ステップS224において案内制御部114は、リンクA,Bにより形成される経路は「曲がり角である」と判定する。ステップS222,S224終了後、案内制御部114は、処理をステップS204に遷移させ、経路RTの他のノード/リンクについても上述の処理を繰り返す。
例えば、図6の例において、処理対象ノードがノードN2である場合、リンクL1のリンク長と、リンクL2のリンク長とは、それぞれ所定長以上である(ステップS210:YES)。このため、案内制御部114は、リンクAをリンクL1とし、リンクBをリンクL2とする(ステップS212)。リンクL1,L2がノードN2を挟み形成する角度θ1は直角(90度)であり、所定角度未満である(ステップS220:NO)。このため、案内制御部114は、リンクL1,L2より形成される経路は「曲がり角」と判定する(ステップS224)。
一方、処理対象ノードがノードN3である場合、リンクL2のリンク長は所定長以上であるものの、リンクL3のリンク長が所定長未満である(ステップS210:NO)。このため、案内制御部114は、リンクAを所定長以上であるリンクL2とする(ステップS214)。また、案内制御部114は、リンクBを、リンクL2の進行方向側ノードであるノードN3の、次の次のノードであるノードN5と、進行方向側ノードN3と、を結ぶ線分VL1とする(ステップS214)。リンクL2,線分VL1が進行方向側ノードN3を挟み形成する角度θ2は鈍角(約160度)であり、所定角度以上である(ステップS220:YES)。このため、案内制御部114は、リンクL2,線分VL1より形成される経路は「曲がり角でない」と判定する(ステップS222)。
なお、処理対象ノードN3の処理では、リンクA,Bの決定後、処理対象ノードが次のノードN4に遷移される(ステップS216)。また、ステップS220〜S224の終了後、さらに処理対象ノードは次のノードN5に遷移される(ステップS204)。この結果、図6の例では、処理対象ノードN3の次の処理対象ノードは、ノードN4をスキップしてノードN5となる。このように処理対象ノードをスキップした場合、次のステップS202以降の処理において案内制御部114は、処理対象ノードN5の両端にある実際のリンクL4に代えて、ステップS214のリンクB(線分VL1)を使用して、曲がり角判定処理を行う。
処理対象ノードがノードN5である場合、線分VL1のリンク長は所定長以上であるものの、リンクL5のリンク長が所定長未満である(ステップS210:NO)。このため、案内制御部114は、新たなリンクAを所定長以上である線分VL1とする(ステップS214)。また、案内制御部114は、新たなリンクBを線分VL1の進行方向側ノードであるノードN5の、次の次のノードであるノードN7と、進行方向側ノードN5と、を結ぶ線分VL2とする(ステップS214)。線分VL1,VL2が進行方向側ノードN5を挟み形成する角度θ3は鈍角(約160度)であり、所定角度以上である(ステップS220:YES)。このため、案内制御部114は、線分VL1,VL2より形成される経路は「曲がり角でない」と判定する(ステップS222)。
案内制御部114は、経路RTの目的地であるノードN8まで、同様に処理を繰り返す。詳細は省略する。この結果、図6の経路RTの場合、リンクL1,L2により形成される経路のみが「曲がり角」と判定され、他の経路は「曲がり角でない」と判定される。
長いリンクの次に、極端に短いリンクが屈曲して続く経路の形状(例えば、図6のリンクL3〜L5で示す横断歩道)である場合、通常、利用者は、短いリンクを長いリンクの一部と理解し、「曲がり角ではない」と認識する。本実施形態の曲がり角判定処理(図5)によれば、案内制御部114は、処理対象ノードの両端にある(隣接する)一方のリンクのリンク長が所定長未満である場合(ステップS210:NO)、所定長未満のリンクと、次のノードとを無視する(図6:処理対象ノードN3,N5の場合)。そして、案内制御部114は、リンク長が所定長以上であるリンクと、当該リンクの進行方向側ノードの次の次のノードへ伸びる線分(図6:線分VL1,VL2)と、を利用して、所定角度以上であるか否かを判定する(図6:ステップS220、手順b2)。このため、本実施形態の曲がり角判定処理では、所定長を適切に定義することにより、案内制御部114は、短いリンクにより経路RTが屈曲している場所(図6:リンクL3〜L5)について、経路の大まかな形状によって曲がり角の有無を決めることができる。
A−2−2.曲がり角判定処理(他の例):
図7は、他の例における曲がり角判定処理の手順を示すフローチャートである。この曲がり角判定処理は、図5で説明した曲がり角判定処理と同様に、案内制御処理(図4)のサブルーチンとして実行される。案内制御部114は、図5の曲がり角判定処理に代えて、図7の曲がり角判定処理を利用してもよい。図7の例では、「特定形状」を、複数のリンクを形成する各リンクについて少なくとも一方の長さが所定長未満であること、または、複数のリンクがノードを挟み形成する角度が所定角度以上であること、と定義する。
ステップS202,S204は図5と同様である。ステップS502において、サーバ10の案内制御部114は、処理対象ノードの両端にある各リンクについて、リンク長が所定長未満のものがあるか否かを判定する。所定長は、任意に定めることができる。リンク長が所定長未満のものが1つでもある場合(ステップS502:YES)、案内制御部114は、処理対象ノードの両端にある各リンク、換言すれば、処理対象ノードを挟み隣接する各リンクにより形成される経路は「曲がり角でない」と判定し、処理をステップS204へ遷移させる(ステップS514)。一方、リンク長がいずれも所定長以上である場合(ステップS502:NO)、案内制御部114は、処理をステップS504へ遷移させる。
ステップS504において、サーバ10の案内制御部114は、処理対象ノードの両端にある各リンクが、処理対象ノードを挟み形成する角度が所定角度以上であるか否かを判定する。所定角度は任意に設定できるが、鈍角であることが好ましい。所定角度以上である場合(ステップS504:YES)、案内制御部114は、処理対象ノードの両端にある各リンク、換言すれば、処理対象ノードを挟み隣接する各リンクにより形成される経路は「曲がり角でない」と判定し、処理をステップS204へ遷移させる(ステップS514)。一方、所定角度未満である場合(ステップS504:NO)、案内制御部114は、処理対象ノードの両端にあるリンクにより形成される経路は「曲がり角」と判定し、処理をステップS204へ遷移させる(ステップS512)。
案内制御部114は、案内制御処理(図4)のステップS104で得られた経路の出発地から目的地まで、上記の処理を繰り返す。この結果、例えば、図6の経路RTの場合、処理対象ノードに隣接する各リンクが長く、かつ、直角に交わっているリンクL1,L2により形成される経路のみが「曲がり角」と判定され、他の経路は「曲がり角でない」と判定される。
途中で屈曲した経路の形状であっても、一方のリンクが極端に短い場合(例えば、図6のリンクL3〜L5)、通常、利用者はそこを「曲がり角ではない」と認識する。他の例として示した曲がり角判定処理(図7)によれば、案内制御部114は、所定長を適切に定義することにより、一方のリンクが極端に短い屈曲形状の経路、換言すれば、複数のリンクを形成する一方のリンクが短い場所において、曲がり角でないと判定することができる。
図4の案内制御処理に戻り、説明を続ける。ステップS106において、取得した経路中に曲がり角がないと判定した場合(ステップS106:NO)、サーバ10の案内制御部114は、処理をステップS120へ遷移させる。一方、取得した経路中に1つ以上曲がり角があると判定した場合(ステップS106:YES)、案内制御部114は、処理をステップS110へ遷移させる。
ステップS110において、サーバ10の施設情報取得部116は、曲がり角の情報を取得する。具体的には、施設情報取得部116は、ステップS104で取得された経路の情報から、ステップS106において「曲がり角」と判断されたノードおよびリンクの情報を取得する。施設情報取得部116は、例えば、ノードの緯度経度や、リンクの傾きを取得する。
ステップS112において、サーバ10の施設情報取得部116は、曲がり角の周辺に位置する施設(以降「周辺施設」とも呼ぶ)の情報を取得する。具体的には、施設情報取得部116は、サーバ20との間で、図8で説明する施設情報取得処理を実行する。
A−2−3.施設情報取得処理:
図8は、施設情報取得処理の手順を示すシーケンス図である。施設情報取得処理は、案内制御処理(図4)のサブルーチンとして実行される。ステップS302において、サーバ10の施設情報取得部116は、サーバ20に対して施設情報取得要求を送信する。施設情報取得要求には、情報の取得範囲を指定するためのメッシュ番号が含まれている。
図9は、施設情報取得処理におけるメッシュ番号の指定について説明する図である。図9では、複数のメッシュに区切られた地図画像データDataの上に、案内制御処理(図4)のステップS104で取得された経路RTを記載したものの一例を示している。図9の経路RTは、3つのノードN1〜N3と、4つのリンクL1〜L4を含んでいる。経路RTのうち、ノードN1に隣接するリンクL1,L2と、ノードN2に隣接するリンクL2,L3と、ノードN3に隣接するリンクL3,L4とは全て、曲がり角判定処理(図5または図7)において「曲がり角」と判定されたものとする。
施設情報取得部116は、以下の手順c1〜c4を実行することで、施設情報取得要求において指定するメッシュ番号を特定する。
(c1)施設情報取得部116は、曲がり角の中心となるノード(換言すれば、経路が屈曲する地点のノード)の緯度経度を中心として、所定形状のポリゴンを形成する。所定形状は任意に定めることができ、本実施形態では例えば、直径500mの正方形とする。このポリゴンは、ノードに隣接するいずれか一方のリンクの傾きに合わせた傾きとし、本実施形態では例えば、番号が若いリンクに合わせる。
(c2)施設情報取得部116は、手順c1で形成したポリゴンを覆い、かつ、地図画像データDataの各メッシュと並行な向きの矩形枠を形成する。
(c3)施設情報取得部116は、手順c2で形成した矩形枠に対して、少なくとも一部が重なるメッシュのメッシュ番号を求める。これは、周知の重なり判定等を利用して実施できる。
(c4)施設情報取得部116は、曲がり角判定処理(図5または図7)において「曲がり角」と判定された全てのノードとリンクとに対して、手順c1〜c4を実行する。得られたメッシュ番号から重複を除外し、施設情報取得要求において指定するメッシュ番号を得る。
例えば、図9の例では、施設情報取得部116は、ノードN1を中心としてリンクL1と同じ傾きのポリゴンP1を形成し(手順c1)、ポリゴンP1を覆いメッシュと並行な矩形枠B1を形成する(手順c2)。その後、施設情報取得部116は、矩形枠B1と重なるメッシュ番号M9,M10,M15,M16を求める(手順c3)。同様に、施設情報取得部116は、ノードN2を中心としてリンクL2と同じ傾きのポリゴンP2を形成する(手順c1)。ポリゴンP2は既にメッシュと並行であるため、矩形枠B2はポリゴンP2と同じになる(手順c2)。その後、施設情報取得部116は、矩形枠B2と重なるメッシュ番号M15,M21を求める(手順c3)。同様に、施設情報取得部116は、ノードN3を中心として手順c1〜c3を実行し、メッシュ番号M16,M17,M22,M23を求める。最後に、施設情報取得部116は、各手順c3で得られたメッシュ番号から重複を除外して、施設情報取得要求において指定するメッシュ番号M9,M10,M15,M16,M17,M21,M22,M23を得る。
このようにすれば、施設情報取得部116は、曲がり角の中心点、換言すれば、経路RTが屈曲する地点の各ノード(N1,N2,N3)を中心として配置された各ポリゴン(P1,P2,P3)を覆い、かつ、メッシュと平行な向きの矩形枠(B1,B2,B3)を用いて、施設の情報の取得範囲を拡げることができる。この結果、施設情報取得部116は、施設情報取得処理(図8)において、実際には経路RTの曲がり角の周辺に位置する施設であるにもかかわらず当該施設の情報が取得されない、という事象の発生を抑制し、経路RTの曲がり角の周辺に位置する施設の情報を漏れなく取得することができる。
なお、施設情報取得部116は、手順c2の矩形枠の形成を省略してもよい。この場合、手順c3において施設情報取得部116は、手順c1で形成したポリゴンに対して、少なくとも一部が重なるメッシュのメッシュ番号を求めればよい。このようにしても、施設情報取得部116は、曲がり角の中心点、換言すれば、経路RTが屈曲する地点の各ノードを中心として配置された各ポリゴンを用いて、施設の情報の取得範囲を拡げることができる。この結果、施設情報取得部116は、経路RTの曲がり角の周辺に位置する施設の情報を漏れなく取得することができる。
図10は、他の例におけるメッシュ番号の指定について説明する図である。図10では、説明の便宜上、図9で説明した経路RTのうちの、ノードN1のみを図示している。また、メッシュM11,M17,M23,M29の図示も省略している。図10のメッシュ番号の指定は、図9で説明したメッシュ番号の指定と同様に、施設情報取得処理(図8)のステップS302で実行される。施設情報取得部116は、図9の方法に代えて図10の方法を利用してもよい。図10の例では、ポリゴンと矩形枠とを用いずに、メッシュ番号を求める。
施設情報取得部116は、以下の手順d1〜d2を実行することで、施設情報取得要求において指定するメッシュ番号を特定する。
(d1)施設情報取得部116は、処理対象ノードが属するメッシュに隣接する各メッシュについて、処理対象ノードから当該メッシュの境界までの距離が、所定距離以下であるか否かをそれぞれ判定する。ここで、所定距離は任意に定めることができる。「隣接」とは、直接隣り合う隣接と、斜め隣接との両方を含む。図10の例では、ノードN1が属するメッシュM15に斜め隣接するメッシュは、メッシュM8,M10,M20,M22の4つである。
(d2)施設情報取得部116は、所定距離以下であるメッシュのメッシュ番号を取得する。
(d3)施設情報取得部116は、曲がり角判定処理(図5または図7)において「曲がり角」と判定された全てのノードに対して、手順d1,d2を実行する。得られたメッシュ番号から重複を除外し、施設情報取得要求において指定するメッシュ番号を得る。
このようにすれば、施設情報取得部116は、曲がり角の中心点、換言すれば、経路RTが屈曲する地点の各ノード(N1,N2,N3)から、隣接する各メッシュまでの距離を用いて、施設の情報の取得範囲を拡げることができる。この結果、施設情報取得部116は、施設情報取得処理(図8)において、実際には経路RTの曲がり角の周辺に位置する施設であるにもかかわらず当該施設の情報が取得されない、という事象の発生を抑制し、経路RTの曲がり角の周辺に位置する施設の情報を漏れなく取得することができる。
図8のステップS304においてサーバ20は、施設情報取得要求に含まれているメッシュ番号をキーとして施設情報DB245を検索し、施設の情報を取得する。ステップS306においてサーバ20は、取得した施設の情報を含む応答をサーバ10へ送信する。
このように、本実施形態の施設情報取得処理によれば、施設情報取得部116は、情報の取得対象であるメッシュ番号をまとめて指定した施設情報取得要求を用いて、サーバ20から施設の情報を取得する。このため、サーバ10とサーバ20との間の要求と応答のやりとりが一往復で済むため、サーバ10とサーバ20とに掛かる処理負荷が低い。また、サーバ20は、施設情報取得要求で指定されるメッシュ番号と、施設情報DB245のメッシュ番号とをそのまま比較すればよいため、ステップS304の検索に掛かる処理負荷が低い。
A−2−4.施設情報取得処理(従来例):
図11は、従来例の施設情報取得処理の手順を示すシーケンス図である。従来例のサーバ10xは、施設情報取得部116に代えて施設情報取得部116xを備える。施設情報取得部116xは、図8で説明した施設情報取得処理に代えて、図11の施設情報取得処理を実行する。
図12は、従来例の施設情報取得処理について説明する図である。図12では、案内制御処理(図4)のステップS104で取得された経路RTの一例と、経路RTの周辺に位置する施設情報DB245内の施設P1〜P14の一例を示している。各施設の内側に描画された白抜きの丸印は、各施設の代表点の緯度経度(施設情報DB245に格納されている緯度経度)の位置を表している。
図11のステップS402において、サーバ10xの施設情報取得部116xは、サーバ20xに対して施設情報取得要求を送信する。この施設情報取得要求には、曲がり角判定処理(図5または図7)において「曲がり角」と判定されたノードN1〜N3のうちの、最初のノードN1の位置情報(例えば緯度経度)が含まれている。ステップS404において、サーバ20xは、施設情報DB245を検索し、施設情報取得要求に含まれているノードN1の位置情報から円形の範囲R1内に、代表点が存在する施設P1,P4,P7の情報を取得する。ステップS406においてサーバ20xは、取得した施設の情報を含む応答をサーバ10xへ送信する。
同様に、ステップS412〜416では、「曲がり角」と判定されたノードのうちの2番目のノードN2の位置情報に基づき、円形の範囲R2内に代表点が存在する施設P1,P7,P8の情報が取得される。ステップS422〜S426では、「曲がり角」と判定されたノードのうちの3番目のノードN3の位置情報に基づき、円形の範囲R3内に代表点が存在する施設P5,P9,P10の情報が取得される。サーバ10xの施設情報取得部116xは、「曲がり角」と判定された全てのノードの回数分だけ、この処理を繰り返す。このとき、ノードN1,N2のようにノード間の距離が短い場合、施設情報取得部116xが取得した施設の情報が重複してしまう(図12、格子ハッチングを付した施設P1,P7)。そこで、図11のステップS430において施設情報取得部116xは、サーバ20から取得した施設の情報から、重複部分を除外する。
このように、従来例の施設情報取得処理(図11)では、曲がり角判定処理(図5または図7)で「曲がり角」と判定されたノードの数だけ、サーバ10xとサーバ20との間で要求と応答とのやりとりを行う必要が生じ、サーバ10xとサーバ20とに掛かる処理負荷が高い。また、サーバ20は、施設情報DB245を検索する際に、緯度経度の比較の処理を行うこととなり、検索にかかる処理負荷も高い。さらに、サーバ10xは、サーバ20から取得した施設の情報から重複部分を除外する必要があるため(ステップS430)、サーバ10xに余分な処理が必要となる。
以上の通り、従来例の施設情報取得処理(図11)との比較から明らかなように、本実施形態の施設情報取得処理(図8)では、サーバ10の施設情報取得部116は、地図画像データDataが所定の区画に予め分割されたメッシュ単位で、施設の情報を取得する(図8、ステップS302)。このため、施設の情報を取得する都度、逐一「施設の代表点の座標」に対する参照および検索(照合)の処理が必要となる従来の方法(図11)と比較して、サーバ10(経路案内装置)や、施設情報DB245を格納しているサーバ20における処理負荷を低減することができる。この結果、本形態のサーバ10によれば、施設を検索して施設の情報を取得する際の、処理負荷を低減することができる。
図4の案内制御処理に戻り、説明を続ける。ステップS114において、サーバ10の施設情報取得部116は、ステップS112で取得した周辺施設から、案内に用いる施設(以降「案内施設」とも呼ぶ)を絞り込み、取得する。
図13は、案内施設の取得について説明する図である。図13では、案内制御処理(図4)のステップS104で取得された経路RTの一例と、ステップS112で取得された周辺施設P1〜P14との一例を示している。図13の経路RTは、3つのノードN1〜N3と、4つのリンクL1〜L4を含んでいる。経路RTのうち、ノードN1に隣接するリンクL1,L2と、ノードN2に隣接するリンクL2,L3と、ノードN3に隣接するリンクL3,L4とは全て、曲がり角判定処理(図5または図7)において「曲がり角」と判定されたものとする。
施設情報取得部116は、以下の手順e1〜e3を実行することで、周辺施設から案内施設を絞り込み、案内施設の情報を取得する。
(e1)施設情報取得部116は、曲がり角判定処理(図5または図7)において「曲がり角」と判定された各ノードの位置情報(例えば緯度経度)に基づいて、各ノードの位置を中心とした円形の抽出範囲を定義する。円の半径は任意に決定でき、利用者により変更可能であってもよい。「曲がり角」と判定されたノードが複数ある場合、施設情報取得部116は、各ノードに対応した複数の抽出範囲を定義する。
(e2)施設情報取得部116は、案内制御処理のステップS112で取得された周辺施設から、手順e1で定義された抽出範囲内に位置する施設を特定する。具体的には、施設情報取得部116は、抽出範囲に対して、施設ポリゴンのうちの少なくとも一部が重なる施設を、周知の重なり判定等を利用して特定する。施設情報取得部116は、特定した施設を案内施設とする。なお、施設情報取得部116は、重なり判定の際、抽出範囲に対する施設ポリゴンの重なり率を算出し、各施設に対応付けて記憶しておいてもよい。本実施形態では、重なり率を、施設ポリゴンが抽出範囲に重複する面積の、施設ポリゴンの面積に対する割合として定義する。
(e3)施設情報取得部116は、案内制御処理のステップS112で取得された周辺施設の情報から、手順e2で特定した施設の情報を取得する。
例えば、図13の例では、施設情報取得部116は、ノードN1を中心とした抽出範囲R1と、ノードN2を中心とした抽出範囲R2と、ノードN3を中心とした抽出範囲R3とを定義する(手順e1)。次に、施設情報取得部116は、抽出範囲R1〜R3に対して、施設ポリゴンのうちの少なくとも一部が重なる施設P1,P2,P4,P6,P7,P8,P9,P10,P11を特定し、案内施設とする(手順e2)。その後、施設情報取得部116は、案内制御処理のステップS112で取得された周辺施設の情報から、手順e2で特定した案内施設P1,P2,P4,P6,P7,P8,P9,P10,P11の情報を取得する。
このように、本実施形態によれば、施設情報取得部116は、経路が屈曲する地点の各ノードから所定範囲内(すなわち、円により定義された抽出範囲R1〜R3内)に位置する施設、すなわち、曲がり角判定処理(図5または図7)において「曲がり角」と判定されたノード周辺の施設の情報を、案内施設の情報として取得することができる。
また、従来例の施設情報取得処理(図11、図12)で説明した通り、施設の代表点を用いて施設の情報を取得するという一般的な方法によれば、実際には曲がり角の周辺に位置する施設であるにもかかわらず、当該施設の情報が取得されない場合がある(図12、施設P2,P6,P11)。これは、特に広大な面積を持つ施設(例えば大型ショッピングモール等)について顕著である。この点、本実施形態のサーバ10(経路案内装置)によれば、施設情報取得部116は、施設の外形を成す施設ポリゴンを用いて施設の情報を取得する(手順e2)ため、施設の代表点を用いて施設の情報を取得した場合(図11、ステップS402,S404)の上記問題の発生を抑制し、曲がり角の周辺に位置する施設の情報を漏れなく取得することができる。
図4の案内制御処理に戻り、説明を続ける。ステップS116において、サーバ10の案内制御部114は、ステップS104で取得された経路に対して、案内施設の情報を紐付ける。具体的には、案内制御部114は、図14で説明する紐づけ処理を実行する。
A−2−5.紐づけ処理:
図14は、紐づけ処理の手順を示すフローチャートである。紐づけ処理は、案内制御処理(図4)のサブルーチンとして実行される。サーバ10の案内制御部114は、案内制御処理のステップS114で取得された施設の情報に対して、次のステップを実行する。
ステップS602において、サーバ10の案内制御部114は、処理対象である施設の情報が、所定の項目リストに一致するか否かを判定する。項目リストは、「曲がり角の案内を行わない施設」を特定するための情報が格納されたリストであり、予めサーバ10の記憶部140に記憶されている。項目リストには、例えば、地図情報DB241の地図画像内に、既に施設名称が含まれている施設の施設名称が格納されている。こうすれば、地図画像内に埋め込まれた施設名称と、後述の表示用画像による施設名称と、の表示が重複することを抑制できる。項目リストの内容は任意に設定でき、利用者によって変更が可能であってもよい。
施設の情報が項目リストに一致しない場合(ステップS602:NO)、案内制御部114は、処理をステップS612に遷移させる。一方、施設の情報が項目リストに一致する場合(ステップS602:YES)、サーバ10の案内制御部114は、処理をステップS604へ遷移させる。ステップS604において、案内制御部114は、施設の情報をリンクに紐づけせず、処理対象を次の施設の情報へ移動させる(ステップS606)。その後、案内制御部114は、ステップS602に戻り、処理を継続する。
ステップS612において、サーバ10の案内制御部114は、案内制御処理(図4)のステップS114で取得された施設の情報の中に、処理対象である施設と同一の建物内にある施設の情報があるか否かを判定する。この判定は、例えば、住所や緯度経度を比較することにより実施できる。
同一の建物内の他の施設の情報がない場合(ステップS612:なし)、案内制御部114は、処理をステップS622へ遷移させる。一方、同一の建物内の他の施設の情報がある場合(ステップS612:あり)、サーバ10の案内制御部114は、処理をステップS614へ遷移させる。
ステップS614において、サーバ10の案内制御部114は、処理対象である施設は、建物の1階にある施設か否かを判定する。この判定は、例えば、住所を参照することにより実施できる。1階にある施設でない場合(ステップS614:NO)、案内制御部114は、施設の情報をリンクに紐づけせず、処理をステップS618に遷移させる。一方、1階にある施設の場合(ステップS614:YES)、案内制御部114は、処理をステップS616へ遷移させる。ステップS616において、サーバ10の案内制御部114は、施設名称と施設アイコンとのうちの少なくともいずれか一方を、当該施設の最寄りのリンクに対して紐づけ、処理をステップS618に遷移させる。ステップS618において案内制御部114は、処理対象を次の施設の情報へ移動させた後、ステップS602に戻り、処理を継続する。
ステップS622において、サーバ10の案内制御部114は、処理対象である施設が、施設名称の案内に適した施設であるか否かを判定する。この判定は、例えば、施設名称や、ジャンルを参照することにより実施できる。具体的には、例えば、案内制御部114は、施設名称が「鈴木宅」といった個人宅を表す場合、個人情報保護の観点から施設名称の案内に適さないと判定できる。また、例えば、案内制御部114は、風紀上または治安上好ましくないジャンルの施設である場合、施設名称の案内に適さないと判定できる。施設名称の案内に適すか否かの条件は任意に設定でき、利用者によって変更が可能であってもよい。
施設名称の案内に適する施設である場合(ステップS622:YES)、サーバ10の案内制御部114は、処理をステップS624へ遷移させる。ステップS624において案内制御部114は、施設名称と施設アイコンとのうちの少なくともいずれか一方を、当該施設の最寄りのリンクに対して紐づけ、処理をステップS628に遷移させる。
一方、施設名称の案内に適する施設でない場合(ステップS622:NO)、サーバ10の案内制御部114は、処理をステップS626へ遷移させる。ステップS626において案内制御部114は、施設の住所を当該施設の最寄りのリンクに対して紐づけ、処理をステップS628に遷移させる。ステップS628において案内制御部114は、処理対象を次の施設の情報へ移動させた後、ステップS602に戻り、処理を継続する。
このように、本実施形態の紐づけ処理(ステップS602〜S606)によれば、案内制御部114は、サーバ10やサーバ20といった装置のシステム構成上、または、地図情報DB141や地図情報DB241のデータ構成上、利用者に案内することが好ましくない情報(例えば、情報の重複が生じるもの)を、予め所定の項目リストに整備しておくことにより、当該情報が案内されることを回避することができる。また、本実施形態の紐づけ処理(ステップS612〜S618)によれば、案内制御部114は、利用者の目に付きやすい1階にある施設の情報を案内することができると共に、例えば雑居ビル等の、同一の建物内にある複数の施設の情報が案内されることにより生じる情報過多を抑制することができる。さらに、本実施形態の紐づけ処理(ステップS622〜S628)によれば、案内制御部114は、施設名称の案内に適した施設である場合は、利用者にとって直感的にわかりやすい施設名称を用いた案内をし(ステップS624)、施設名称の案内に適さない施設である場合は、路上の地物(例えば電柱や標識)に記載の多い施設の住所を用いた案内をする(ステップS626)ことができる。
図4の案内制御処理に戻り、説明を続ける。ステップS120において、サーバ10の案内制御部114は、ステップS104で取得された経路の情報と、ステップS116で経路中の各リンクに紐づけられた施設の情報と、を結合して、スマートフォン30に表示させるための表示用情報を生成する。表示用情報は、例えば、XML(Extensible Markup Language)形式や、HTML(HyperText Markup Language)形式とすることができる。
ステップS122において、サーバ10の案内制御部114は、生成した表示用情報を、スマートフォン30へ送信し、処理を終了する。この後、上述の通りスマートフォン30において表示用情報等の案内用情報に基づく案内処理がなされる。
図15は、出発地から目的地に向かう経路の情報を案内する画面の一例である。スマートフォン30の入出力部350に表示される画面W1には、目的地周辺の地図画像MP1と、経路RTと、利用者の現在位置PLと、アイコンC1〜C4と、案内メッセージMG1〜MG9と、が描画されている。なお、以降では、サーバ20の案内制御部114が、スマートフォン30から受信した現在位置情報に基づいて、画面W1の表示を更新させる構成について説明する。しかし、スマートフォン30の案内部312が、現在位置情報に基づいて画面W1の表示を更新してもよい。この場合、案内部312は「案内制御部」としても機能する。
経路RTは、案内制御処理(図4)のステップS104で取得された経路の情報に基づき描画されている。現在位置PLは、スマートフォン30の現在位置取得部360により取得された現在位置情報に基づき描画されている。アイコンC1〜C4は、地図情報DB241(または地図情報DB141)に格納されている地図画像データData内に含まれている。案内メッセージMG1〜MG9は、案内制御処理のステップS116でリンクに紐づけされた施設の情報に基づき描画されている。
図15に示すように、本実施形態の画面W1では、経路RTの曲がり角CN1,CN2の周辺に位置する施設P1〜P9について、施設の情報を表す案内メッセージMG1〜MG9が表示されている。案内メッセージMG1〜MG9は、引出し線を用いて、対応する施設P1〜P9の施設ポリゴンに関連付けた態様で表示されている。また、案内メッセージMG1,MG3,MG4,MG6,MG7には施設名称が表示され、案内メッセージMG2,MG9には施設アイコンが表示され、案内メッセージMG5,MG8には住所が表示されている。この表示内容の差異は、紐づけ処理(図14)によって、施設の情報に基づいて案内の態様が変更された結果である。
図15に示すように、本実施形態の画面W1では、利用者が次にその前を通過すべき施設についての案内メッセージMG7(F飯店)が、他の案内メッセージMG1〜MG6,MG8,MG9と比較して大きく表示(強調表示)されている。この強調表示は、サーバ20の案内制御部114が、スマートフォン30から受信した現在位置情報に基づいて、リアルタイムに更新する。すなわち、案内制御部114は、現在位置情報に基づき利用者がF飯店の前を通過したと判定した場合、案内メッセージMG7の強調表示を解除し、次の案内メッセージMG8(XX町1丁目19−27)を強調表示させる。
強調表示の態様は、注意を惹きやすい態様である限りにおいて任意に決定でき、利用者による変更が可能であってもよい。例えば、大きく表示させるほか、表示色を変更してもよく、縁取り等の装飾を施してもよく、音声による案内や、振動による案内を組み合わせてもよい。このようにすれば、案内制御部114は、優先的に案内させる施設の情報の表示(利用者が次にその前を通過すべき施設についての案内メッセージMG7)を、他の施設の案内メッセージMG1〜MG6,MG8,MG9と比較して注意を惹きやすい描画の態様とすることで、一見してわかりやすく表示させることができる。
なお、案内制御部114は、利用者が次にその前を通過すべき施設についての案内メッセージMG7を、他の案内メッセージMG1〜MG6,MG8,MG9と異なる案内態様とすれば足りる(強調表示しなくてもよい)。例えば、表示方法には相違を持たせず、次にその前を通過すべき施設についての案内メッセージだけに、音声案内や、振動による案内を組み合わせてもよい。
図16は、曲がり角における通過判定の方法を説明する図である。図16では、経路RTと、経路RTの周辺にある施設P1の一例を図示している。経路RTは、3つのノードN1〜N3と、4つのリンクL1〜L4と、を含む。経路RTのうち、ノードN1に隣接するリンクL1,L2と、ノードN2に隣接するリンクL2,L3と、ノードN3に隣接するリンクL3,L4とは全て、曲がり角判定処理(図5または図7)において「曲がり角」と判定されたものとする。
案内制御部114は、以下の手順f1〜f3に基づいて、施設P1に対する通過判定を行う。
(f1)案内制御部114は、施設P1の代表点O1から、経路RTが屈曲する地点の曲がり角にあたる各ノードN1,N2,N3までの直線距離をそれぞれ求める。
(f2)案内制御部114は、手順f1で求めた直線距離が最も短いノードを、通過判定に用いるノードとして特定する。図16の例では、ノードN1が特定される。
(f3)案内制御部114は、スマートフォン30から取得した現在位置と、手順f2で特定したノードの緯度経度とを比較して、現在位置がノードの位置を通過したと判定した場合に、スマートフォン30の利用者が施設P1の前を通過したと判定する。
このようにすれば、案内制御部114は、施設の代表点O1の位置とノードN1〜N3の位置とを用いて簡便に、通過の判定を行うことができる。なお、案内制御部114は、曲がり角の周辺にあるものの、他の施設に挟まれている施設(例えば、図15の施設P6,P7)については、施設から最寄りのリンクへと引いた垂線の位置を用いて、通過判定を行うことができる。
A−3.効果:
以上説明した通り、上記実施形態のサーバ10(経路案内装置)によれば、案内制御部114は、一つのノードに隣接する複数のリンクの形状が特定形状である場合は、当該複数のリンクについて曲がり角の案内をさせない(図5:曲がり角判定処理のステップS220〜S224、図7:他の例における曲がり角判定処理のステップS502〜S514)。図5や図7で説明したように、この特定形状を適切に規定することにより、サーバ10は、歩行者が「曲がり角ではない」と認識する経路の形状を有する場所において曲がり角の案内をしてしまう、という従来の問題の発生を回避することができる。この結果、本形態のサーバ10によれば、特に歩行者用の経路案内において、歩行者が認識する経路の形状と、案内の内容(例えば図15)とを整合させることができる。
また、上記実施形態の曲がり角判定処理(図5、図7)によれば、特定形状を、複数のリンクがノードを挟み形成する角度が所定角度以上であることとした。経路の形状が緩い屈曲形状(例えば、緩く屈曲して連なる道)である場合、通常、利用者はそこを「曲がり角ではない」と認識する。この点、本実施形態のサーバ10(経路案内装置)によれば、案内制御部114では、上述の所定角度を適切に定義することにより、経路の形状が緩い屈曲形状である場所、換言すれば、一のリンクと他のリンクがノードを介して大きな角度で結合している場所において、曲がり角の案内をさせないことができる。
さらに、上記実施形態の紐づけ処理(図14)によれば、案内制御部114は、例えば、施設名称や施設の住所といった様々な内容を含みうる施設の情報(図2)に基づいて、例えば特定の施設名称についての案内内容を他のものと変更したり(ステップS622〜S628)、特定の施設名称についての案内を控えたり(ステップS602〜S604、ステップS612〜S614)というように、案内の態様(図15)を変更することができる。この結果、本実施形態のサーバ10(経路案内装置)によれば、施設の情報に基づいて柔軟な案内態様を採用することができる。
さらに、上記実施形態の案内画面(図15)によれば、案内制御部114は、曲がり角の周辺にある施設の情報を案内する。施設の情報は、交差点の名称を表す看板等と比較して、遠くからでも一見してわかりやすいという特徴がある、このため、上記実施形態によれば、サーバ10(経路案内装置)の利用者にとってのわかりやすさを向上させることができる。また、上記実施形態の案内画面(図15)によれば、案内制御部114は、利用者が次にその前を通過する施設の案内を、他の施設の案内と異なる態様とするため、利用者にとっての使い勝手や、わかりやすさをさらに向上させることができる。
B.変形例:
上記実施形態において、ハードウェアによって実現されるとした構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されるとした構成の一部をハードウェアに置き換えるようにしてもよい。その他、以下のような変形も可能である。
・変形例1:
上記実施形態では、サーバ10(経路案内装置)を含むナビゲーションシステム1の構成を例示した。しかし、ナビゲーションシステム1の構成はあくまで一例であり、任意の態様を採用することができる。例えば、サーバ20(経路探索装置)が備えるとした機能のうちの少なくとも一部をサーバ10に搭載してもよく、1台のサーバ20が備えるとした機能を複数台のサーバにより実現してもよい。また、クライアント装置としては、スマートフォン30に代えて、パーソナルコンピュータ、ナビゲーション専用装置、ゲーム機、ウェアラブルデバイス等の種々の装置を採用できる。
例えば、ナビゲーションシステム1では、位置情報として緯度経度座標系を利用した場合を例示したが、位置情報としては、他の座標系(例えば、XY座標系)を利用しても良よい。
・変形例2:
上記実施形態では、サーバ10(経路案内装置)と、サーバ20(経路探索装置)との構成を例示した。しかし、上記実施形態における各サーバの構成はあくまで一例であり、任意の態様を採用することができる。例えば、その構成要素の一部を省略または変更すること、構成要素を付加することができる。例えば、上述した各機能を複数のサーバの協働によって実現してもよく、上述した各DBのうちの少なくとも一部は、他のサーバや他の内部/外部記憶装置に記憶されていてもよい。上述した各DBの構成についても、任意に変更することが可能であり、項目の追加/削除/変更や、データの格納形式の変更等が可能である。ここで、データの格納形式の変更は、テーブルの分割/変更や、リレーションの持たせ方の変更を含む。
例えば、サーバ20に記憶されている施設情報DB245には、人工的な施設(地物)についての施設情報以外に、POI(Point Of Interest)についてのPOI情報を含んでいてもよい。POIとは、利用者が関心を寄せる特定の場所を意味し、人工的な施設以外には、山や河川等の自然的な地物が含まれる。また、例えば、サーバ20には、図2で説明した各項目に加えて、例えば施設の電話番号、営業時間等、施設に関する種々の情報が格納されうる。
・変形例3:
上記実施形態では、案内制御処理(図4)と、案内制御処理において実行される各サブルーチンについて、処理手順の一例を挙げて説明した。しかし、これら処理手順は種々の変更が可能であり、各ステップにおける処理内容の追加/省略/変更をしてもよく、ステップ(手順)の実行順序を変更してもよい。
(1)上記実施形態の案内制御処理(図4)では、曲がり角の案内として、曲がり角の周辺に位置する施設の情報を案内した。しかし、曲がり角の案内としては種々の案内を実施できる。例えば、案内制御部114は、曲がり角の周辺に位置する施設の情報に代えて、曲がり角の情報(例えば、曲がり角にある信号機の名称、交差点の名称など)を案内してもよく、曲がり角である旨(すなわち、経路の形状のみ)を案内してもよく、曲がり角における進行方向(右折/左折/直進)を案内してもよい。また、例えば、曲がり角の案内方法としては、図15に示した画面表示のほか、画面表示に音声や振動を組み合わせた案内や、画面表示に代えて音声のみによる案内、画面表示に代えて振動のみによる案内等を採用できる。
(2)上記実施形態の案内制御処理(図4)では、曲がり角の案内に関する説明を行った。しかし、案内制御部114は、曲がり角の案内と共に、直線経路における案内を実施してもよい。この場合、案内制御処理のサブルーチンである施設情報取得処理(図8、図9)において、施設情報取得部116は、経路中の各リンクに沿った所定形状のポリゴンを複数形成し、このポリゴンを囲む矩形枠に対して少なくとも一部が重なるメッシュを、施設情報取得要求(図8、ステップS302)に含めればよい。また、メッシュと矩形枠とを使用しない場合(図10)、施設情報取得部116は、経路上の所定位置(例えば、各リンク上において等間隔に設けられた測定位置)から、当該測定位置が属するメッシュに隣接するメッシュまでの距離が、図10で説明した所定距離以下であるメッシュを、施設情報取得要求(図8、ステップS302)に含めればよい。さらに、上記直線経路における案内を実施する場合、案内施設の取得(図13)において、施設情報取得部116は、経路上の所定位置(例えば、各リンク上において等間隔に設けられた基準位置、各リンクの中央に設けられた基準位置等)を中心とした抽出範囲内に、施設ポリゴンの少なくとも一部が重なる施設の情報を取得してもよい。
上記の施設情報取得処理によれば、施設情報取得部116は、施設情報DB245を検索して経路沿いの施設の情報を取得する際の、処理負荷を低減することができる。また、上記の施設情報取得処理によれば、施設情報取得部116は、経路沿いの施設の情報を取得する場合において、当該施設の情報の取得範囲を拡げることができる。この結果、実際には経路の周辺に位置する施設であるにもかかわらず当該施設の情報が取得されない、という事象の発生を抑制し、経路の周辺に位置する施設の情報を漏れなく取得することができる。また、上記の案内施設の取得によれば、施設情報取得部116は、施設ポリゴンを用いて施設の情報を取得するため、経路の周辺に位置する施設の情報を漏れなく取得することができる。また、上記の直線経路および曲がり角における案内によれば、経路の情報に加えて、経路沿いの施設の情報を案内するため、サーバ10の利用者にとってのわかりやすさを向上させることができる。
(3)上記実施形態の案内制御処理(図4)では、徒歩経路の案内に関する説明を行った。しかし、案内制御部114は、徒歩経路の案内以外に、自動車経路や、公共交通機関経路についても、上記実施形態と同様の処理を行ってもよい。
(4)上記実施形態の施設情報取得処理(図8、図9)では、施設情報取得部116は、ポリゴンと矩形枠とを利用して、メッシュ番号を特定した。しかし、施設情報取得部116は、ポリゴンのみを利用してメッシュ番号を特定してもよい。この場合、施設情報取得部116は、ポリゴンに対して少なくとも一部が重なるメッシュのメッシュ番号を求めればよい。このようにすれば、施設情報取得部116は、経路中の各ノード(またはリンク)に沿って配置された各ポリゴンを用いて、施設の情報の取得範囲を拡げることができる。
(5)上記実施形態の施設情報取得処理(図8、図9)では、施設情報取得部116は、曲がり角の中心となるノード(換言すれば、経路が屈曲する地点のノード)の緯度経度を中心としてポリゴンを形成した。しかし、施設情報取得部116が形成するポリゴンは、ノードを含んでいる限りにおいて、中心がずれていてもよい。例えば、施設情報取得部116は、経路の形状等に応じて故意に、ポリゴンの中心をノードからずらしてもよい。
(6)上記実施形態の案内施設の取得(図13)では、施設情報取得部116は、円形の抽出範囲を定義した。しかし、抽出範囲の形状は任意に変更でき、例えば、矩形や、進行方向に向かって広がる三角形、多角形等を採用できる。
(7)上記実施形態の案内画面(図15)では、施設の情報の案内態様の一例を示した。しかし、施設の情報の案内態様は種々の変更が可能である。例えば、案内制御部114は、案内施設の取得(図13)において、抽出範囲の中心となった経路上の各ノード(またはリンク)からの距離が最も近い施設の情報を、他の施設の情報よりも優先的に案内させるような案内画面としてもよい。優先的に案内させる具体的な方法は任意に決定でき、例えば、施設ポリゴンを強調表示してもよく、施設の情報を強調表示してもよく、案内画面の表示と共に音声や振動による案内をしてもよい。このようにすれば、案内制御部114は、経路の近くに位置する施設の情報を優先的に案内させるため、サーバ10(経路案内装置)の利用者にとっての使い勝手や、わかりやすさを向上させることができる。
(8)上記実施形態の案内画面(図15)では、施設の情報の案内態様の一例を示した。しかし、施設の情報の案内態様は種々の変更が可能である。例えば、案内制御部114は、案内施設の取得(図13)において求められた抽出範囲に対する施設ポリゴンの重なり率が最も高い施設の情報を、他の施設の情報よりも優先的に案内させるような案内画面としてもよい。優先的に案内させる具体的な方法は任意に決定でき、例えば、施設ポリゴンを強調表示してもよく、施設の情報を強調表示してもよく、案内画面の表示と共に音声や振動による案内をしてもよい。このようにすれば、案内制御部114は、施設ポリゴンが施設の情報の取得範囲内(所定範囲内)に収まっている割合の高い施設の情報を優先的に案内させるため、サーバ10(経路案内装置)の利用者にとっての使い勝手や、わかりやすさを向上させることができる。
(9)上記実施形態の案内画面(図15)では、施設の情報の案内態様の一例を示した。しかし、施設の情報の案内態様は種々の変更が可能である。例えば、案内制御部114は、施設の情報を表す案内メッセージが表示されている施設の施設ポリゴンを、案内メッセージが表示されていない施設の施設ポリゴンと比較して、注意を惹きやすい態様(強調表示)で描画させてもよい。このようにすれば、案内制御部114は、施設の情報が関連付けられている施設ポリゴンを、他の施設と比較して、一見してわかりやすく表示させることができる。すなわち、このようにすれば、案内制御部114は、施設の情報だけでなく施設ポリゴン(施設の外形)をも一見してわかりやすく表示させることができる。
・変形例4:
本発明は、上述の実施形態や実施例、変形例に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態、実施例、変形例中の技術的特徴は、上述の課題の一部または全部を解決するために、あるいは、上述の効果の一部または全部を達成するために、適宜、差し替えや組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。