説明

ナビゲーション装置及びプログラム

【課題】各グループ間の極値の比較により全体のソートを行うことでソート処理時間を短縮化させる。
【解決手段】施設を検索して案内する機能を備えたナビゲーション装置において、施設を検索する施設検索手段4aと、検索した施設の列値を順次算出し、算出した列値を直前の列値と比較してその大小関係により施設を順次グループ分けするグループ分け手段4bと、全グループ間の極値比較により施設全体をソートし、ソートした施設のリストを案内する制御手段4cとを備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は施設を検索して案内するナビゲーション装置及びプログラムに関する。
【背景技術】
【0002】
現在地周辺の施設の検索等において、検索した各施設までの直線距離を各々算出し、現在地から近い順にソートしてリスト表示するPOI(Point Of Interest)検索が知られているが、この方法では最短距離として検索された施設が車両で走行した場合には最短時間で到達できる施設ではない場合がある。そこで、ユーザが指定したジャンルの施設を検索して現在地周辺で絞り込む際、リスト表示を現在地からの距離順ではなく、個々の施設に対してルート探索を実施し、当該施設までの走行距離または到着予想時間を算出して短い順にリスト表示するものが知られている(特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003−232641
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記特許文献の方法では、該当する施設がたくさんある場合、全ての施設に対してルート探索を行うため、探索に時間がかかってしまうとともに、ナビゲーション装置の処理装置(CPU)の負荷が大きくなってしまう。また、一般的なPOI検索ではリスト表示において施設を距離順などに並べ替えるソート処理に時間がかかってしまっていた。
【課題を解決するための手段】
【0005】
本発明は上記課題を解決しようとするもので、検索した施設をソートして表示する場合に、ソート処理にかかる時間を短縮化することを目的とする。
本発明は、施設を検索して案内する機能を備えたナビゲーション装置において、施設を検索する施設検索手段と、検索した施設の列値を順次算出し、算出した列値を直前の列値と比較してその大小関係により施設を順次グループ分けするグループ分け手段と、全グループ間の極値比較により施設全体をソートし、ソートした施設のリストを案内する制御手段とを備えたことを特徴とする。
また、本発明は、施設を検索して案内するナビゲーション装置を制御するプログラムにおいて、施設を検索するステップ、検索した施設の列値を算出し、算出した列値を直前の列値と比較してその大小関係により施設を順次グループ分けするステップ、全グループ間の極値比較により施設全体をソートし、ソートした施設のリストを案内するステップをコンピュータに実行させることを特徴とする。
【発明の効果】
【0006】
本発明は、検索した施設をソートするための列値の大小関係により施設をグループ化してグループ内のソートを完了し、各グループ間の極値の比較により全体のソートを行うことでソート処理時間を短縮化することができる。
【図面の簡単な説明】
【0007】
【図1】本実施形態のナビゲーション装置の例を示すブロック図である。
【図2】施設のグループ分けを説明する図である。
【図3】グループ間比較を説明する図である。
【図4】グループ分けしたときのデータ例を説明する図である。
【図5】グループ間の比較を行うときのデータ例を説明する図である。
【図6】グループ分けの処理フローを示す図である。
【図7】グループ分けの処理フローを示す図である。
【図8】グループ間比較処理フローを示す図である。
【発明を実施するための形態】
【0008】
以下、本発明の実施の形態について説明する。
図1は本実施形態に係るナビゲーション装置の構成例を示すブロック図である。目的地、検索エリア、検索する施設名、ジャンル等の情報を入力するキーボード、マウス、タッチパネル、操作キー等からなる入力装置1、現在位置に関する情報を検出するGPS(Global Positioning System )等からなる現在位置検出装置2、地図データ、道路データ、施設等の地点データ、経路の探索に必要なナビゲーション用データ、経路案内に必要な表示/音声の案内データ、さらに地図の表示、経路探索、音声案内等の案内を行うためのプログラム(アプリケーション及び/又はOS)等を記憶する情報記憶装置3、施設名、ジャンル、エリア等を指定して施設を検索する施設検索手段4a、検索した施設に関し、現在位置からの距離や到達時間等のソートする値(列値)を順次算出し、算出した列値を直前の列値と比較してその大小関係により施設を順次グループ分けするグループ分け手段4b、グループ分けした各グループの中の列値の最小値(極値)の比較により検索した施設の全体をソートし、ソートした施設のリストを案内する制御手段4cを備え、ナビゲータ処理手段として地図の表示処理、経路探索処理、経路案内に必要な表示/音声案内処理、さらにシステム全体の制御を行う中央処理装置4、交通情報を送受信する通信装置5、経路案内に関する情報を出力し、制御手段4sから出力される施設のリストを表示するディスプレイ、スピーカその他の出力装置6から構成されている。
【0009】
図2は施設のグループ分けを説明する図である。
ここでは「ランド」という施設名称で検索したときにヒットした施設とその座標が、ネバーランド(x1,y1) 、ネズミーランド(x2,y2) 、ランドセルハウス(x3,y3) 、健康ランド(x4,y4) 、スーバーランド(x5,y5) の5つの施設であったと仮定する。これらの施設をソートする場合、ソートするための基準として、例えば、施設までの距離、施設までの到達時間をソート値(列値)とし、その大小関係により施設をソートする。以下では、距離をソート値(列値)として説明するが、時間の場合も同様である。
【0010】
図示のように、ネバーランド、ネズミーランド、ランドセルハウス、健康ランド、スーバーランドの各距離(列値)が、それぞれ389 、127 、3383、1184、1382と算出されたものとし、これら列値を算出しながら、直前の施設の列値と比較してグループ分けする。例えば、最初にグループID(識別情報)を「1」に設定し、ネバーランドの列値389 とネズミーランドの列値127 とを比較する。ネズミーランドの列値はネバーランドの列値(直前値)より大きくない(小さい)ので、ネバーランドとは別グループとしてグループIDを更新し、「2」を登録する。次いで、ランドセルハウスの列値3383をネズミーランドの127 (直前値)と比較し、ランドセルハウスの列値はネズミーランドの列値(直前値)より大きいので、ネズミーランドと同一グループとしてグループIDは更新せず「2」のままとする。次いで、健康ランドの列値1184をランドセルハウスの列値3383と比較すると、健康ランドの列値はランドセルハウスの列値(直前値)より大きくない(小さい)ので、ランドセルハウスとは別グループとしてグループIDを更新し、「3」を登録する。次いで、スーパーランドの列値1382と健康ランドの列値1184とを比較し、スーパーランドの列値は健康ランドの列値(直前値)より大きいので、健康ランドと同一グループとしてグループIDは更新せず「3」のままにする。
【0011】
このように、施設の列値を直前の施設の列値と比較し、単調増加(小→大)していない場合には直前の施設とは別グループとして登録することでグループ分けを行う。このようなグルーフ分けにより、ここでは図示するように、ネバーランドのグループ、ネズミーランド、ランドセルハウスのグループ、健康ランド、ランドセルハウスのグループの3つのグループに分けられ、各グループは列値が小さい順に並び、各グループ内のソートは完了することになる。もちろん、列値が単調減少していない場合には直前の施設とは別グループとして登録することでグループ分けすることも可能であり、その場合は、各グループは列値が大きい順に並ぶことになる。
【0012】
図3はグループ間の比較による全体のソートを説明する図である。
図2で説明したように、検索した施設の列値の大小関係に着目してグループ分けすると、列値を計算しながらグループ分けが行われて各グループ内のソートが完了する。本実施形態では各グループ内は列値が小さい順に並ぶことになり、次いで、全体をソートするためにグループ間の比較を行う。各グループ内でその先頭が最小の列値(極値)であるので、図3(a)に示すように、3グループの先頭の値を比較してネズミーランドの極値127 を全体の最小値として取得し、このデータを処理済みとして図3(b)に示すように抹消する。ネズミーランドを抹消したグループ2では2番目のランドセルハウスの列値が最小値(極値)であるので、他のグループの極値と比較する(図3(b))。この比較により、ネバーランドの極値389 が最小値であるので、これを全体の最小値として取得し、このデータを処理済みとして図3(c)に示すように抹消する。次いで、グループ1は未処理のデータはないので、グループ2、グループ3との間で極値を比較し(図3(c))、同様に極値同士の最小値を取得し、このデータを処理済みとして抹消していく。このような処理を全グループにおいて未処理データがなくなるまで繰り返することで、全データが列値の小さい順にソートされ、全体のソートが完了し、図3(d)に示すように、列値の小さい表示順にしてリスト表示が行われる。
【0013】
このように、本実施形態では列値を計算しながらその前後の値を比較してその大小関係で順次グループ分けすることにより、グループ分けの終了と同時に各グループ内のソートは完了し、グループ間の極値の比較のみで全体をソートすることができるので、個々のデータ全体を比較してソートするのに比して格段にソート処理にかかる時間を短縮化することができる。
【0014】
図4は列値の比較によりグループ分けしたときのデータ例を説明する図である。
図4(a)の例は、上記したように、施設の列値を直前の施設の列値と比較し、単調増加していない場合には直前の施設とは別グループとし、単調増加している場合は同じグループとして順次グループIDを登録するデータ例を示している。
図4(b)の例は、上記したようにグループ分けしたときのグループの情報(グループIDとそれに対応する施設の数)のみ別の所にテーブルとして持っておき、グループ情報テーブルにおける施設の先頭と、グループ分けした各施設データの先頭(列値が最小)のみ連結しておく例を示している。
【0015】
図5はグループ間の比較を行うときのデータ例を説明する図である。
図5(a)は図4(a)のデータ例に対応し、グループ分けによりグループIDを登録し、これにグループ間の極値の比較により最小値を取得してデータが処理済みとなった否かの施設の数をカウントする処理済施設数の項目を付加したデータ例を示している。この処理済施設数のカウント値を参照することで、当該グループに未処理のデータが存在するか否か判別できる。これは、処理済施設数分先のデータが同一グループIDなのか否かで判別し、同一グループIDであれば未処理のデータが存在し、同一グループIDでなければ未処理のデータは存在しない。また、有効なデータ(これからソートする処理開始位置のデータ)へのアクセスを処理済施設数分先のデータとして参照することも可能である。
図5(b)は図4(b)のデータ例に対応し、グループ情報テーブルの各グループIDに処理済施設数の項目を付加したものである。このデータ例では、未処理のデータが存在するか否かは、施設の数と処理済施設数のカウント値を比較することで判別することができ、また、有効なデータへのアクセスは処理済施設数分先のデータとして参照することができる。
【0016】
図6は施設の列値(距離)を直前の距離と比較し、単調増加していない場合には直前の施設とは別グループとして順次グループIDを登録するデータ例(図4(a))の場合の処理フローを示している。
先ず、グループIDを初期化して「1」にセットし(ステップS1)、比較する直前距離値を初期化(0)する(ステップS2)。次いで、グループ分けする対象施設データがあるか否か判断し(ステップS3)、ある場合はその施設までの距離を算出する(ステップS4)。次いで、直前のデータの距離と今回のデータの距離を比較し(ステップS5)、直前のデータの距離は今回のデータの距離以上か否か判断する(ステップS6)。一番最初のデータについては、初期値として設定された直前距離0より大きいので、グループIDを更新せず(グループIDは「1」)にステップS8に移行し、直前距離値を更新し(今回距離値を直前距離値とする)、グループIDを設定登録(ステップS9)して、ステップS3に戻り、同様の処理を繰り返す。ステップS6において、直前距離が今回距離以上の場合(単調増加していない)にはグループIDを更新(インクリメント)する(ステップS7)。このような処理を全データについて行い、ステップS3において対象施設データがなくなればグループ分け処理は終了する。上記したように、この処理でグループ分けした各グループ内は距離の小さい順に並ぶのでグループ内のソートも完了する。
【0017】
図7は施設の列値(距離)を直前の距離と比較し、単調増加していない場合には直前の施設とは別グループとしてグループ分けしたときのグループ情報のみ別の所にテーブルとして持っておき、グループ情報とグループ分けした各施設データの先頭のみ連結しておくデータ例(図4(b))の場合の処理フローを示している。
先ず、グループIDを初期化して「1」にセットし(ステップS11)、比較する直前距離値を初期化(最大値)する(ステップS12)。次いで、グループ分けする対象施設データがあるか否か判断し(ステップS13)、ある場合はその施設までの距離を算出する(ステップS14)。次いで、直前のデータの距離と今回のデータの距離を比較し(ステップS15)、直前のデータの距離は今回のデータの距離以上か否か判断する(ステップS16)。一番最初のデータについては、初期値が最大である直前距離よりは小さいので、グループIDを更新せず(グループIDは「1」)にステップS18に移行し、施設の数を更新(インクリメント)し、グループID、更新した施設の数をグループ情報テーブルに登録する(ステップS19)。次いで、直前距離値を更新し(今回距離値を直前距離値とする)(ステップS20)、ステップS13に戻り、同様の処理を繰り返す。ステップS16において、直前距離が今回距離以上である(単調増加していない)場合にはグループIDを更新(インクリメント)(ステップS17)するとともに、当該グループの施設の数を更新する。このような処理を全データについて行い、ステップS13において対象施設データがなくなればグループ分け処理は終了する。以上の処理によりグループ分けした各グループ内は距離の小さい順に並ぶのでグループ内のソートは完了する。
【0018】
図8はグループ間の比較によるソート処理フローを示す図である。この処理は図3のグループ間の比較処理に対応するもので、グループ分けは終わっていることが前提である。まず、全データが処理済みか否か判断し(ステップS21)、未処理データがある場合、最小距離の初期化として最大値をセットする(ステップS22)。次いで、全グループ間の距離比較処理が終了か否か判断し(ステップS23)、未処理グループがある場合、当該未処理グループに未処理データがあるか否か判断し(ステップS24)、未処理データかある場合、当該グループの未処理データの距離は最小か否か判断する(ステップS25)。一番最初のデータの場合には、初期化でセットされた最大値との比較であるので、最小値と判断され(ステップS25、Y)、当該グループの未処理データの距離を最小距離とし(ステップS26)、ステップS23に戻って同様の処理を繰り返す。ステップS24において未処理データがない場合、ステップS25において未処理データの距離が最小でない場合もステップS23に戻って同様の処理を繰り返す。こうして、全グループ間の距離比較が終了すると、グループ全体で最小距離となったデータを処理済みとし(ステップS27)、次ぎの段階のグループ間比較のために最初に戻り、ステップS21で全データが処理済みでない場合、ステップS22で同様に最小距離の初期化(最大値をセット)して同様の処理を繰り返してグループ間の比較を行う。こうして、順次、最小距離となったデータを処理済みとして、全データか処理済みとなっとき処理は終了し、全体のソートが完了する。
【符号の説明】
【0019】
1…入力装置、2…現在位置検出装置、3…情報記憶装置、4a…施設検索手段、4b…グループ分け手段、4c…制御手段、4…中央処理装置、5…通信装置、6…出力装置。

【特許請求の範囲】
【請求項1】
施設を検索して案内する機能を備えたナビゲーション装置において、
施設を検索する施設検索手段と、
検索した施設の列値を順次算出し、算出した列値を直前の列値と比較してその大小関係により施設を順次グループ分けするグループ分け手段と、
全グループ間の極値比較により施設全体をソートし、ソートした施設のリストを案内する制御手段と、
を備えたナビゲーション装置。
【請求項2】
前記グループ分け手段は、算出した列値を直前の列値と比較し、単調変化していない場合に、これらの施設を別グループとする請求項1記載のナビゲーション装置。
【請求項3】
前記制御手段は、全グループ間で最小の極値の施設を処理済みとして抹消後、グループ間の再度の極値比較を順次行う請求項1記載のナビゲーション装置。
【請求項4】
前記制御手段は、各グループに処理済施設数のデータを付加し、処理済施設数のデータを参照して有効なデータへのアクセスを行う請求項2記載のナビゲーション装置。
【請求項5】
前記列値は、距離または時間である請求項1乃至4いずれか1項記載のナビゲーション装置。
【請求項6】
施設を検索して案内するナビゲーション装置を制御するプログラムにおいて、
施設を検索するステップ、
検索した施設の列値を算出し、算出した列値を直前の列値と比較してその大小関係により施設を順次グループ分けするステップ、
全グループ間の極値比較により施設全体をソートし、ソートした施設のリストを案内するステップ、
をコンピュータに実行させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate