以下、添付図面を参照しながら本発明の実施形態を詳細に説明する。なお、図面の説明において同一又は同等の要素には同一の符号を付し、重複する説明を省略する。
図1は、本実施形態に係る周辺情報検索装置10A(情報処理装置)の機能構成を示すブロック図である。図1を用いて、本実施形態に係る周辺情報検索装置10Aについて説明する。図1に示す周辺情報検索装置10Aは、投稿情報収集部11、投稿情報記憶部12(投稿情報記憶手段)、特定地点情報記憶部13、地点必要領域設定部14、メッシュ領域情報記憶部15(範囲情報記憶手段)、メッシュ領域設定部16、検索部17(検索手段)、及び検索半径決定部18A(検索手段、範囲情報取得手段)を備えている。
図2は、本実施形態に係る周辺情報検索装置10(第1実施形態に係る周辺情報検索装置10A及び第2実施形態に係る周辺情報検索装置10B)のハードウェア構成図である。図2を用いて、周辺情報検索装置10のハードウェア構成について説明する。図2に示すように、周辺情報検索装置10は、CPU101、主記憶装置であるRAM(Random Access Memory)102及びROM(Read Only Memory)103、通信を行うための通信モジュール104、並びにハードディスク等の補助記憶装置105等のハードウェアを備えるコンピュータを含むものとして構成される。これらの構成要素がプログラム等により動作することにより、上述する周辺情報検索装置10の機能が発揮される。なお、周辺情報検索装置10は複数のサーバ装置からなるコンピュータシステムによって構成されていてもよい。
図1に示す周辺情報検索装置10の各機能は、CPU101の制御の下で、RAM102及びROM103に所定のソフトウェアプログラムを読み込ませて実行することにより実現される。その際、CPU101は、ソフトウェアプログラムの処理手順に従い、RAM102及びROM103におけるデータの読み出し及び書き込み動作を制御し、通信モジュール104の動作を制御する。以下、図1に示す各機能要素について説明する。
投稿情報収集部11は、ユーザ端末19等の各種端末からインターネット上のつぶやき情報投稿サイトやブログサイトなどに投稿された投稿情報を収集する部分である。投稿情報は、投稿情報を一意に識別する投稿IDと、テキスト情報と、投稿日時の情報と、投稿場所を示す位置情報(緯度情報、経度情報)を含む。投稿情報収集部11は、例えば、インターネット上をクローリングすることで投稿情報を直接収集してもよく、外部のサービス業者等から投稿情報の提供を受けることで投稿情報を収集してもよい。また、投稿情報収集部11は、後述する検索部17がなるべく最新の投稿情報を検索できるように、投稿情報を定期的に収集してもよい。
投稿情報記憶部12は、投稿情報収集部11によって、収集された投稿情報を記憶する部分である。図3は、投稿情報記憶部12に格納される投稿情報の例を示す図である。投稿情報として、投稿ID、テキスト、投稿日時、投稿場所を示す位置情報が含まれる。このように、投稿情報記憶部12は、ユーザ端末19から投稿された内容(テキスト情報)と、当該投稿内容に関する場所を示す位置情報とを対応付けた投稿情報を記憶する。
特定地点情報記憶部13は、施設やランドマーク等の特定地点(例えば、POI(point of interest))に関する特定地点情報を格納する部分である。特定地点情報記憶部13に格納される特定地点情報は、特定地点を一意に識別する特定地点のIDと、当該特定地点の位置情報(緯度・経度)と、後述する地点必要領域設定部14により設定される必要領域情報と、を含む。図4は、特定地点情報記憶部13に格納される特定地点情報の例を示す図である。本実施形態では、必要領域は、特定地点を中心とする円形領域であり、必要領域情報は、必要領域の半径である。特定地点情報のうち、地点ID、及び位置情報は、例えば、市販の位置情報データベースの導入やオペレータによるデータ入力等により登録される。必要領域情報は、後述する地点必要領域設定部14により設定又は更新される。
地点必要領域設定部14は、特定地点情報記憶部13に格納される特定地点毎の必要領域情報を設定する部分である。ここで、「必要領域」は、投稿情報の総数が所定条件を満たすような領域である。ここで「所定条件」とは、例えば、「10件以上」などの条件である。この件数は、周辺情報検索装置10において予め設定された値でもよく、ユーザ毎にカスタマイズ可能な値でもよい。また、「必要領域情報」は、必要領域を特定するための数値情報である。上述のように、本実施形態では、必要領域は、特定地点を中心とする円形領域であり、必要領域情報は、当該円形領域の半径である。このように、特定地点に基づいた所定範囲は、地点必要領域設定部14によって、当該所定範囲内における投稿情報の数が所定値以上となるように、特定地点ごとに定められる。
また、上述したように投稿情報記憶部12に格納される投稿情報は適宜更新され得るため、地点必要領域設定部14は、必要領域情報の設定又は更新を適宜実行する。
メッシュ領域情報記憶部15は、地図メッシュ領域(分割領域)情報及びそれぞれの地図メッシュ毎で定まる検索半径情報を記憶する部分である。地図メッシュ領域情報は、地図メッシュ領域の識別情報であるメッシュコードと、当該地図メッシュ領域の範囲を定める情報(例えば、メッシュの端点の緯度経度情報等)を含む情報である。検索半径情報は、各メッシュコードに対応する地図メッシュ領域における投稿情報の検索半径を示す情報(投稿情報の検索範囲の大きさを示す範囲情報)を含む情報である。ここで「地図メッシュ領域」とは、緯度経度に基づいて矩形に分けた領域である。また、検索半径とは、後述する検索部17が投稿情報を検索する範囲を示す半径である。このように、メッシュ領域情報記憶部15は、あらかじめ定められた領域を分割した地図メッシュ領域ごとに、投稿情報の検索範囲の大きさを示す検索半径を示す情報を記憶する。
当該検索半径情報は、後述するメッシュ領域設定部16によって生成され、メッシュ領域情報記憶部15に記憶される。図5に検索半径情報の例を示す。図5に示すように、検索半径情報は、メッシュコードと半径とを含む。メッシュコードは、地図メッシュ領域の大きさと、地図メッシュ領域の識別情報とを兼ねる情報である。ところで、地図メッシュ領域は、一の地図メッシュ領域をさらに細分化している(例えば、一の地図メッシュ領域を縦横に2等分し、更に2等分した地図メッシュ領域を縦横に2等分するなど)。このように、最も細分化されたメッシュ領域(最も小さいメッシュ領域)は、拡大図(縮尺の大きい図)となり、細分化したメッシュ領域を統括したメッシュ領域(上記細分化したメッシュ領域より大きいメッシュ領域)は、縮図(縮尺の小さい図)となる。本実施形態では、1/4メッシュ(1/2メッシュを縦横に2等分したものであり、緯度差は7.5秒、経度差は11.25秒で、1辺の長さは約250m)が最も縮尺の大きい地図メッシュ領域(メッシュ領域の大きさが最も大きいメッシュ領域)とする。図5に示すように、9ケタのメッシュコードの場合、1/2メッシュを示し、10ケタのメッシュコードは、1/4メッシュを示す。図5に示すように、一のメッシュ領域を分割サイズ(1/2メッシュ、1/4メッシュ等)を変えて分割することにより、複数サイズの地図メッシュ領域が得られる。
メッシュ領域設定部16は、各地図メッシュ領域の検索半径を示す情報(検索半径)を設定する部分である。具体的には、メッシュ領域設定部16は、当該メッシュ領域に含まれる特定地点情報に紐づく必要領域情報を平均化した値を検索半径として算出する。メッシュ領域設定部16は、地図メッシュ領域毎に、当該地図メッシュ領域の位置に含まれる特定地点情報を特定地点情報記憶部13から取得し、取得した特定地点情報の必要領域情報である半径の平均値を算出する。メッシュ領域設定部16は、上記地図メッシュ領域のメッシュコードと算出した平均値(検索半径)とを対応付けて、メッシュ領域情報記憶部15へ記憶する。このように、メッシュ領域情報記憶部15は、メッシュ領域に含まれる特定地点の所定範囲に基づいて定められた範囲情報(検索半径)を記憶する。
具体例を図6に示す。図6は、地図メッシュ領域と当該地図メッシュ領域に含まれる特定地点とを示す。メッシュコードが「5239−23−43−1−1」である地図メッシュ領域M1には、特定地点A、特定地点B、及び特定地点Cが含まれる。メッシュコードが「5239−23−43−1−2」である地図メッシュ領域M2及びメッシュコードが「5239−23−43−1−3」である地図メッシュ領域M3には、特定地点情報が無い。メッシュコードが「5239−23−43−1−4」である地図メッシュ領域M4には、特定地点Dが含まれる。メッシュコードが「5239−23−43−1」である地図メッシュ領域M5は、地図メッシュ領域M1〜M4を含むメッシュ領域である。すなわち、地図メッシュ領域M5には、特定地点A〜Dが含まれる。なお、地図メッシュ領域M1〜M4は、1/4メッシュであり、地図メッシュ領域M5は、1/2メッシュである。
メッシュ領域設定部16は、地図メッシュ領域M1における検索半径を算出する場合、当該地図メッシュ領域M1に含まれる特定地点A、特定地点B、及び特定地点Cのそれぞれの必要領域情報(半径)の平均を算出し、地図メッシュ領域M1のメッシュコード「5239−23−43−1−1」と、当該平均とを関連付けてメッシュ領域情報記憶部15へ記憶する。
メッシュ領域設定部16は、地図メッシュ領域M2及び地図メッシュ領域M3には特定地点が含まれていないため、それぞれの地図メッシュ領域に対応する検索半径を算出しない。地図メッシュ領域M4における検索半径を算出する場合、当該地図メッシュ領域M4に含まれる特定地点は、特定地点Dのみであるので、メッシュ領域設定部16は、特定地点Dの半径を抽出し、地図メッシュ領域M4のメッシュコード「5239−23−43−1−4」と、当該特定地点Dの半径とを関連付けてメッシュ領域情報記憶部15へ記憶する。
地図メッシュ領域M5における検索半径を算出する場合、当該地図メッシュ領域M5に含まれる特定地点は、特定地点A〜Dであるので、それぞれの特定地点の半径の平均を算出し、地図メッシュ領域M5のメッシュコード「5239−23−43−1」と、特定地点A〜Dの半径の平均とを関連付けてメッシュ領域情報記憶部15へ記憶する。
検索部17は、ユーザ端末19からの検索要求に応じて投稿情報の検索処理を実行する部分である。検索部17は、ユーザ端末19の位置と検索半径決定部18Aから取得した検索半径とに基づいた検索範囲から、投稿情報記憶部12に記憶される投稿情報を検索する。具体的には、検索部17は、ユーザ端末19からの投稿情報の検索要求と共に、ユーザ端末19から位置情報を取得し、検索半径決定部18Aに当該位置情報を通知し、検索半径決定部18Aから当該位置情報に基づいた検索半径を取得する。検索部17は、ユーザ端末19の位置と検索半径決定部18Aから取得した検索半径とに基づいた検索範囲を特定し、投稿情報記憶部12に記憶されている投稿情報の投稿位置が検索範囲内を示す投稿情報を検索する。検索部17は、投稿情報記憶部12に記憶されている投稿情報の投稿位置が検索範囲内を示す投稿情報を検索した結果、検索数が所定数に達していない場合において、当該検索範囲を所定回数広げて投稿情報を検索する。検索部17は、所定回数検索範囲を広げても検索数が所定数に達していない場合、検索半径決定部18Aへユーザ端末位置に最も近い特定地点の半径と、ユーザ端末19から当該特定地点までの距離とに基づいた検索半径の取得要求をして、ユーザ端末19の位置と、検索半径決定部18Aから取得した検索半径とに基づいた検索範囲に含まれる投稿情報を検索する。このように、検索部17は、ユーザ端末19の位置と、検索半径決定部18Aによって再決定された検索半径とに基づいた検索範囲に含まれる投稿情報を検索する。
検索半径決定部18Aは、検索部17により取得された端末の位置情報が示す位置に対応するメッシュ領域を、メッシュ領域情報記憶部15に記憶されたメッシュ領域の範囲を定める情報を用いて決定し、当該決定したメッシュ領域の検索半径情報に含まれる半径をメッシュ領域情報記憶部15から取得する。
具体的には、検索半径決定部18Aは、検索部17からユーザ端末19の位置情報を取得すると共に、ユーザ端末19の位置を含むメッシュ領域に基づく検索半径の要求を受け付けた場合、検索部17から取得した位置情報が属するメッシュ(ユーザ端末19の位置を含んだメッシュ領域)の内、最も縮尺が大きいメッシュ領域を特定し、特定したメッシュ領域の検索半径をメッシュ領域情報記憶部15から取得し、当該検索半径を検索部17へ送出する。このように、検索半径決定部18Aは、ユーザ端末の位置情報に対応するメッシュ領域であり、且つ最も縮尺が大きい(最も大きさが小さい)メッシュ領域の検索半径を決定する。検索半径決定部18Aは、ユーザ端末の位置情報に対応するメッシュ領域であり、且つ最も縮尺が大きい(最も大きさが小さい)メッシュ領域の検索半径をメッシュ領域情報記憶部15から取得できない場合、ユーザ端末の位置情報に対応するメッシュ領域であり、且つ1つ上の階層(例えば、1/4メッシュを基準とした場合における1/2メッシュ)のメッシュ領域の検索半径をメッシュ領域情報記憶部15から取得する。
検索部17が、所定回数検索範囲を広げても投稿情報の検索数が所定数に達していない場合に、検索部17からユーザ端末19の位置情報を受け取ると共に、ユーザ端末19の位置に最も近い特定地点の半径と、ユーザ端末19から当該特定地点までの距離とに基づいた検索半径の取得要求がなされると、検索半径決定部18Aは、ユーザ端末19の位置情報に最も近い特定地点情報を特定地点情報記憶部13から取得する。検索半径決定部18Aは、検索部17から取得した位置情報と特定地点情報の位置情報(緯度・経度)とに基づいて、ユーザ端末19の位置から当該特定地点までの距離を算出し、当該距離と、特定地点情報の必要領域とを加算した距離による検索半径を決定し、決定した検索半径を検索部17へ送出する。このように、検索半径決定部18Aは、検索部17によって所定数以上の投稿情報が検索されなかったことを条件として、位置情報に基づいて特定地点情報記憶部13から特定地点情報を取得し、位置情報及び検索した特定地点情報の必要領域情報に基づいて検索半径を再決定する。
図7は、本実施形態に係る特定地点の必要領域情報の設定動作を示すフロー図である。まず、地点必要領域設定部14が、半径設定対象の特定地点情報を特定地点情報記憶部13から1つ取得する(ステップS1)。ここで、特定地点Aが取得された場合について、以降の説明を行う。地点必要領域設定部14は、特定地点Aを中心とする任意の初期半径「r」の領域「S」を設定し、検索部17が備える検索機能により、特定地点情報記憶部13から特定地点情報を抽出する(ステップS2)。初期半径「r」の決定方法は任意の方法でよく、特に限定されない。
続いて、地点必要領域設定部14は、特定地点Aを中心とする初期半径「r」の領域内で投稿された投稿情報を投稿情報記憶部12から検索する(ステップS3)。続いて、地点必要領域設定部14は、投稿情報の検索件数が所定数「Y」(最低投稿件数)以上か否かを判定する(ステップS4)。ここで、投稿情報の検索件数は、所定数「Y」を満たさない場合、地点必要領域設定部14は、半径を拡大する(ステップS4:NO、ステップS5)。半径の拡大方法は、例えば、現在の半径に固定値(例えば300mなど)を加算する方法でもよく、所定の計算方法により拡大する方法でもよい。
続いて、地点必要領域設定部14は、拡大した半径による領域について、ステップS3〜ステップS4の処理を実行する。従って、所定条件を満たすと、地点必要領域設定部14は、特定地点情報記憶部13に格納された特定地点Aの半径を設定し、処理を終了する(ステップS6)。
地点必要領域設定部14は、上記処理を全ての特定地点について実行することで、全ての特定地点の必要領域情報を設定する。また、特定地点に関連付けられた投稿情報の総数は、投稿情報記憶部12に格納された投稿情報が更新されると変更されるため、地点必要領域設定部14は、全ての特定地点情報について定期的に上記処理を実行することが好ましい。
図8は、本実施形態に係るメッシュ領域情報の設定動作を示すフロー図である。まず、メッシュ領域設定部16は、特定地点情報記憶部13に記憶されている特定地点情報を検索し、各特定地点情報のIDを取得する(ステップS11)。続いて、メッシュ領域設定部16は、メッシュコードが1/4地域メッシュコードである地図メッシュ領域の範囲を取得し、当該メッシュの範囲に含まれる特定地点の特定地点情報を特定地点情報記憶部13から取得し、取得した特定地点情報の必要領域情報(半径)の平均値を算出し、当該平均値とメッシュコードとを対応付けた情報をメッシュ領域情報記憶部15へ登録する(ステップS12)。
このように、メッシュ領域設定部16は、メッシュ領域に紐づく特定地点情報を特定地点情報記憶部13から取得した結果、少なくとも1つ以上の特定地点情報を取得したメッシュ領域に紐づく検索半径を算出し、一の大きさの地図メッシュ領域に対して地図メッシュ領域に紐づく検索半径を算出した後に、他の大きさの地図メッシュ領域に紐づく検索半径を算出する。
続いて、メッシュ領域設定部16は、メッシュコードが1/2地域メッシュコードである地図メッシュ領域の範囲を定める情報をメッシュ領域情報記憶部15から取得し、当該地図メッシュ領域の範囲に含まれる特定地点の特定地点情報を特定地点情報記憶部13から取得し、取得した特定地点情報の半径の平均値を算出し、当該平均値とメッシュコードとを対応付けた情報(検索半径情報)をメッシュ領域情報記憶部15へ登録する(ステップS13)。
続いて、メッシュ領域設定部16は、メッシュコードが標準地域メッシュコードである地図メッシュ領域の範囲を定める情報をメッシュ領域情報記憶部15から取得し、当該地図メッシュ領域の範囲に含まれる特定地点の特定地点情報を特定地点情報記憶部13から取得し、取得した特定地点情報の半径の平均値を算出し、当該平均値とメッシュコードとを対応付けた情報(検索半径情報)をメッシュ領域情報記憶部15へ登録する(ステップS14)。
続いて、メッシュ領域設定部16は、メッシュコードが2次地域メッシュコードである地図メッシュ領域の範囲を定める情報をメッシュ領域情報記憶部15から取得し、当該地図メッシュ領域の範囲に含まれる特定地点の特定地点情報を特定地点情報記憶部13から取得し、取得した特定地点情報の半径の平均値を算出し、当該平均値とメッシュコードとを対応付けた情報(検索半径情報)をメッシュ領域情報記憶部15へ登録する(ステップS15)。
続いて、メッシュ領域設定部16は、メッシュコードが1次地域メッシュコードである地図メッシュ領域の範囲を定める情報をメッシュ領域情報記憶部15から取得し、当該地図メッシュ領域の範囲に含まれる特定地点の特定地点情報を特定地点情報記憶部13から取得し、取得した特定地点情報の半径の平均値を算出し、当該平均値とメッシュコードとを対応付けた情報(検索半径情報)をメッシュ領域情報記憶部15へ登録する(ステップS16)。
図9は、本実施形態に係る投稿情報の検索動作を示すフロー図である。まず、検索部17が、ユーザ端末19から位置情報を受信すると共に検索要求を受信すると、検索部17は、当該位置情報を検索半径決定部18Aへ送出すると共に地図メッシュ領域に基づく検索半径の要求をする。
検索半径決定部18Aは、ユーザ端末19の現在地に対応する1/4メッシュであるメッシュコードをメッシュ領域情報記憶部15に記憶されている地図メッシュ領域情報から特定する(ステップS21)。続いて、検索半径決定部18Aは、当該1/4メッシュのメッシュコードに対応する検索半径をメッシュ領域情報記憶部15に記憶されている検索半径情報から検索する(ステップS22)。当該地域メッシュコードに対応する検索半径が見つからなかった場合、すなわち、検索半径決定部18Aが当該1/4メッシュコードに対応する検索半径を取得できなかった場合(ステップS23;NO)、検索半径決定部18Aは、ユーザの現在地に対応する、1/2メッシュのメッシュコード(1/4メッシュのメッシュ階層を1つ上げたメッシュコード)を特定し(ステップS24)、ステップS22〜ステップS23の処理をする。
地域メッシュコードに対応する検索半径が見つかった場合(ステップS23;YES)、検索半径決定部18Aは、当該検索半径を検索部17へ送出する。
例えば、図10に示すように、ユーザ端末19が、地図メッシュ領域M1の範囲内に位置している場合、検索半径決定部18Aは、当該地図メッシュ領域M1のメッシュコード「5239−23−43−1−1」に対応する検索半径である半径R1(図5の例では、233.3m)を検索部17へ送出し、検索部17が半径R1から定まる検索範囲S1に含まれる投稿情報を投稿情報記憶部12から検索する。
また、図11に示すように、ユーザ端末19が、1/4メッシュである地図メッシュ領域M3の範囲内に位置している場合、検索半径決定部18Aは、当該地図メッシュ領域M3のメッシュコード「5239−23−43−1−3」に対応する検索半径を検索した結果、当該地図メッシュ領域M3には特定地点情報が含まれないため、地図メッシュ領域M3に対応する検索半径を取得できない。この場合、検索半径決定部18Aは、1つ階層を上げた地図メッシュ領域M5のメッシュコード「5239−23−43−1」に対応する検索半径である半径R2(図5の例では、300m)を検索部17へ送出して、検索部17が半径R2から定まる検索範囲S2に含まれる投稿情報を投稿情報記憶部12から検索する。このように、検索半径決定部18Aは、1/4メッシュの地図メッシュ領域M3の検索半径をメッシュ領域情報記憶部15から取得できない場合、1/2メッシュに属する地図メッシュ領域M5の検索半径をメッシュ領域情報記憶部15から取得する。
検索部17は、ユーザ端末19の位置を中心に、検索半径決定部18Aから取得した検索半径に基づいた範囲(検索範囲)に含まれる投稿情報の数が最低投稿件数以上である場合(ステップS26;YES)、検索した投稿情報を検索結果として、ユーザ端末19へ送信することにより投稿情報の出力をする(ステップS30)。
検索部17は、ユーザ端末19の位置を中心に、検索半径決定部18Aから取得した検索半径に基づいた範囲(検索範囲)に含まれる投稿情報の数が最低投稿件数未満である場合(ステップS26;NO)、検索範囲の半径の拡大回数が所定回数でない場合、半径を一定数拡大して(ステップS28)、ステップS25へ進む。
ステップS27において、半径拡大回数が所定回数以上である場合(ステップS27;YES)、ユーザ端末の位置に近い特定地点に基づく検索処理をして(ステップS29)、ステップS30へ進む。なお、ステップS29の処理は、図12等を用いて後述する。
図12は、本実施形態に係る検索処理(ステップS29)の動作を示すフロー図である。図13は、本実施形態に係る検索処理の動作を説明するために用いる図である。図12及び図13を用いて、ユーザ端末19からの検索要求に応じて実行される検索処理の動作について説明する。ここで、図13に示す「D」、「E」及び「F」は、特定地点である。特定地点D、特定地点E及び特定地点Fに係る特定地点情報は、特定地点情報記憶部13に格納されている。
また、「d1」は、特定地点Eとユーザ端末19との間の距離を示し、「r1」は、特定地点Eの半径(必要領域情報)を示し、「R3」及び「R4」は、検索半径決定部18Aにより算出される検索半径を示す。また、ユーザ端末19が検索要求を行った時点において、特定地点Eを中心とする半径「r1」の円形領域(必要領域)「S3」が、事後的に所定数以上の投稿情報が収集できる領域ではなくなっているものとする。また、本実施形態では、検索半径決定部18Aは、検索部17により検索された投稿情報の件数が所定数未満の場合には検索半径(検索範囲)を拡大し、検索部17は、投稿情報の検索件数が所定数以上となるまで検索処理を繰り返すものとする。
図12において、検索半径決定部18Aは、ユーザ端末19の現在位置に最も近い特定地点を選択特定地点とする(ステップS41)。具体的には、検索半径決定部18Aは、検索部17からユーザ端末19の位置情報を取得し、ユーザ端末19の位置情報と特定地点情報記憶部13に格納されている各特定地点情報の位置情報とから、ユーザ端末19と各特定地点との距離を算出する。続いて、検索半径決定部18Aは、当該算出された距離同士を比較することで、ユーザ端末19に最も近い特定地点Eを抽出し、当該特定地点Eを選択特定地点とする。
検索半径決定部18Aは、選択特定地点Eの半径「r1」を特定地点情報記憶部13から抽出し(ステップS42)、ユーザ端末19及び特定地点Eの間の距離「d1」と選択特定地点Dの半径「r1」とから、検索半径「R3(=d1+r1)」を算出する(ステップS43)。
続いて、検索部17は、上記検索半径R3の検索範囲S4に含まれる投稿情報を検索する(ステップS44)。検索部17は、投稿情報の検索件数が所定数「Y」以上か否かを判定する(ステップS45)。事後的に所定数以上の投稿情報が収集できる領域ではなくなっているので、検索半径決定部18Aは、検索半径を「R4」に拡大する(ステップS45:NO、ステップS46)。
以下に、検索半径の拡大方法について説明する。本実施形態では、検索半径決定部18Aは、下記式(1)に基づいて検索半径を拡大する。ただし、検索半径の拡大方法はこれに限定されず、例えば、下記式(2)、(3)などに基づいて検索半径を拡大してもよい。
r:特定地点情報に含まれる半径の値
d:ユーザ端末19及び特定地点の間の距離
R:更新後の検索半径
N:検索の繰り返し回数
R=r+d/2+d×2(N−2)…(1)
R=r+d/2+1000×(N−1)…(2)
R=r+d+100×(N−1)…(3)
式(1)は、検索の繰り返し回数に応じて指数関数的に検索半径を拡大する。従って、式(1)によれば、検索の繰り返し回数の増加と共に、検索半径の拡大幅が大きくなるため、検索の繰り返し回数をある程度抑えることが期待できる。その一方で、検索の繰り返し回数が多くなると検索半径の拡大幅が指数関数的に大きくなるため、検索半径を不必要に拡大してしまうおそれもある。
式(2)、(3)は検索の繰り返し回数に比例するように検索半径を拡大する。従って、式(2)、(3)によれば、検索の繰り返し回数によらず検索半径の拡大幅が一定となるため、検索の繰り返し回数が式(1)を用いた場合よりも多くなってしまうおそれがある。しかし、検索の繰り返し回数がある程度多くなった場合でも検索半径を一定幅で拡大するため、式(1)のように検索半径を不必要に拡大してしまうおそれが少ない。
続いて、検索部17は、ステップS46で拡大された後の検索半径「R4」の検索範囲「S5」を用いて検索処理を実行する(ステップS44〜ステップS45)。その結果、図8に示す特定地点E周辺の投稿情報を検索するため(ステップS44)、投稿情報の検索件数は、増加する。この結果、検索部17は、取得した投稿情報をユーザ端末19に提示し(ステップS45:YES、ステップS47)、検索処理を終了する。
本実施形態においては、検索半径「R3」の検索範囲「S4」を用いた検索処理では投稿情報の検索件数が所定数「Y」以上とならず、検索半径の拡大処理が必要となった。しかしながら、選択特定地点Eの半径「r1」の最終設定日時とユーザ端末19が検索要求を行った時点との時間差が小さい場合や、半径「r1」内に含まれる特定地点に関連付けられた特定地点投稿数が検索時期にかかわらずほぼ一定となるような場合などには、上記のように検索半径の拡大処理が必要となることは稀であると考えられる。すなわち、検索半径「R3」の検索範囲「S4」を用いた検索処理により投稿情報の検索件数が所定数「Y」以上となることが期待できる。
図14は、第2実施形態に係る周辺情報検索装置10Bの構成を示している。図14に示すように周辺情報検索装置10Bは、投稿情報収集部11、投稿情報記憶部12、特定地点情報記憶部13、地点必要領域設定部14、検索部17、及び検索半径決定部18B、特定地点領域記憶部20、及び特定地点領域決定部21を備えている。なお、周辺情報検索装置10Bの構成には、前述した第1の実施形態に係る周辺情報検索装置10Aの構成と共通する部分が多いため、以下では、周辺情報検索装置10Aの構成と相違するブロックについて説明する。
特定地点領域記憶部20は、特定地点領域の情報を記憶する部分である。ここで特定地点領域とは、図15に示すように、特定地点であるG〜Qを公知のドロネー三角分割により3点からなる領域である。なお、3点ではなく、他の任意の点数の特定地点領域でもよい。
より具体的には、特定地点領域記憶部20は、図16に示すような、各領域を識別する領域IDと、当該領域を構成する特定地点のIDと、当該領域の緯度経度の情報等を有する情報(特定地点領域情報)を記憶する。この情報の生成方法は、後述する。また、特定地点領域記憶部20は、図17に示すような、各領域の検索半径を示す情報(検索半径情報)を記憶する。
特定地点領域決定部21は、特定地点情報記憶部13に記憶されている特定地点情報を用いてドロネー三角分割により特定地点領域を生成する部分である。特定地点領域決定部21は、所定のタイミング(例えば、特定地点情報が追加・削除されたタイミングなど)に、特定地点情報の緯度経度情報を参照して、ドロネー三角分割により、特定地点領域を決定し、当該特定地点領域の領域IDと、特定地点領域を構成する特定地点のIDと、特定地点領域の緯度経度情報(特定地点領域を構成する特定地点の緯度経度情報)とを関連付けた特定地点領域情報を特定地点領域記憶部20へ記憶する。このように、特定地点領域決定部21は、特定地点情報記憶部13に記憶されている特定地点情報に基づいて、選択された複数の特定地点を端点とする領域を決定する。
さらに、特定地点領域決定部21は、上記特定地点領域を構成する特定地点のIDに紐づく半径の平均値を算出し、特定地点領域のID(領域ID)と当該平均値とを関連付けた情報(検索半径情報)を特定地点領域記憶部20へ記憶する。
検索半径決定部18Bは、特定地点領域記憶部20を参照して、検索部17から取得したユーザ端末19の位置情報に対応する特定地点領域を特定し、当該特定地点領域の検索半径を検索し、当該半径を検索半径として検索部17へ通知する部分である。
図18は、本実施形態に係る特定地点領域を決定する動作を示すフロー図である。まず、特定地点領域決定部21は、特定地点情報記憶部13から特定地点情報を取得する(ステップS61)。続いて、特定地点領域決定部21は、特定地点情報の位置情報(緯度経度情報)を基にドロネー三角分割をして、特定地点情報に基づく領域を決定する(ステップS62)。続いて、特定地点領域決定部21は、決定した領域の領域IDを公知の連番の採番方法等により決定する(ステップS63)。続いて、特定地点領域決定部21は、当該領域IDと、特定地点領域を構成する特定地点のIDと、特定地点領域の緯度経度情報とを関連付けた特定地点領域情報を特定地点領域記憶部20へ記憶する(ステップS64)。
図19は、本実施形態に係る特定地点領域の検索半径を決定する動作を示すフロー図である。まず、特定地点領域決定部21は、特定地点領域記憶部20から1つの領域IDを抽出する(ステップS71)。特定地点領域決定部21は、抽出した領域IDが示す特定地点領域を構成する特定地点情報の検索半径を特定地点情報記憶部13から取得する(ステップS72)。続いて、特定地点領域決定部21は、取得した検索半径の平均値を算出し、当該領域IDと平均値である検索半径を関連付けた検索半径情報を特定地点領域記憶部20へ記憶する(ステップS73)。検索半径を算出していない領域IDが有る場合(ステップS74;NO)、特定地点領域決定部21は、次の領域IDを抽出し(ステップS75)、ステップS72へ進み、検索半径を算出していない領域IDが無い場合(ステップS74;YES)、処理を終了する。
図20は、第2実施形態に係る検索処理の動作を示すフロー図である。まず、検索部17が、ユーザ端末19から位置情報を受信すると共に検索要求を受信すると、検索部17は、当該位置情報を検索半径決定部18Bへ送出すると共に地図メッシュ領域に基づく検索半径の要求をする。
検索半径決定部18Bは、特定地点領域記憶部20に記憶されている特定地点領域情報を参照することにより、各領域を構成する特定地点を特定し、特定地点情報記憶部13の特定地点情報を参照し、特定した各特定地点の緯度経度に基づいて、ユーザ端末19の位置情報に対応する特定地点領域を特定する。このように、ユーザ端末19の位置情報を領域IDに変換する(ステップS21A)。続いて、検索半径決定部18Bは、特定地点領域記憶部20に記憶されている検索半径情報を参照し、当該領域IDに対応する検索半径を取得し、検索部17へ当該検索半径を送出する(ステップS22A)。以降の処理は、図9に示したフローチャートのステップS25〜ステップS30と同様のため、省略する。
次に、本実施形態の周辺情報検索装置10の作用効果について説明する。本実施形態の周辺情報検索装置10において、ユーザ端末19から投稿された投稿内容と、当該投稿内容に関する場所を示す位置情報とを対応付けた投稿情報を投稿情報記憶部12へ記憶する。そして、あらかじめ定められた領域を分割した分割領域(メッシュ領域、特定地点領域)毎に、投稿情報の検索範囲の大きさを示す検索半径を記憶する。検索部17は、ユーザ端末19の位置と当該検索半径から投稿情報を検索する。また、周辺情報検索装置10においては、特定地点に基づいた半径は、当該半径に基づく所定範囲内における投稿情報の数が所定値以上となるように、特定地点ごとに定められ、メッシュ領域情報記憶部15は、分割領域に含まれる特定地点の前記所定範囲に基づいて定められた範囲情報を記憶する。この場合、周辺情報検索装置10は、あらかじめ領域毎に検索半径を定めておくので、投稿情報を検索するユーザ端末の位置によらずに検索範囲が不当に広がってしまうことを避けることができる。また、特定地点に基づいた所定範囲は、所定範囲内における投稿情報の数が所定値以上となるように、特定地点ごとに定められており、分割領域に含まれる特定地点の所定範囲に基づいた範囲情報を用いて検索範囲を定めているので、投稿情報の検索数が保証される。
また、上記の周辺情報検索装置10においては、同一地図メッシュ領域が、複数の分割サイズを変えて分割されており、検索部17は、ユーザ端末19の位置に対応する地図メッシュ領域が複数存在する場合には、最も小さい地図メッシュ領域の範囲情報に基づいて検索範囲を定める。この場合、ユーザ端末19の位置に属する地図メッシュ領域の内、大きさが最も小さいメッシュ領域に基づいて検索範囲を定めるので、ユーザ端末19から狭い範囲(即ち、ユーザ端末からそれほど離れていない範囲)に基づいた検索範囲を用いて投稿情報を検索することができる。
また、上記の周辺情報検索装置10においては、検索半径決定部18Aは、一の階層のメッシュ領域の検索半径を、メッシュ領域情報記憶部15から取得できない場合、一の階層とは異なる階層に属し、一の階層のメッシュ領域より大きいメッシュ領域の範囲情報をメッシュ領域情報記憶部15から取得する。この場合、小さいメッシュ領域に対応する検索半径を取得することができなくても、当該メッシュ領域より大きいメッシュ領域に対応する検索半径を取得するので、上記小さいメッシュ領域に対応する検索半径が定められていなくても投稿情報を検索することができる。
また、上記の周辺情報検索装置10Bにおいて、分割領域は、特定地点情報記憶部13に記憶された特定地点情報に基づいて、選択された複数の特定地点を端点とする領域(特定地点領域)とする。この場合、選択された複数の特定地点を端点とするので、各領域では、必ず特定地点を含むことになり、投稿情報の検索数を保証しつつ、投稿情報を検索するユーザ端末の位置によらずに検索範囲が不当に広がってしまうことを避けることができる。
また、上記の周辺情報検索装置10において、検索半径決定部18は、検索部17によって所定数以上の投稿情報が抽出されなかったことを条件として、位置情報に基づいて特定地点情報記憶部13から特定地点情報を抽出し、当該位置情報及び抽出した特定地点情報の必要領域情報に基づいて検索半径を再決定し、検索部17は、検索半径決定部18によって再決定された検索半径に基づいて定められた検索範囲から投稿情報を検索する。この場合、あらかじめメッシュ領域毎に検索半径を定めておくことにより、当該検索半径に基づいて最初に投稿情報を検索するので、ユーザ端末の位置によらずに検索範囲が不当に広がってしまうことを避けることができる。また、当該検索範囲により投稿情報を検索できない場合には、当該位置情報及び抽出した特定地点情報の必要領域情報に基づいて検索半径を再決定するので、より確実に投稿情報の検索数を保証することができる。
上述の実施形態では、投稿内容に関する場所を示す位置情報として、投稿した場所の位置情報を当該投稿情報に含める場合について述べたが、投稿内容から特定される場所の位置情報を投稿情報に含めるようにしてもよい。例えば、投稿内容に含まれる場所を示す情報(例えば、地名、施設名等)から特定される位置情報を投稿情報に含めるようにしてもよい。
上述の実施形態では、特定地点毎に定められている半径を用いて検索半径を定める場合について述べたが、特定地点に限らずに各領域毎に検索半径を定めるようにしてもよい。例えば、メッシュ領域毎に、当該メッシュ領域内に含まれる投稿情報の数に基づいて検索半径を予め定めるようにしてもよい。
上述の実施形態では、メッシュ領域又は特定地点領域に対応する特定地点情報の必要領域情報の平均をそれぞれの領域の検索半径とする場合について述べたが、中央値を検索半径とするようにしてもよい。
上述の実施形態では、検索半径決定部18Aがメッシュ領域情報記憶部15から検索半径を取得する場合について述べたが、他の装置がメッシュ領域情報記憶部15相当の情報を記憶して、検索半径決定部18Aが、上記他の装置から検索半径を取得するようにしてもよい。
上述の実施形態では、サイズの大きい領域(例えば、地図メッシュ領域M5)がサイズの小さい領域(例えば、地図メッシュ領域M1)を完全に包含する場合について述べたが、一のサイズの大きい領域が、サイズの小さい領域を完全には包含せずに、当該サイズの小さい領域の一部と重複するようにしてもよい。