(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0016】
以下に本発明の実施形態を説明する。以下の説明及び参照する図面の記載において、同一又は類似の構成には、それぞれ同一又は類似の符号が付されている。
【0017】
(実施形態)
図1乃至
図10は、実施形態を説明するための図である。以下、これらの図を参照しながら、以下の流れに沿って本実施形態を説明する。まず「1」で実施形態全体の概要を示す。その上で、「2」でサーバの構成を、「3」で処理の流れを説明する。最後に、「4」以降で、本実施形態に係る効果等を説明する。
【0018】
(1 概要)
(1.1 システム概要)
図1は、情報処理装置であるサーバ100を含む通信システム1の概略構成を示す図である。
図1に示すように、通信システム1は、サーバ100、サーバ200、及び1以上のクライアント300を含む。また、サーバ100、サーバ200、及びクライアント300は、それぞれ公衆網Nに接続されている。尚、公衆網Nは、サーバ100、サーバ200,及びクライアント300が相互に通信できればどのような方式のネットワークでも良く、例えばインターネットの他、携帯電話網等が考えられる。
【0019】
ここで、通信システム1は、クライアント300が、サーバ100及びサーバ200のそれぞれから情報提供サービスを受けることのできるシステムである。情報提供サービスの具体例としては、例えば、クライアント300からの要求に応じて、当該要求で指定された施設の位置を示す地図を提供したり、施設情報(施設名称、電話番号、住所等の情報を含む)を提供したりといったサービスである。
【0020】
クライアント300は、図示しないユーザが持ち運び自在な可搬性の情報処理装置である。クライアント300の具体例としては、例えば携帯端末(いわゆるスマートフォンであるか、フィーチャーフォンであるかは問わない)、ノートPC(Personal Computer)、PDA(Personal Data Assistance)等が考えられ、通常、表示部及び入力部を備えている。
【0021】
サーバ100及びサーバ200は、それぞれ施設データベース(DB)110及び210、並びにサービス提供部120及び220を備える。サーバ100及びサーバ200は、サービス提供部120及び220により、クライアント300へ上述の各種情報提供サービスを行う。以下、サービス提供部120及び220がクライアント300へ提供する情報は施設情報であるものとして説明する。尚、以下の説明において、「施設」とは、ビル等の建造物(建物)のみならず、建物内に入居する各店舗やオフィス等のほか、公園などの屋外施設や、屋外の任意の地点(例えば、公園内の「○○広場」や、待ち合わせに使用される「○○像前」、バス停等)等も含む概念をいうものとする。
【0022】
ここで、サービス提供部120及び220は、各種サービスを提供する際に、それぞれ施設DB110及び施設DB210を参照する。特に、サーバ100のサービス提供部120がサービスを提供する際には、自身が持つ施設DB110と、サーバ200が持つ施設DB210との双方から施設情報を取得し、当該情報を照らし合わせた上で、これらを纏めた情報をクライアント300へ提供する。つまり、施設DB110及び210のデータは、両者を照合(統合)可能とする必要がある。
【0023】
(1.2 施設DBの具体例)
以下、本実施形態における施設DB110及び210の具体例を説明する。
図2は、サーバ100が有する施設DB110の具体例を示す図である。
図2の例において、施設DB110が有する各施設の施設情報は、各施設に対して一意に割り当てられる施設IDと、各施設の名称、住所、電話番号、及び業種と、当該施設の位置情報(緯度経度)とを含む。
【0024】
一方、
図3は、サーバ200が有する施設DB210の具体例を示す図である。
図3の例において、施設DB210が有する各施設の施設情報は、各施設に対して一意に割り当てられる施設IDと、各施設の名称、住所、電話番号、及び業種と、当該施設の位置情報(緯度経度)とに加えて、口コミ情報及び評価情報を含む。
【0025】
ここで、本実施形態において、サーバ200が有する施設DB210は、サーバ100が有する施設DB110を元に作成されるものである。しかしながら、サーバ100の管理者と、サーバ200の管理者とが異なる等の理由により、各施設に対してそれぞれ一意に割り当てられる施設IDは、施設DB110と施設DB210との間で異なる(サーバ200の側で、新たな施設IDを割り当てる)。
【0026】
また、口コミや評価等の情報は、例えばサービス提供部220でクライアント300から受信した(入力された)情報に基づいて、サーバ200が追加するものである。サーバ100は、この追加分の情報(口コミや評価等の情報)を利用するには、サーバ200からこの施設情報を取得する必要があるため、施設DB110の施設情報と施設DB210の施設情報とを、1対1に対応付ける必要がある。
【0027】
しかしながら、前述の通り、施設DB110と施設DB210とでは、それぞれのデータベース上で一意に施設情報(施設)を識別可能な施設IDが異なっており、更に、サーバ100の管理者は、サーバ200の施設IDを知ることができないので、サーバ100は、施設IDによっては、施設DB110の施設情報と、施設DB210の施設情報とを照合することはできない。
【0028】
また、名称や住所、電話番号等の情報により、施設DB110の施設情報と施設DB210の施設情報とを対応付けることも考えられるが、この手法も、以下の理由により、完全な一意性の確保は難しい。
【0029】
まず、名称については一意性が全く担保されていない。データベース上、同一名称の施設が複数存在する場合には、施設DB110と施設DB210との間で施設情報を1対1に対応付けることができない。住所に関しては、同一建物(商業施設やホテル等)内に入居している各施設(店舗等)は、全て同一の住所となっていることが多いため、やはり一意性を確保できず、施設情報を1対1で対応付けることができない。電話番号に関しては、電話番号のデータが存在しない場合(例えば、屋外施設の場合)がある他、複数の施設に1つの電話番号が割り当てられている場合(例えばホテル内の各種店舗等)もあるため、施設情報を1対1で対応付けることができない。
【0030】
そこで、本実施形態の施設DB110(及び、施設DB110を反映させて作られる施設DB210)では、位置情報を施設ごとに一意に割り当てることで、施設DB110の施設情報と施設DB210の施設情報とが1対1に対応付けることを可能としている。
【0031】
(1.3 位置情報の割当方法)
図4を参照しながら、施設に対する位置情報の一意な割当方法の概要を説明する。
図4において、「代表点」は、元の施設DB110(一意な位置情報の割当前の施設DB110)において複数の施設の施設情報が重複して持つ位置情報の位置である。例えば、建物40内にある全ての施設(店舗等)に対して統一的に割り当てられた位置情報の位置等を、
図4の「代表点」の例として考えることができる。
図4中、破線は緯度及び経度に相当する。ここで、施設DB110における位置情報(緯度経度)の値の最小単位は、1ミリ秒であるものとする。
【0032】
1ミリ秒は、南北方向(緯度方向)であれば約30ミリメートル、東西方向(経度方向)であれば、北緯35度で約25ミリメートルに相当する。よって、地図上の表示などにおいては、数ミリ秒〜数十ミリ秒移動させたとしても、それほど大きな位置の変化はなく、施設情報(及び位置情報)の利用の観点からは大きな問題は生じないものと考えることができる。そこで本実施形態では、重複した位置情報(代表点)を持つ各施設情報に関しては、
図4に示すように、当該代表点の近傍の位置を示すように位置情報を変更することで、位置情報の一意性を確保するようにしている。
【0033】
より具体的には、
図4中「×」で示す代表点の位置の位置情報を有する各施設情報に関しては、位置情報が重複しないように(一意になるように)、以下の通り数値を変化させる。
図4の例であれば、位置情報(緯度、経度)の値を、1番目の施設情報に対しては(+1m秒、+0m秒)、2番目の施設情報は(+1m秒、+1m秒)、3番目の施設情報は(+0m秒、+1m秒)、4番目の施設情報は(−1m秒、+1m秒)、5番目の施設情報は(−1m秒、+0m秒)それぞれ加算する、といった処理を、位置情報の重複がなくなるまで繰り返す。これにより、位置情報に対応する位置(代表点)は殆ど変化させずに、かつ、位置情報を一意とすることができる。
【0034】
このように施設DB110に含まれる各施設情報が有する位置情報を全て一意にすることにより、当該施設DB110を元に作成される施設DB210と施設DB110との間で、位置情報をキーとして確実に1対1で施設情報を照合することが可能となる。
【0035】
尚、本実施形態では、位置情報の一意化に際して、緯度経度の双方の値を変化させている。両方の値を使用することにより、緯度経度の片方の値のみを変化させて一意化する場合よりも、元の代表点の近傍に、変化後の位置情報の位置を集中させることが可能となる。
しかしながら、これに限られるものではなく、例えば緯度経度の片方の値のみを変化させて位置情報の一意化を図るようにしても良い。
【0036】
また、本実施形態では1ミリ秒単位で緯度経度を変化させることにより位置情報の一意化を図っているがこれに限られるものではなく、例えば5ミリ秒単位や10ミリ秒単位等、もう少し大きな単位で変化させるようにしても良い。但し、あまり大きすぎる単位で変化させると、地図上の表示その他への影響が大きくなるため、変化の単位は100ミリ秒以下とすることが好ましい。
【0037】
(2 システム概要)
以下、
図5を参照しながら、本実施形態に係るサーバ100の機能構成を説明する。
図5は、本実施形態に係るサーバ100の機能構成を示す機能ブロック図である。
【0038】
サーバ100は、前述のとおり、サーバ100自身が有する施設DB110の施設情報と、サーバ200が有する施設DB210の施設情報とを併せた情報を、クライアント300へ送信することができる。
【0039】
サーバ100は、施設DB110、建物境界情報DB115、サービス提供部120、入力部130、位置情報変更部140、第1情報取得部150、第2情報取得部160、及び通信インタフェース170を有する。
【0040】
施設DB110は、上記「1.2」で
図2の具体例を参照しながら説明した通り、各施設の施設情報を管理する。入力部130は、当該施設DB110が蓄積する施設情報(その一部も含む)を入力するためのモジュールである。ここで、施設情報の入力方法は各種考えることができるが、例えば、DVD(Digital Versatile Disk)等の各種記憶媒体から読込むことや、オペレータがキーボードやマウス等の各種入力装置から入力すること、通信インタフェース170を介して、他の情報処理装置から施設情報を受信すること等が考えられる。
【0041】
建物境界情報DB115は、建物領域を示す座標情報等に係るデータベースである。位置情報変更部140は、後述するように、位置情報が示す位置が建物内であるか建物外であるか等に応じて、変更後の位置情報の値を決定する。
【0042】
位置情報変更部140は、入力部130から入力され、施設DB110が記憶する施設情報に含まれる位置情報を、それぞれの施設情報が一意に識別可能となるように更新する。この手法については、上記「1.3」で
図4を参照しながら概念を説明したが、加えて、後述の「3.1」で
図6等を参照しながら詳細を説明する。
【0043】
第1情報取得部150は、サービス提供部120がクライアント300に提供するサービスに応じて、施設DBの110から施設情報を取得する。取得する施設情報は1つであっても、複数であっても良い。第1情報取得部150は、施設DB110から読み込んだ施設情報をサービス提供部120へ出力すると共に、サーバ200から対応する施設の施設情報を取得するためのキーとなる位置情報(緯度経度)を第2情報取得部160へ出力する。
【0044】
第2情報取得部160は、通信インタフェース170を介して、サーバ200から施設DB210に格納されている施設情報を取得する。尚、サーバ200のサービス提供部220による施設情報の提供方法としては、API(Application Program Interface)による方法等が考えられる。この場合には、第2情報取得部160は、当該APIに対してキーとなる位置情報を与えることにより、当該位置情報に合致する施設情報を受信することができる。
【0045】
サービス提供部120は、クライアント300からの要求に応じて、各種施設情報をクライアント300へ送信する。このとき、サービス提供部120は、施設DB110から第1情報取得部150が取得した施設情報に加えて、第2情報取得部160がサーバ200から取得した施設情報に含まれる情報も併せて、クライアント300へ提供することが可能である。このとき、施設情報の紐付けが必要となるが、本実施形態では上述の通り、各施設情報に対して一意に割り当てられた位置情報を用いることにより、両施設情報の対応付けが可能となっている。
【0046】
通信インタフェース170は、例えばTCP/IP(Transmission Control Protocol/Internet Protocol)等により公衆網Nで通信可能なインタフェースである。サービス提供部120によるクライアント300へのサービス提供や第2情報取得部160によるサーバ200からの施設情報の取得は、通信インタフェース170を介して行われる。
【0047】
(3 処理の流れ)
以下、
図6乃至
図10を参照しながら、サーバ100における処理の流れを説明する。尚、後述の各処理ステップは、処理内容に矛盾を生じない範囲で、任意に順番を変更して若しくは並列に実行することができ、また、各処理ステップ間に他のステップを追加しても良い。更に、便宜上1つのステップとして記載されているステップは複数のステップに分けて実行することもでき、便宜上複数に分けて記載されているステップを1ステップとして実行することもできる。
【0048】
(3.1 位置情報変更の処理)
まず、
図6を参照しながら、サーバ100の位置情報変更に係る処理を説明する。
図6は、位置情報変更に係るサーバ100の処理の流れを示すフローチャートである。
【0049】
位置情報変更部140は、施設DB110に記憶された施設情報を読込み、同一緯度経度の値(元の代表点を示す値)を位置情報に持つ施設情報が複数あるか否かを判別する(S601)。もし、同一の値を持つ位置情報を含む施設情報がなければ(S601のNo)、既に位置情報は全施設情報に対して一意だと考えられるので、処理を終了する。
【0050】
同一の位置情報を持つ施設情報が複数ある場合には(S601のYes)、位置情報変更部140は、当該位置情報の位置(代表点に対応)が建物40内であるか否かを確かめる(S603)。このとき位置情報変更部140は、建物境界情報DB115を参照することにより、建物40の境界の内側であるのか外側であるのか(建物40のエリア(領域)内であるのか否か)を判別できる。
【0051】
処理対象の施設情報の代表点が建物40内である場合には(S603のYes)、位置情報変更部140は同一建物40内の異なる位置に、他の施設情報の代表点があるか否かを判別する(S605)。もし、処理対象の代表点が、位置情報変更部140による位置情報の変更前における、建物40内の唯一の代表点である場合には(S605のNo)、位置情報変更部140は、重複している施設情報の数の点を、建物40内に確保できるか否かを判別する(S609)。ここで「点」とは、1ミリ秒単位(本実施形態では1ミリ秒として説明しているが、例えば5ミリ単位や10ミリ単位等、他の単位も考えうる)の緯度線及び経度線が交差する点をさすものとする。
【0052】
もし、建物40内に全ての施設情報の分の点が確保できる場合には(S609のYes)、建物40内の、元の代表点の周囲に、配置する必要のある代表点(元の代表点を位置情報が示していた施設情報の位置)を順番に配置(位置情報を変更)していく(S611)。この処理は、
図4を参照しながら先述したものと同様となる。
【0053】
もし、S609において、建物40内に代表点の再配置に必要な全ての点が確保できない場合には(S609のNo)、まず、代表点の近傍の建物内の各点に、各施設の代表点をできうる限り配置し(施設情報に含まれる位置情報を変更し)(S613)、その後、残った施設の代表点を、代表点近傍の建物40外の点に配置(当該施設の施設情報に含まれる位置情報を変更)する(S615)。
【0054】
位置情報変更部140によるS613及びS615の処理の概要を、
図7に示す。
図7の例では、建物40内に計12個(元の代表点を含む)の点しか確保できないため、13個目以降の点(図中「12」で示す点)は、建物40外であって、なるべく元の代表点に近い位置となるように順番に配置されている。このように、極力建物40内に施設の代表点(施設情報の位置情報)を設定することで、位置情報の変更後に、ユーザが施設の位置を誤解する等の各種不都合の発生を最小限に抑制することが可能となる。
【0055】
また、S605において、選択した代表点のほかに、同一建物40内の異なる位置に他の施設情報の代表点がある場合には(S605のYes)、位置情報変更部140は、S609と同様に、再配置が必要な施設情報の数の点を建物40内に確保できるか否かを判別する(S617)。
【0056】
建物40内に必要な施設情報の数の点を確保できる場合には(S617のYes)、同一建物40内のそれぞれの元の代表点の周辺に、配置すべき代表点を、その数の比に応じて配置していく。S619の処理の概要を、
図8を参照しながら説明する。
図8は、1つの建物40内に、変更前の施設情報がもつ代表点が2つ(代表点A及びB)あり、代表点Aを示す位置情報を持つ施設情報の数と、代表点Bを示す位置情報を持つ施設情報の数とが1対2である場合(例えば、10個の施設情報が、代表点Aを示す位置情報を持ち、20個の施設情報が、代表点Bを示す位置情報を持っている場合)の、位置情報の変更方法を示す図である。
【0057】
図8の例では、代表点Aを示していた位置情報をもつ施設の代表点を代表点Aの周りに1つ配置(位置情報を変更)する度に、代表点Bを示していた位置情報を持つ施設の代表点を代表点Bの周りに2つ配置している。このように実装することで、極力、元の代表点の周りに、変更後の施設の代表点が来るため、位置情報の大きな変化を避けることが可能となる。
【0058】
S617において、必要な施設情報の数の点を建物40内に確保できない場合には(S617のNo)、位置情報変更部140は、まず建物40内にそれぞれの元の代表点の周辺に配置すべき代表点を、その数に応じて配置していく(S621)。この処理は、S619に準じてなされる。そして、建物40内に配置できなかった代表点を、建物40外の、なるべく元の代表点の近傍の位置に配置する(S623)。
【0059】
S603において、処理対象の施設情報の位置情報(代表点に対応)が建物40外である場合には(S603のNo)、位置情報変更部140は、近くに建物40内に入っていない十分な数の点があるか否かを判別する(S625)。十分な数の点がある場合には(S625のYes)、位置情報変更部140は、建物40外であって元の代表点の近傍に、位置が重複していた施設情報の代表点を再配置する(位置情報を変更する)(S627)。
【0060】
S627の処理を、
図9を参照しながら説明する。建物40A及び40Bの外(つまり屋外)に存在する元の代表点の近くに、新たに代表点(施設の位置)を配置しなおす場合の具体例を示す図である。
図9の例では、元の代表点の近くに建物40A及び40Bが存在するものの、その外側(屋外)に十分な点が確保できる場合に、位置が重複していた施設の代表点を、元の代表点の周りに配置し直す(位置情報の値を変更する)場合の例を示している。
【0061】
S625において、元の代表点の近傍に、建物40に入っていない十分な数の点が確保できない場合には(S625のNo)、位置情報変更部140は、まず建物40外にできる限りの数の代表点を配置し(元の代表点の近傍の建物40外となる位置を指すように位置情報を変更し)、残った情報を、建物40内に配置する(位置情報を変更する)。
【0062】
このようにすることで、なるべく元の代表点から大きな位置変更なく、更に建物40内外といった位置の属性をなるべく変化させずに、位置情報を一意に設定することが可能となる。
【0063】
(3.2 施設情報提供の処理)
以下、
図10を参照しながら、サーバ100の施設情報提供に係る処理の流れを説明する。
図10は、位置情報提供にかかるサーバ100の処理の流れを示すフローチャートである。
【0064】
尚、この処理は、例えばクライアント300から施設情報の取得要求をサーバ100が受信した場合や、クライアント300へ施設情報をサーバ100が(クライアント300からの要求なしに)主体的に配信する場合等に行われる。
【0065】
まず、第1情報取得部150は、サービス提供部120からの要求に基づき、施設DB110から施設情報を取得する(S1001)。そして、第1情報取得部150は、当該施設情報に含まれる位置情報(緯度経度)を出力し、第2情報取得部160は、当該位置情報をキーとしてサーバ200に対して施設情報の取得要求を送信する(S1003)。
【0066】
第2情報取得部160がサーバ200から施設情報を取得すると、サービス提供部120は、第1情報取得部150が取得した施設DBの施設情報、及び第2情報取得部160がサーバ200から取得した施設DB210内の施設情報とを併せた画面情報(例えば、HTML(HyperText Markup Language等で記載)を生成して、通信インタフェース170を介してクライアント300へ送信する(S1005)。
【0067】
(4 本実施形態の効果)
以上説明したように、本実施形態のサーバ100は、位置情報を一意に設定することで、施設に係る情報である施設情報を、1対1で対応づけることを可能としている。また、位置情報を一意にする際に、位置情報の値の最も低い位(本実施形態であればミリ秒)から順番に値を変更するようにしているため、位置の変更を最小限に抑え、地図上の位置表示等への影響を最低限に抑えている。
【0068】
また、施設IDではなく、施設情報を対応付けるキーを位置情報とすることで、たとえ施設IDの値がかわったり、位置情報を知りえなかったりする場合であっても、施設DB110及び210の2つの施設情報を併せた情報を提供することが可能となる。
【0069】
(5 付記事項)
尚、前述の各実施形態の構成は、組み合わせたり或いは一部の構成部分を入れ替えたりしてもよい。また、本発明の構成は前述の実施形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加えてもよい。