以下、情報処理装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において、画面上の相対位置情報と、絶対位置を示す絶対位置情報などを含む第二位置情報とを対応付けた情報である1以上の位置情報を格納しており、現在位置情報を取得し、当該現在位置情報に対応する位置である現在相対位置情報が視覚的に認識可能なように当該位置を示す情報(印など)を画面上に出力する情報処理装置について説明する。
また、本実施の形態において、時刻、または場所、または近くに居る人に応じて、現在位置が表示される画像が切り替わる情報処理装置について説明する。
図1は、本実施の形態における情報処理装置1のブロック図である。情報処理装置1は、画像格納部101、位置情報格納部102、撮影部103、手書入力受付部104、画像構成部105、画像蓄積部106、受付部107、相対位置情報取得部108、位置情報蓄積部109、時刻取得部110、場所情報取得部111、人情報取得部112、画像出力部113、現在位置情報取得部114、現在相対位置情報取得部115、現在相対位置情報出力部116を具備する。
現在相対位置情報取得部115は、近距離第二位置情報取得手段1151、近距離相対位置情報取得手段1152、現在相対位置情報取得手段1153を具備する。
画像格納部101は、1以上の画像を格納し得る。画像格納部101は、画像(後述する第一画像)と第二画像を格納しても良い。第二画像は、画像とは異なる平面である第二平面を構成する画像である。1以上の各画像は、例えば、撮影された画像、手書き入力された画像である。撮影された画像とは、例えば、街の看板に描かれた地図をカメラ(撮影部103)で撮影して取得された地図画像である。また、手書き入力された画像とは、手書き入力された地図の画像である。また、画像は、例えば、イラスト地図である。また、画像は、通常、地図であるが、地図でなくても良い。また、画像は、ウェブからダウンロードした画像でも、記録媒体(可搬型メモリなど)に格納されていた画像でも良い。また、画像は、あらかじめ記録されている画像や写真に手書き等で追加の情報を加えた画像でも良い。また、画像は、ビットマップでも良いし、ベクターデータでも良い。また、文字コードの集合でも良い。つまり、画像のデータフォーマット等は問わず、画像は、表示され得る情報であれば良い。なお、例えば、第一画像が相対地図で、第二画像が絶対地図である。相対地図とは、(緯度,経度)の絶対位置の情報を有しない地図であり、例えば、人が記載したイラスト地図や、地図の写真などである。絶対地図とは、(緯度,経度)の絶対位置の情報を有する正確な地図であり、航空写真により取得された地図や、企業が提供する正確な地図である。さらに、画像格納部101は、2以上の異なる画像を格納していることは好適である。2以上の異なる画像とは、例えば、イラスト地図と、当該イラスト地図に対応する場所の航空写真等である。また、画像格納部101は、画像が検索されるための条件を示す検索条件情報を、当該画像と対応付けて保持していることは好適である。検索条件情報は、例えば、時刻情報、場所情報、近隣人情報のうちの1以上の情報を有する。時刻情報は、時刻や時間に関する情報である。時刻情報は、時間の幅がある情報(例えば、「10:00−17:00」など)でも良い。場所情報は、場所に関する情報であり、特定の地点の位置を示す情報や、場所の領域を示す情報(矩形の領域を特定する位置情報(緯度,経度)の情報の集合など)などである。近隣人情報とは、情報処理装置1の近くに居る人に関する情報である。近隣人情報は、人の携帯端末(携帯電話なども含む)の識別情報(電話番号やIPアドレスやMACアドレスなど)や、人の氏名やIDなどである。
画像格納部101は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。画像格納部101に画像が記憶される過程は問わない。例えば、記録媒体を介して画像が画像格納部101で記憶されるようになってもよく、通信回線等を介して送信された画像が画像格納部101で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された画像が画像格納部101で記憶されるようになってもよい。
位置情報格納部102は、1以上の位置情報を格納し得る。位置情報とは、相対位置情報と第二位置情報とを対応付けた情報である。「対応付けた情報」とは、2つの情報(ここでは、相対位置情報と第二位置情報)を含む情報でも良いし、2つの情報をリンク付け、当該2つの情報を引き出すための情報でも良い。相対位置情報とは、ディスプレイに表示されている画像上の相対的な位置を示す情報である。相対位置情報は、例えば、画像上の座標位置を示す情報(x,y)や、縦横、矩形であるブロックで区切られた画像上のブロックを特定するIDなどである。第二位置情報とは、画像とは異なる平面である第二平面上の位置を示す情報である。第二位置情報とは、例えば、絶対位置を示す情報である絶対位置情報である。絶対位置情報は、例えば、(緯度,経度)である。なお、かかる場合の第二平面は、地球の平面ととらえた場合の地表である。
位置情報格納部102は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。位置情報格納部102に位置情報が記憶される過程は問わない。例えば、記録媒体を介して位置情報が位置情報格納部102で記憶されるようになってもよく、通信回線等を介して送信された位置情報が位置情報格納部102で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された位置情報が位置情報格納部102で記憶されるようになってもよい。
撮影部103は、写真を撮影する。撮影部103は、通常、いわゆるカメラである。撮影する対象は地図であることが好適であるが、地図以外でも良い。
手書入力受付部104は、手書き入力を受け付ける。手書入力手段は、いわゆるペンやマウスやキーボードの十字キーなど、何でも良い。手書入力受付部104は、手書入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
画像構成部105は、手書入力受付部104が受け付けた手書き入力の情報から画像を構成する。画像構成部105は、例えば、手書き入力された場合に、手書入力手段の軌跡を示す位置の情報群(例えば、座標情報群)から、画像を構成する。なお、画像構成部105は、手書入力受付部104が受け付けた手書き入力の情報である座標情報群をそのまま画像蓄積部106に渡しても良い。かかる処理も、画像を構成する処理と考える。画像構成部105の処理は、公知技術であるので、詳細な説明を省略する。画像構成部105は、通常、MPUやメモリ等から実現され得る。画像構成部105の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
画像蓄積部106は、撮影部103が撮影して、取得した画像を、画像格納部101に蓄積する。また、画像蓄積部106は、画像構成部105が構成した画像を、画像格納部101に蓄積する。画像蓄積部106は、通常、MPUやメモリ等から実現され得る。画像蓄積部106の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
受付部107は、ユーザから各種の指示を受け付ける。指示とは、例えば、画像や第二画像を出力する指示である。また、指示とは、例えば、画像出力部113が出力している画像や第二画像に対する指示を受け付ける。画像や第二画像に対する指示とは、例えば、後述する位置情報を蓄積するために、画像および第二画像に対する指示である。また、第二画像に対する指示とは、例えば、出力されている第二画像の一の位置を指示し、当該第二画像の一の位置に対応する画像上の相対位置を出力するための指示である。受付部107は、撮影指示も受け付ける。指示の入力手段は、ペンや指やマウスやボタンやメニュー画面によるもの等、何でも良い。受付部107は、ペンやマウス等の入力手段のデバイスドライバーや、タッチパネルや、メニュー画面の制御ソフトウェア等で実現され得る。
相対位置情報取得部108は、指示を受け付けた画像上の相対位置情報(例えば、座標情報)を取得する。なお、相対位置情報とは、指示に対応する画像上の位置を示す情報である。相対位置情報取得部108は、通常、MPUやメモリ等から実現され得る。相対位置情報取得部108の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
位置情報蓄積部109は、相対位置情報取得部108が取得した相対位置情報(例えば、座標情報)と、現在位置情報取得部114が取得した現在位置情報(例えば、(緯度,経度))とから位置情報を構成し、当該位置情報を、位置情報格納部102に蓄積する。なお、ここでの現在位置情報は、通常、情報処理装置1の絶対位置を示す情報であり、かかる場合、現在絶対位置情報とも言う。また、位置情報蓄積部109は、相対位置情報取得部108が取得した相対位置情報と、後述する現在位置情報取得部117が取得した第二位置情報とから位置情報を構成し、当該位置情報を、位置情報格納部102に蓄積しても良い。位置情報蓄積部109は、通常、MPUやメモリ等から実現され得る。位置情報蓄積部109の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
時刻取得部110は、現在時刻を取得する。時刻取得部110は、情報処理装置1が保持している時計から現在時刻を取得しても良いし、外部の装置(例えば、NTPサーバ)から現在時刻を取得しても良い。時刻取得部110は、通常、MPUやメモリ等から実現され得る。時刻取得部110の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
場所情報取得部111は、現在の場所に関する情報である現在場所情報を取得する。現在場所情報は、(緯度,経度)でも良いし、住所や、場所を特定するIDなどでも良い。場所情報取得部111は、例えば、GPS受信機、IRタグリーダーなどで実現され得る。
人情報取得部112は、情報処理装置1の近くに居る人に関する情報である近隣人情報を取得する。近隣人情報は、情報処理装置1の近くに居る人が保持している携帯端末(携帯電話も含む)の識別情報(電話番号やMACアドレスなど)や、情報処理装置1の近くに居る人の氏名や識別番号等でも良い。人情報取得部112は、例えば、赤外線受光手段や、ブルーツース(登録商標)などの無線通信手段や、氏名や識別番号の入力(キーボードやペンなどの入力手段による入力)を受け付ける入力受付手段などである。
画像出力部113は、画像格納部101の画像を出力する。画像出力部113は、ユーザの指示に応じて、画像格納部101の画像を出力することは好適である。画像出力部113は、画像格納部101に格納されている2以上の画像のうち、一の画像を出力することは好適である。画像出力部113は、現在時刻に応じて、画像格納部101に格納されている2以上の画像のうち、一の画像を選択して、出力しても良い。画像出力部113は、現在場所情報に応じて、画像格納部101に格納されている2以上の画像のうち、一の画像を選択して、出力しても良い。画像出力部113は、近隣人情報に応じて、画像格納部101に格納されている2以上の画像のうち、一の画像を選択して、出力しても良い。ここで、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラム等への処理結果の引渡し等を含む概念である。画像出力部113は、ディスプレイ等の出力デバイスを含むと考えても含まないと考えても良い。画像出力部113は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
現在位置情報取得部114は、第二平面上の一の位置を示す現在位置情報を取得する。現在位置情報取得部114は、例えば、現在地点の絶対位置を示す現在絶対位置情報を取得する。この現在絶対位置情報は、現在位置情報の一種である。そして、かかる場合、現在位置情報は、例えば、(緯度,経度)である。現在位置情報取得部114は、GPS受信機で実現されても良い。また、現在位置情報取得部114は、携帯電話の3つの局の電波強度を用いて、現在位置情報を取得する機能を有しても良い。かかる機能は公知技術であるので、詳細な説明を省略する。
現在相対位置情報取得部115は、位置情報格納部102に格納されている1以上の位置情報を用いて、現在位置情報取得部114(または、後述する現在位置情報取得部117)が取得した現在位置情報に対応する、画像上の相対位置を示す情報である現在相対位置情報を取得する。現在相対位置情報取得部115は、2つの位置情報を用いて、現在位置情報に対応する現在相対位置情報を取得しても良いし、3つ以上の位置情報を用いて、現在位置情報に対応する現在相対位置情報を取得しても良い。現在相対位置情報取得部115は、多数の位置情報を用いて、現在位置情報に対応する現在相対位置情報を取得する方が好ましい。多数の位置情報を用いれば、地図画像の歪みなどにも、誤差が少なく、現在相対位置情報を取得できる。現在相対位置情報は、例えば、座標情報(x,y)である。現在相対位置情報取得部115は、例えば、近距離第二位置情報取得手段1151、近距離相対位置情報取得手段1152、および現在相対位置情報取得手段1153を用いて、現在相対位置情報を取得する。
現在相対位置情報取得部115は、通常、MPUやメモリ等から実現され得る。現在相対位置情報取得部115の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
近距離第二位置情報取得手段1151は、1以上の第二位置情報を、位置情報格納部102から取得する。近距離第二位置情報取得手段1151は、現在位置情報取得部114が取得した現在位置情報に最も近い1以上(例えば、予め決められたn個(nは1以上の自然数))の第二位置情報を、位置情報格納部102から取得することは好適である。また、現在位置情報取得部114が取得した現在位置情報が示す位置に近い(距離が近い)上位の3つの絶対位置情報を、位置情報格納部102から取得することは好適である。また、近距離第二位置情報取得手段1151は、現在位置情報で示される位置を原点とした二次元平面上の第1象限から第4象限に属する第二位置情報を、各象限ごとに均等な数となるように、位置情報格納部102から取得することは好適である。近距離第二位置情報取得手段1151は、通常、MPUやメモリ等から実現され得る。近距離第二位置情報取得手段1151の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
近距離相対位置情報取得手段1152は、近距離第二位置情報取得手段1151が取得した1以上の第二位置情報のぞれぞれに対応する1以上の相対位置情報を、位置情報格納部102から取得する。近距離相対位置情報取得手段1152は、近距離第二位置情報取得手段1151が取得した3つの第二位置情報のぞれぞれに対応する3つの相対位置情報を、位置情報格納部102の位置情報を用いて取得することは好適である。近距離相対位置情報取得手段1152は、3つの第二位置情報のぞれぞれをキーとして、位置情報格納部102を検索し、3つの相対位置情報を取得しても良い。近距離第二位置情報取得手段1151が取得した第二位置情報が3つ以外の場合では、近距離相対位置情報取得手段1152は、第二位置情報のぞれぞれに対応する相対位置情報を、位置情報格納部102の位置情報から取得する。近距離相対位置情報取得手段1152は、通常、MPUやメモリ等から実現され得る。近距離相対位置情報取得手段1152の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
現在相対位置情報取得手段1153は、現在位置情報と、近距離第二位置情報取得手段1151が取得したn個の第二位置情報と、近距離相対位置情報取得手段1152が取得したn個の相対位置情報とを用いて、現在位置情報に対応する現在相対位置情報を取得する。また、現在相対位置情報取得手段1153は、現在位置情報と、近距離第二位置情報取得手段1151が取得した1以上の第二位置情報と、近距離相対位置情報取得手段1152が取得した1以上の相対位置情報とを用いて、現在位置情報に対応する現在相対位置情報を取得する。現在相対位置情報取得手段1153は、1つ以上の第二位置情報(xn,yn)と現在位置情報(x0,y0)との距離rnの逆数に基づいた係数による、相対位置情報(an,bn)の集合の加重平均の値として現在相対位置情報(a0,b0)を取得することは好適である。(a0,b0)は距離rnの逆数を重みとした(an,bn)の加重平均で求めるの、具体的には、例えば、以下の数式1により、現在相対位置情報取得手段1153は、現在相対位置情報を取得する。
また、現在相対位置情報取得手段1153または図示しない補正手段は、各位置情報(例えば、絶対座標と相対座標を関連させた座標)の歪みを補正する機能を有することは好適である。つまり、現在相対位置情報取得手段1153または補正手段は、絶対座標における2つの位置情報を結んだ線分と、それに対応する相対座標における2つの位置情報を結んだ線分の長さの比のばらつきを補正する機能を有することは好適である。具体的には、現在相対位置情報取得手段1153または補正手段は、距離rnの逆数に加えて、線分比の逆数も、上記の重みに掛け合わせた係数による加重平均を算出することにより、現在相対位置情報(a0,b0)を取得することは、さらに好適である。
さらに具体的には、現在絶対位置をT、最も近い近距離絶対位置をX0、その相対位置をX'0、その他の近距離絶対位置をXn、それらの相対位置をX'nと定義する、とする。そして、X0からTおよびXnに向かうベクトルをそれぞれτ,ξnとする。また、TからXnに向かうベクトルをρnとする。また、それらのベクトルの大きさをt,xn,rnとする。また、X'0からT'およびX'nに向かうベクトルをそれぞれτ',ξ'nとする。また、T'からX'nに向かうベクトルをρ'nとする。さらに、それらベクトルの大きさをt',x'nとする。かかる場合、既知の位置X'0から現在相対位置T'へのベクトルτ'は「xn/x'n*rn」を重みとしたξ'nの加重平均としてあらわされる。
つまり、τ'は、以下の数式2であらわされる。
現在位置情報が(x0,y0)であり、近距離第二位置情報取得手段1151が、3つの絶対位置情報(x1,y1)(x2,y2)(x3,y3)を取得し、近距離相対位置情報取得手段1152が、3つの相対位置情報(a1,b1)(a2,b2)(a3,b3)を取得した場合、現在相対位置情報取得手段1153は、2点(x1,y1)(x2,y2)により構成されるベクトルαを算出し、2点(x1,y1)(x3,y3)により構成されるベクトルβを算出し、2点(x1,y1)(x0,y0)により構成されるベクトル「pα+qβ(p,qは定数)」を算出し、2点(a1,b1)(a2,b2)により構成されるベクトルα'を算出し、2点(a1,b1)(a3,b3)により構成されるベクトルβ'を算出し、ベクトル「pα'+qβ'」と、点(a1,b1)から、現在相対位置情報(a0,b0)を取得する。
また、現在相対位置情報取得手段1153または図示しない補正手段は、このα、βの斜交座標系における計算でも歪みの補正を行うことは好適である。歪みの補正を行った場合、|α'|/|α|=A、|β'|/|β|=Bとすると、既知の近距離相対位置(a1,b1)から現在相対位置(a0,b0)までのベクトルγは「γ={Bp/(A+B)}α+{Aq/(A+B)}β」となる。
また、α、βの斜交座標系による計算の場合、(x1,y1)〜(x3,y3)が直線に近い形で選択された場合、α、βの相対的方向がα'、β'の相対的方向と逆向きになってしまうケースが多く出てくる。そのため、(x1,y1)〜(x3,y3)が直線とならないように3番目の(x3,y3)を選択するため、αとβ候補の角度をベクトルの内積から調べ、ある一定の敷居値(150°や120°など)以下でなければ別の(x4,y_4)以降を三番目の近距離絶対位置として、現在相対位置情報取得手段1153は採択することは、さらに好適である。さらに、現在相対位置情報取得手段1153は、上記と同様の目的で、象限の異なる3個の点を候補とすることは、さらに好適である。
現在相対位置情報取得手段1153は、通常、MPUやメモリ等から実現され得る。現在相対位置情報取得手段1153の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
現在相対位置情報出力部116は、現在相対位置情報が示す画像上の相対位置を、画像上に出力する。現在相対位置情報出力部116は、例えば、現在相対位置情報が示す画像上の相対位置に、特定の図形(円や矢印や三角など)や文字などを出力する。なお、現在相対位置情報出力部116が画像上の相対位置を出力する場合、通常、画像が出力されている。ここで、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラム等への処理結果の引渡し等を含む概念である。現在相対位置情報出力部116は、ディスプレイ等の出力デバイスを含むと考えても含まないと考えても良い。現在相対位置情報出力部116は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、情報処理装置1の動作について図2のフローチャートを用いて説明する。
(ステップS201)受付部107は、カメラでの撮影指示を受け付けたか否かを判断する。撮影指示を受け付ければステップS202に行き、撮影指示を受け付けなければステップS204に行く。
(ステップS202)撮影部103は、撮影を実施し、画像を取得する。
(ステップS203)画像蓄積部106は、ステップS202で取得された画像を、画像格納部101に蓄積する。ステップS201に戻る。
(ステップS204)手書入力受付部104は、手書き入力を受け付けたか否かを判断する。手書き入力を受け付ければステップS205に行き、手書き入力を受け付けなければステップS206に行く。
(ステップS205)画像構成部105は、手書き入力された情報から、画像を構成する。ステップS203に行く。
(ステップS206)受付部107は、指示の入力を受け付けたか否かを判断する。指示の入力を受け付ければステップS207に行き、指示の入力を受け付けなければステップS211に行く。なお、ここでの一の指示は、出力されている画像(通常、地図)上の1点へのポイント指示である。なお、一の指示は、出力されている画像(通常、地図)上の一の領域のポイント指示でも良い。また、受付部107が受け付ける指示は、2以上でも良い。
(ステップS207)相対位置情報取得部108は、ステップS206で受け付けられた指示に対応する、画像上の位置情報(例えば、座標情報)を取得する。なお、この位置情報を相対位置情報という。
(ステップS208)現在位置情報取得部114は、第二位置情報(例えば、現在絶対位置情報)を取得する。
(ステップS209)位置情報蓄積部109は、ステップS207で取得された相対位置情報と、ステップS208で取得された第二位置情報を対応付ける位置情報を構成する。
(ステップS210)位置情報蓄積部109は、ステップS209で構成した位置情報を、位置情報格納部102に蓄積する。ステップS201に戻る。
(ステップS211)情報処理装置1は、経路案内処理を行う。経路案内処理について、図3のフローチャートを用いて説明する。
なお、図2のフローチャートにおいて、カメラ撮影をした画像や、手書き入力された画像を蓄積する処理は必須ではない。
また、図2のフローチャートにおいて、位置情報を蓄積する処理も必須ではない。
また、図2のフローチャートにおいて、経路案内の指示を受け付けた場合のみ、ステップ211の経路案内の処理を行っても良い。
また、図2のフローチャートにおいて、ステップS206の指示の入力の受け付け前に、通常、画像は出力されている。
さらに、図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS211の経路案内処理について、図3のフローチャートを用いて説明する。
(ステップS301)時刻取得部110は、現在時刻を取得する。なお、ここでの現在時刻の取得は必須ではない。
(ステップS302)場所情報取得部111は、現在場所情報を取得する。なお、ここでの現在場所情報の取得は必須ではない。
(ステップS303)人情報取得部112は、情報処理装置1の近くに居る人に関する情報である近隣人情報を取得する。なお、ここでの近隣人情報の取得は必須ではない。
(ステップS304)画像出力部113は、ステップS301からステップS303で取得された現在時刻、現在場所情報、近隣人情報のうちの0、または1以上の情報を用いて、画像格納部101から画像を選択して、読み出す。画像出力部113は、例えば、画像に対応付けられている検索条件情報に、現在時刻、現在場所情報、近隣人情報のうちの1以上の情報が合致するか否かを判断し、合致する検索条件情報に対応する画像を読み出す。なお、ここで、画像出力部113は、常に一の画像を読み出しても良い。また、画像出力部113は、現在時刻、現在場所情報、近隣人情報のうちのいずれの情報も用いず、かつ、複数の画像が画像格納部101に格納されている場合、ランダムに一の画像を取得しても良い。
(ステップS305)画像出力部113は、ステップS304で読み出した画像を出力する。
(ステップS306)現在相対位置情報取得部115は、現在相対位置情報の取得処理を行う。現在相対位置情報の取得処理について、図4のフローチャートを用いて説明する。
(ステップS307)現在相対位置情報出力部116は、現在相対位置情報を、出力されている画像上に出力する。上位処理にリターンする。なお、現在相対位置情報の出力とは、現在相対位置情報が示す位置を視覚的に特定する態様で(当該位置を示す印など)出力することである。
なお、図3のフローチャートにおいて、現在相対位置情報の出力態様は問わない。
また、図3のフローチャートにおいて、情報処理装置1が移動している場合に、現在相対位置情報の出力を繰り返し行うことは、いわゆる経路案内に相当する処理である。つまり、図3の経路案内処理は、繰り返す行われることは好適である。
次に、ステップS306の現在相対位置情報の取得処理について、図4のフローチャートを用いて説明する。
(ステップS401)現在位置情報取得部114は、現在位置情報(x0,y0)を取得する。
(ステップS402)近距離第二位置情報取得手段1151は、現在位置情報(x0,y0)と距離が近い、3つの第二位置情報(x1,y1)(x2,y2)(x3,y3)を、位置情報格納部102が有する3以上の位置情報に含まれる3以上の第二位置情報から取得する。
(ステップS403)近距離相対位置情報取得手段1152は、ステップS402で取得された3つの第二位置情報のぞれぞれと対になる、3つの相対位置情報(a1,b1)(a2,b2)(a3,b3)を、位置情報格納部102から取得する。
(ステップS404)現在相対位置情報取得手段1153は、2点(x1,y1)(x2,y2)により構成されるベクトルαを算出する。そして、現在相対位置情報取得手段1153は、2点(x1,y1)(x3,y3)により構成されるベクトルβを算出する。次に、現在相対位置情報取得手段1153は、2点(x1,y1)(x0,y0)により構成されるベクトル「pα+qβ(p,qは定数)」を算出する。
(ステップS405)現在相対位置情報取得手段1153は、2点(a1,b1)(a2,b2)により構成されるベクトルα'を算出する。
(ステップS406)現在相対位置情報取得手段1153は、2点(a1,b1)(a3,b3)により構成されるベクトルβ'を算出する。
(ステップS407)現在相対位置情報取得手段1153は、ベクトル「pα'+qβ'」を取得する。そして、現在相対位置情報取得手段1153は、ベクトル「pα'+qβ'」と、点(a1,b1)から、現在相対位置情報(a0,b0)を取得する。なお、点(a1,b1)と現在相対位置情報(a0,b0)は、それぞれ、ベクトル「pα'+qβ'」の始点と終点である。上位処理にリターンする。
なお、図4のフローチャートにおける現在相対位置情報の取得方法は、一例である。現在相対位置情報の取得は、1つの位置情報と現在位置情報とを用いてもできる。
以下、本実施の形態における情報処理装置1の具体的な動作について説明する。情報処理装置1の外観図は、例えば、図5である。情報処理装置1は、カメラと入力用のペンを具備する。カメラは、撮影部103である。ペンは、入力手段の一種である。
ユーザは、アミューズメント会場の入り口の手前に立てかけられているアミューズメント会場のイラスト地図の看板(図6参照)を、情報処理装置1のカメラを用いて、撮影した、とする。
次に、撮影部103は、図6のイラスト地図を撮影し、イラスト地図の画像を取得する。そして、画像蓄積部106は、取得されたイラスト地図の画像を、画像格納部101に蓄積する。
そして、ユーザは、図示しない入力手段(例えば、キーボードやボタンなど)により、撮影したイラスト地図が出力される条件である検索条件情報を入力した、とする。そして、受付部107は、検索条件情報を受け付ける。そして、図示しない検索条件情報蓄積部が、受け付けられた検索条件情報を、イラスト地図と対応付けて、画像格納部101に蓄積する。ここでは、受け付けられた検索条件情報は、「時刻情報(10:00−17:00),場所情報(x1,y1)(x4,y4)」である、とする。「時刻情報(10:00−17:00)」は、アミューズメント会場がオープンしている時間帯を示す。また、「場所情報(x1,y1)(x4,y4)」は、アミューズメント会場の領域を特定する(緯度,経度)の情報である。(x1,y1)は、アミューズメント会場の左上(北西)の位置の情報、(x4,y4)は、アミューズメント会場の右下(南東)の位置の情報である。なお、アミューズメント会場は、左上の点、右下の点で特定できる矩形の領域である、とする。かかるユーザの行為により、図7の「ID=1」のレコードが画像格納部101に蓄積された。なお、図7は、画像情報管理表である。画像情報管理表は、「ID」「画像」「検索条件情報」を有する。「検索条件情報」は、「時刻情報」「場所情報」「近隣人情報」を有する。「ID」は、レコードを識別する情報である。
また、ユーザは、情報処理装置1のペンを用いて、アミューズメント会場の手書きの地図を入力した、とする。次に、手書入力受付部104は、手書き入力を受け付ける。そして、画像構成部105は、手書き入力された情報から、アミューズメント会場の手書きの地図の画像を構成する。そして、画像蓄積部106は、取得されたイラスト地図の画像を、画像格納部101に蓄積する。
また、ユーザは、図示しない入力手段(例えば、キーボードやボタンなど)により、手書きの地図が出力される条件である検索条件情報「時刻情報(17:01−9:59)場所情報(x1,y1)(x4,y4)」を入力した、とする。そして、図示しない検索条件情報蓄積部が、受け付けられた検索条件情報を、手書きの地図と対応付けて、画像格納部101に蓄積する。かかるユーザの行為により、図6の「ID=2」のレコードが画像格納部101に蓄積された。
また、図7の画像情報管理表には、「ID=3」以降のレコードも格納された、とする。
かかる状況において、ユーザは、情報処理装置1を持って、アミューズメント会場に行った、とする。そして、ユーザは、図7の「ID=1」のイラスト地図を出力する指示を入力した、とする。
次に、受付部107は、「ID=1」のイラスト地図を出力する指示を受け付ける。そして、画像出力部113は、当該イラスト地図を画像格納部101から読み出し、ディスプレイに出力する。
次に、ユーザは、情報処理装置1に対して、画像に対する指示を入力する。この指示は、現在の位置を画像上で特定するための指示である。また、この画像に対する指示は、例えば、情報処理装置1の付属のペンを用いて、画面上にタッチすることにより行う。
次に、相対位置情報取得部108は、受け付けられた指示に対応する、画像上の位置情報(ここでは、(a1,b1))を取得する。相対位置情報取得部108の処理は公知技術である。
次に、現在位置情報取得部114は、第二位置情報(x1,y1)を取得する。ここで、第二位置情報(x1,y1)は、例えば、現在位置情報取得部114であるGPS受信機により取得された(緯度,経度)の情報である。
そして、位置情報蓄積部109は、取得された相対位置情報(a1,b1)と、取得された第二位置情報(x1,y1)を対応付ける位置情報「(a1,b1)(x1,y1)」を構成する。
次に、位置情報蓄積部109は、構成した位置情報「(a1,b1)(x1,y1)」を、位置情報格納部102に蓄積する。
同様に、ユーザは、アミューズメント会場を歩きながら、イラスト地図上において、自分が居る位置が分かった場合、ユーザは、当該位置を、ペンで指示する。かかる指示は、画像に対する指示である。そして、ユーザは、かかる指示を、何度か行う、とする。
ユーザの上記の指示により、図8に示すような位置情報管理表(ここでは、「画像ID=1」に対応する情報)が構成される。位置情報管理表は、「画像ID」「相対位置情報(x座標,y座標)」「第二位置情報(緯度,経度)」を有するレコードを1以上格納している。「相対位置情報(x座標,y座標)」「第二位置情報(緯度,経度)」は、複数組存在していても良い、ことは言うまでもない。
また、「画像ID=2」以降の画像に対しても、画像に対する指示が入力されることにより、図8に示す位置情報管理表が構成される。
ここで、例えば、図8に示す位置情報管理表が、情報処理装置1に存在している状況において、ユーザは、再度、アミューズメント会場を訪れた、とする。そして、ユーザは、情報処理装置1に対して、経路案内の指示を入力した、とする。すると、受付部107は、経路案内の指示を受け付ける。
そして、時刻取得部110は、情報処理装置1が保持している時計から、現在時刻「10:15」を取得する。
また、場所情報取得部111は、現在場所情報(xn,yn)を取得する。なお、(xn,yn)は、(経度,緯度)であり、(x1,y1)(x4,y4)で特定される矩形内に存在するものとする。
次に、人情報取得部112は、近隣人情報を取得できなかった、とする。
そして、画像出力部113は、現在時刻「10:15」、および現在場所情報(xn,yn)を用いて、画像管理表(図7)から画像を選択して、「ID=1」の画像を読み出す。次に、画像出力部113は、選択した画像(「ID=1」の画像)を出力する。なお、この画像は、アミューズメント会場を示すイラストの地図画像である。
次に、現在位置情報取得部114は、現在位置情報(x0,y0)を取得する。なお、ここでの現在位置情報(x0,y0)は、現在絶対位置情報である。
次に、近距離第二位置情報取得手段1151は、現在位置情報(x0,y0)と距離が近い、3つの第二位置情報(x1,y1)(x2,y2)(x3,y3)を、位置情報管理表が有する3以上の位置情報に含まれる3以上の第二位置情報から取得した、とする。
次に、近距離相対位置情報取得手段1152は、取得された3つの第二位置情報のぞれぞれと対になる、3つの相対位置情報(a1,b1)(a2,b2)(a3,b3)を、位置情報管理表から取得する。
次に、現在相対位置情報取得手段1153は、2点(x1,y1)(x2,y2)により構成されるベクトルαを算出する。そして、現在相対位置情報取得手段1153は、2点(x1,y1)(x3,y3)により構成されるベクトルβを算出する。次に、現在相対位置情報取得手段1153は、2点(x1,y1)(x0,y0)により構成されるベクトル「pα+qβ(p,qは定数)」を算出する。
次に、現在相対位置情報取得手段1153は、2点(a1,b1)(a2,b2)により構成されるベクトルα'を算出する。
さらに、現在相対位置情報取得手段1153は、2点(a1,b1)(a3,b3)により構成されるベクトルβ'を算出する。
次に、現在相対位置情報取得手段1153は、ベクトル「pα'+qβ'」を取得する。そして、現在相対位置情報取得手段1153は、ベクトル「pα'+qβ'」と、点(a1,b1)から、現在相対位置情報(a0,b0)を取得する。なお、点(a1,b1)と現在相対位置情報(a0,b0)は、それぞれ、ベクトル「pα'+qβ'」の始点と終点である。
次に、現在相対位置情報出力部116は、現在相対位置情報(a0,b0)により示される現在位置を、出力されているイラスト画像上に出力する。かかる出力例を図9に示す。図9において、網掛けの丸の箇所が現在位置である。
なお、図9に示したように、情報処理装置1において、タッチした場所、もしくは、イベントの行われる場所が点滅する機能を有する。また、タッチした場所の解説やイベント(ショー)のビデオも出力される。さらに、情報処理装置1において、現在時刻を基準としたショースケジュールが表示される。
以上、本実施の形態によれば、例えば、手書き入力された地図や、イラスト地図や、カメラで撮影された歪みのある地図等の、正確ではない地図を用いた経路案内ができる。つまり、本実施の形態によれば、相対位置情報と第二位置情報とを対応付けた情報である位置情報を位置情報格納部102に格納して利用するので、正確ではない地図を用いても、経路案内ができる。なお、正確ではない地図とは、地図上の各箇所の縮尺、サイズが均一でない地図、上下または左右などの一部、または全体に歪みがある地図などである。
また、本実施の形態によれば、ユーザが指示の入力を行うことにより、益々、精度の高い現在位置の出力、および経路案内が可能となる。なお、かかるユーザ指示を受け付け、位置情報を蓄積していく処理は、いわゆる学習機能である。
なお、本実施の形態によれば、出力される画像は、主として、地図であったが、地図以外のデータでも良い。例えば、出力される画像が顔の画像である場合、現在位置が移動することは、顔の上の移動することとなり、ゲーム性のある面白いアプリケーションを提供できることとなる。なお、地図以外のデータとは、例えば、自然を撮影した画像や、顔の画像や、絵画の画像など、何でも良い。かかることは他の実施の形態においても同様である。
また、本実施の形態の具体例において、画像出力部113は、現在時刻、現在場所情報、近隣人情報のうちの1以上の情報を用いて、画像格納部101から画像を選択して、出力した。しかし、画像出力部113のかかる画像の選択処理は必須ではない。
また、本実施の形態において、画像出力部113が近隣人情報に応じて画像の選択処理を行った場合、例えば、情報処理装置1が、恋人が近くにいると認識した場合、かわいいイラスト地図を選択し、出力する。また、例えば、情報処理装置1が、会社の上司が近くにいると認識した場合、ビジネスでも利用できる、通常の地図を選択し、出力するようなことは好適である。
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記憶媒体に、画像と、前記画像上の相対的な位置を示す相対位置情報と、前記画像上の相対的な位置を示す相対位置情報と、前記画像とは異なる平面である第二平面上の位置を示す第二位置情報とを対応付けた情報である1以上の位置情報を格納しており、コンピュータを、前記画像を出力する画像出力部と、前記第二平面上の一の位置を示す現在位置情報を取得する現在位置情報取得部と、前記記憶媒体に格納されている1以上の位置情報を用いて、前記現在位置情報取得部が取得した現在位置情報に対応する、前記画像上の相対位置を示す情報である現在相対位置情報を取得する現在相対位置情報取得部と、前記現在相対位置情報が示す画像上の相対位置を、前記画像上に出力する現在相対位置情報出力部を具備するものとして機能させるためのプログラム、である。
また、上記プログラムにおいて、前記記憶媒体には、3以上の位置情報が格納されており、前記現在相対位置情報取得部は、前記現在位置情報取得部が取得した現在位置情報が示す位置に近い上位3つの位置に対応する絶対位置情報を、前記記憶媒体から取得する近距離第二位置情報取得手段と、前記近距離第二位置情報取得手段が取得した3つの絶対位置情報のぞれぞれに対応する3つの相対位置情報を取得する近距離相対位置情報取得手段と、前記現在位置情報と、前記近距離第二位置情報取得手段が取得した3つの絶対位置情報と、前記近距離相対位置情報取得手段が取得した3つの相対位置情報とを用いて、前記現在位置情報に対応する現在相対位置情報を取得する現在相対位置情報取得手段とを具備するものとして、コンピュータを機能させるためのプログラム、であることは好適である。
また、上記プログラムにおいて、記憶媒体には、1以上の位置情報が格納されており、
前記現在相対位置情報取得部は、前記現在位置情報取得部が取得した現在位置情報に近い1以上の第二位置情報を、前記記憶媒体から取得する近距離第二位置情報取得手段と、前記近距離第二位置情報取得手段が取得した1以上の第二位置情報のぞれぞれに対応する1以上の相対位置情報を、前記記憶媒体から取得する近距離相対位置情報取得手段と、前記現在位置情報と、前記近距離第二位置情報取得手段が取得した1以上の第二位置情報と、前記近距離相対位置情報取得手段が取得した1以上の相対位置情報とを用いて、前記現在位置情報に対応する現在相対位置情報を取得する現在相対位置情報取得手段とを具備するものとして、コンピュータを機能させるためのプログラム、であることは好適である。
また、上記プログラムにおいて、前記近距離第二位置情報取得手段は、現在位置情報で示される位置を原点とした二次元平面上の第1象限から第4象限に属する第二位置情報を、各象限ごとに均等な数となるように、前記記憶媒体から取得するものとして、コンピュータを機能させるためのプログラム、であることは好適である。
また、上記プログラムにおいて、前記現在位置情報が(x0,y0)であり、前記近距離第二位置情報取得手段が、前記3つの第二位置情報(x1,y1)(x2,y2)(x3,y3)を取得し、前記近距離相対位置情報取得手段が、前記3つの相対位置情報(a1,b1)(a2,b2)(a3,b3)を取得した場合、前記現在相対位置情報取得手段は、前記2点(x1,y1)(x2,y2)により構成されるベクトルαを算出し、前記2点(x1,y1)(x3,y3)により構成されるベクトルβを算出し、前記2点(x1,y1)(x0,y0)により構成されるベクトル「pα+qbβ(p,qは定数)」を算出し、前記2点(a1,b1)(a2,b2)により構成されるベクトルα'を算出し、前記2点(a1,b1)(a3,b3)により構成されるベクトルβ'を算出し、ベクトル「pα'+qβ'」と、前記点(a1,b1)から、現在相対位置情報(a0,b0)を取得するものとして、コンピュータを機能させるためのプログラム、であることは好適である。
また、上記プログラムにおいて、前記現在相対位置情報取得手段は、1つ以上の近距離相対位置情報(xn,yn)と現在位置情報(x0,y0)との距離rnの逆数に基づいた係数による、相対位置情報(an,bn)の集合の加重平均の値として現在相対位置情報(a0,b0)を取得するものとして、コンピュータを機能させるためのプログラム、であることは好適である。
また、上記プログラムにおいて、前記画像出力部が出力している画像に対する指示を受け付ける受付部と、前記指示を受け付けた前記画像上の相対位置情報を取得する相対位置情報取得部と、前記相対位置情報取得部が取得した相対位置情報と、前記現在位置情報取得部が取得した現在位置情報とから位置情報を構成し、当該位置情報を、前記位置情報格納部に蓄積する位置情報蓄積部とをさらに具備するものとして、コンピュータを機能させるためのプログラム、であることは好適である。
また、上記プログラムにおいて、前記記憶媒体には、第二平面を構成する第二画像をも格納され、前記画像出力部は、前記第二画像をも出力し、前記受付部は、前記出力されている第二画像に対する指示をも受け付け、前記現在位置情報取得部は、前記第二画像上の前記指示に対応する位置を示す情報である第二位置情報を取得し、前記位置情報蓄積部は、前記相対位置情報取得部が取得した相対位置情報と、前記第二位置情報取得部が取得した第二位置情報とから位置情報を構成し、当該位置情報を、前記記憶媒体に蓄積するものとして、コンピュータを機能させるためのプログラム、であることは好適である。
また、上記プログラムにおいて、前記記憶媒体には、2以上の異なる画像が格納されており、前記画像出力部は、前記記憶媒体に格納されている2以上の画像のうち、一の画像を出力するものとして、コンピュータを機能させるためのプログラム、であることは好適である。
また、上記プログラムにおいて、コンピュータを、現在時刻を取得する時刻取得部として、さらに機能させるためのプログラムであり、前記画像出力部は、前記現在時刻に応じて、前記記憶媒体に格納されている2以上の画像のうち、一の画像を選択して、出力するものとして、コンピュータを機能させるためのプログラム、であることは好適である。
また、上記プログラムにおいて、コンピュータを、現在の場所に関する情報である現在場所情報を取得する場所情報取得部として、さらに機能させるためのプログラムであり、前記画像出力部は、前記現在場所情報に応じて、前記記憶媒体に格納されている2以上の画像のうち、一の画像を選択して、出力するものとして、コンピュータを機能させるためのプログラム、であることは好適である。
また、上記プログラムにおいて、コンピュータを、情報処理装置の近くに居る人に関する情報である近隣人情報を取得する人情報取得部として、さらに機能させるためのプログラムであり、前記画像出力部は、前記近隣人情報に応じて、前記記憶媒体に格納されている2以上の画像のうち、一の画像を選択して、出力するものとして、コンピュータを機能させるためのプログラム、であることは好適である。
また、上記プログラムにおいて、写真を撮影する撮影部と、前記撮影部が撮影して、取得した画像を、前記記憶媒体に蓄積する画像蓄積部とをさらに具備するものとしてコンピュータを機能させるためのプログラム、であることは好適である。
さらに、上記プログラムにおいて、手書き入力を受け付ける手書入力受付部と、前記手書入力受付部が受け付けた手書き入力の情報から画像を構成する画像構成部と、前記画像構成部が構成した画像を、前記記憶媒体に蓄積する画像蓄積部とをさらに具備するものとしてコンピュータを機能させるためのプログラム、であることは好適である。
(実施の形態2)
本実施の形態において、2つの画像(第一画像と第二画像)が出力されている状況において、ユーザが第二の画像上の一の位置を指示した場合、当該一の位置に対応する第一画像上の位置を示す現在相対位置を、第一画像上に出力する情報処理装置2について説明する。
図10は、本実施の形態における情報処理装置2のブロック図である。
情報処理装置2は、画像格納部101、位置情報格納部102、撮影部103、手書入力受付部104、画像構成部105、画像蓄積部106、受付部107、相対位置情報取得部108、位置情報蓄積部109、時刻取得部110、場所情報取得部111、人情報取得部112、画像出力部113、現在相対位置情報取得部115、現在相対位置情報出力部116、現在位置情報取得部117を具備する。
現在位置情報取得部117は、受付部107が受け付けた第二画像に対する指示に対応する位置を示す情報である現在位置情報、または第二位置情報を取得する。かかる場合の現在位置情報、または第二位置情報は、例えば、第二画像上の相対的な位置を示す座標情報(X,Y)である。現在位置情報取得部117は、通常、MPUやメモリ等から実現され得る。現在位置情報取得部117の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、本実施の形態における情報処理装置2の動作について図11のフローチャートを用いて説明する。図11のフローチャートにおいて、図2のフローチャート同一のステップについて、説明を省略する。
(ステップS1101)受付部107は、2つの画像の出力指示を受け付けたか否かを判断する。出力指示を受け付ければステップS1102に行き、出力指示を受け付けなければステップS1104に行く。
(ステップS1102)画像出力部113は、画像格納部101から第一画像と第二画像とを読み出す。
(ステップS1103)画像出力部113は、ステップS1102で読み出した第一画像と第二画像とをディスプレイに出力する。ステップS1101に戻る。
(ステップS1104)受付部107は、第一画像と第二画像とを出力中であるか否かを判断する。第一画像と第二画像とを出力中であればステップS1105に行き、出力中でなければステップS1101に戻る。
(ステップS1105)受付部107は、現在の情報処理装置2のモードが位置情報蓄積モードであるか否かを判断する。位置情報蓄積モードであればステップS1106に行き、位置情報蓄積モードでなければステップS1108に行く。なお、ここで、情報処理装置2には、少なくとも位置情報蓄積モードと、相対位置情報出力モードの2つのモードがあり、いずれか一のモードである、とする。また、図示しない手段により、モードが切り替えられる、とする。モードの切り替えは、例えば、ユーザのモード切替指示の入力による。また、位置情報蓄積モードとは、第一画像の一の位置を示す相対位置情報、および第二画像の一の位置を示す第二位置情報とを有する位置情報を、位置情報格納部102に蓄積するモードであり、学習モードとも言うこととする。また、相対位置情報出力モードとは、指示された第二画像上の一の位置に対応する、第一画像上の一の位置を示す相対位置情報を出力するモードである。相対位置情報出力モードにおいて、指示された第一画像上の一の位置に対応する、第二画像上の一の位置を示す相対位置情報を出力しても良い。
(ステップS1106)受付部107は、第一画像および第二画像のぞれぞれに対する指示(2つの指示)の入力を受け付けたか否かを判断する。指示を受け付ければステップS207に行き、指示を受け付けなければステップS1106に戻る。
(ステップS1107)現在位置情報取得部117は、第二画像に対して指示された位置を示す第二位置情報を取得する。なお、マウス等のポインティングデバイスで指示された位置情報(例えば、座標情報)を取得する技術は公知技術である。ステップS209に行く。
(ステップS1108)受付部107は、第二画像に対する指示の入力を受け付けたか否かを判断する。指示を受け付ければステップS1109に行き、指示を受け付けなければステップS1101に戻る。
(ステップS1109)現在相対位置情報取得部115は、現在相対位置情報の取得処理を行う。現在相対位置情報の取得処理について、図12のフローチャートを用いて説明する。ステップS307に行く。
なお、図11のフローチャートのステップS1109における現在相対位置情報の取得処理は、一例である、実施の形態1で説明した現在相対位置情報の取得処理方法など、田の現在相対位置情報の取得処理方法を適用しても良い。
次に、ステップS1109の現在相対位置情報の取得処理について、図12のフローチャートを用いて説明する。
(ステップS1201)現在位置情報取得部117は、第二画像に対して指示された位置を示す現在位置情報を取得する。現在位置情報は、例えば、指示された第二画像上の座標情報である。
(ステップS1202)近距離第二位置情報取得手段1151は、第二画像の原点を、現在位置情報で示される位置とし、第1象限から第4象限までの各象限に属する点(位置の情報)の条件を取得する。
(ステップS1203)近距離第二位置情報取得手段1151は、ステップS1202で取得した条件を用いて、第1象限から第4象限までの各象限に属するn個(nは1以上の自然数)の第二位置情報を取得する。ここで、近距離第二位置情報取得手段1151は、各象限に対して、原点(現在位置情報)に距離が最も近いn個の第二位置情報を取得することは好適である。
(ステップS1204)近距離相対位置情報取得手段1152は、ステップS1203で取得された4つの象限のn個(合計4n個)の第二位置情報のぞれぞれに対応する4n個の相対位置情報を、位置情報格納部102から取得する。
(ステップS1205)現在相対位置情報取得手段1153は、ステップS1201で取得された現在位置情報と、ステップS1203で取得された4n個の第二位置情報と、ステップS1204で取得された4n個の相対位置情報とを用いて、現在位置情報に対応する現在相対位置情報を取得する。
以下、本実施の形態における情報処理装置2の具体的な動作について説明する。情報処理装置2の外観図は、例えば、図13である。図13において、情報処理装置2は、ユーザの指示により、第一画像1301と、第二画像1302を出力している、とする。なお、第一画像1301は正式に測定された地図であり、第二画像1302は、前記地図と同じ地域のイラスト地図である。
そして、位置情報格納部102には、図8に示すような位置情報管理表(ここでは、「画像ID=1」に対応する情報)が格納されている、とする。
かかる状況において、ユーザは、図13の画面上の第二画像1302のある点(白丸の箇所)を、入力手段(例えば、マウス)で指示した、とする。
次に、受付部107は、第一画像と第二画像とを出力中である、と判断する。そして、受付部107は、現在の情報処理装置2のモードが位置情報蓄積モードではなく、相対位置情報出力モードである、と判断する。
そして、受付部107は、第二画像1302に対する指示の入力を受け付ける。そして、現在相対位置情報取得部115は、第二画像1302に対して指示された位置を示す現在位置情報(xn,yn)を取得する。なお、現在位置情報は、例えば、指示された第二画像1302上の座標情報である。
次に、近距離第二位置情報取得手段1151は、第二画像1302の原点を、現在位置情報で示される位置とし、第1象限から第4象限までの各象限に属する点(位置の情報)の条件を取得する。つまり、近距離第二位置情報取得手段1151は、「第1象限:(xn<=X座標 & yn<=Y座標),第2象限:(xn<X座標 & Y座標<yn),第3象限:(X座標<xn & Y座標<yn),第4象限:(X座標<xn & yn<=Y座標)」を取得する。
近距離第二位置情報取得手段1151は、取得した上記の条件を用いて、第1象限から第4象限までの各象限に属するn個(nはここでは、1個とする)の第二位置情報を取得する。なお、ここで、近距離第二位置情報取得手段1151は、第1象限から第4象限までの各象限について、原点に近い各1の第二位置情報を取得するもの、とする。そして、近距離第二位置情報取得手段1151は、図14に示す4個の第二位置情報と4個の相対位置情報との対応表を得た、とする。
次に、現在相対位置情報取得手段1153は、現在位置情報(xn,yn)と、図14の4個の第二位置情報と4個の相対位置情報とを用いて、現在位置情報(xn,yn)に対応する現在相対位置情報(an,bn)を取得する。現在相対位置情報取得手段1153は、例えば、実施の形態1で説明した方法により、現在相対位置情報(an,bn)を取得する。
そして、現在相対位置情報出力部116は、現在相対位置情報(an,bn)を、第一画像1301上に出力する。「現在相対位置情報を出力する」とは、通常、現在相対位置情報が示す画像上の相対位置に、特定の図形(円や矢印や三角など)や文字などを出力することである。ただし、出力の態様は問わない。
また、ユーザは、入力手段により、情報処理装置2のモードを、相対位置情報出力モードから位置情報蓄積モードに切り替えた、とする。そして、情報処理装置2は、図示しない記憶手段に、位置情報蓄積モードであることを蓄積する。
次に、ユーザは、図13の第一画像1301の一の点と、当該点に対応する第二画像1302の点を、入力手段で、順次指示した、とする。
次に、受付部107は、図示しない記憶媒体に格納されているモードを示す情報から、現在の情報処理装置2のモードが位置情報蓄積モードである、と判断する。
次に、受付部107は、第一画像1301および第二画像1302のぞれぞれに対する指示(2つの指示)の入力を受け付ける。
次に、相対位置情報取得部108は、受け付けられた第一画像1301に対する指示に対応する、第一画像1301上の相対位置情報(ar,br)を取得する。
次に、現在位置情報取得部117は、第二画像1302に対して指示された位置を示す現在位置情報(xr,yr)を取得する。
次に、位置情報蓄積部109は、相対位置情報(ar,br)と、現在位置情報(xr,yr)を対応付ける位置情報を構成する。
そして、位置情報蓄積部109は、構成した位置情報を、位置情報格納部102(図8の表)に蓄積する。
かかる位置情報の学習処理により、第一画像1301および第二画像1302の点(位置)の対応の精度が向上する。
以上、本実施の形態によれば、一の画像上のある点を指示した場合、他の画像上の点であり、前記ある点に対応する点の位置が明示できる。
なお、本実施の形態において、第一画像と第二画像の内容は問わない。また、本実施の形態において、第二画像が指示を受け付け、対応する第一画像上の点を出力した。しかし、第一画像と第二画像とが逆でも良い。
また、本実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記憶媒体に、画像と、前記画像上の相対的な位置を示す相対位置情報と、前記画像上の相対的な位置を示す相対位置情報と、前記画像とは異なる平面である第二平面上の位置を示す第二位置情報とを対応付けた情報である1以上の位置情報を格納しており、コンピュータを、前記画像を出力する画像出力部と、前記第二平面上の一の位置を示す現在位置情報を取得する現在位置情報取得部と、前記記憶媒体に格納されている1以上の位置情報を用いて、前記現在位置情報取得部が取得した現在位置情報に対応する、前記画像上の相対位置を示す情報である現在相対位置情報を取得する現在相対位置情報取得部と、前記現在相対位置情報が示す画像上の相対位置を、前記画像上に出力する現在相対位置情報出力部として機能させるためのプログラム、である。
また、上記プログラムにおいて、前記記憶媒体には、第二平面を構成する第二画像をも格納しており、前記画像出力部は、前記第二画像をも出力し、前記受付部は、前記出力されている第二画像に対する指示をも受け付け、前記現在位置情報取得部は、前記第二画像上の前記指示に対応する位置を示す情報である第二位置情報を取得し、前記位置情報蓄積部は、前記相対位置情報取得部が取得した相対位置情報と、前記第二位置情報取得部が取得した第二位置情報とから位置情報を構成し、当該位置情報を、前記記憶媒体に蓄積するものとして、コンピュータを機能させるためのプログラム、であることは好適である。
(実施の形態3)
本実施の形態において、サーバ装置3と、情報処理装置4とを有する情報システムについて説明する。サーバ装置3は、上述した画像格納部101、位置情報格納部102のいずれか一方、または両方を具備する。
情報処理装置4は、画像格納部101の画像(第一画像、第二画像)または/および位置情報格納部102の位置情報が、サーバ装置3から取得された情報である点を除けば、情報処理装置1または情報処理装置2と同様の機能を実現する装置である。
図15は、情報システムの概念図である。情報システムは、サーバ装置3と、1以上の情報処理装置4とを有する。
図16は、情報システムのブロック図である。サーバ装置3は、サーバ画像格納部31、サーバ位置情報格納部32、サーバ受信部33、処理部34、サーバ送信部35を具備する。
情報処理装置4は、画像格納部101、位置情報格納部102、撮影部103、手書入力受付部104、画像構成部105、画像蓄積部406、受付部107、相対位置情報取得部108、位置情報蓄積部409、時刻取得部110、場所情報取得部111、人情報取得部112、画像出力部113、現在位置情報取得部114(または現在位置情報取得部117)、現在相対位置情報取得部115、現在相対位置情報出力部116、画像受信部418、位置情報受信部419、現在位置情報送信部420、他現在位置情報受信部421を具備する。
サーバ画像格納部31は、画像を格納し得る。また、サーバ画像格納部31は、第一画像と第二画像を格納しても良い。サーバ画像格納部31は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。サーバ画像格納部31に画像が記憶される過程は問わない。例えば、記録媒体を介して画像がサーバ画像格納部31で記憶されるようになってもよく、通信回線等を介して、情報処理装置4から送信された画像がサーバ画像格納部31で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された画像がサーバ画像格納部31で記憶されるようになってもよい。
サーバ位置情報格納部32は、1以上の位置情報を格納し得る。サーバ位置情報格納部32は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。サーバ位置情報格納部32に位置情報が記憶される過程は問わない。例えば、記録媒体を介して位置情報がサーバ位置情報格納部32で記憶されるようになってもよく、通信回線等を介して送信された位置情報がサーバ位置情報格納部32で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された位置情報がサーバ位置情報格納部32で記憶されるようになってもよい。
サーバ受信部33は、情報処理装置4から、画像(第一画像)や第二画像や位置情報や、各種指示等を受信する。サーバ受信部33は、通常、無線または有線の通信手段により実現される。
処理部34は、サーバ受信部33が画像や第二画像を受信した場合に、当該画像や第二画像を、サーバ画像格納部31に蓄積する。また、処理部34は、サーバ受信部33が位置情報を受信した場合に、当該位置情報をサーバ位置情報格納部32に蓄積する。また、処理部34は、サーバ受信部33が受信した指示に従った処理(サーバ送信部35への画像や位置情報などの送信指示などを含む)を行う。処理部34は、通常、MPUやメモリ等から実現され得る。処理部34の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
サーバ送信部35は、サーバ受信部33が画像や第二画像の送信指示を受信した場合に、サーバ画像格納部31から指示に対応する画像を読み出し、情報処理装置4に送信する。また、サーバ受信部33が位置情報の送信指示を受信した場合に、サーバ位置情報格納部32から指示に対応する位置情報を読み出し、情報処理装置4に送信する。サーバ送信部35は、通常、無線または有線の通信手段により実現される。
画像蓄積部406は、撮影部103が撮影して、取得した画像を、サーバ装置3に送信する。画像蓄積部406は、通常、無線または有線の通信手段により実現される。
位置情報蓄積部409は、相対位置情報取得部108が取得した相対位置情報(例えば、座標情報)と、現在位置情報取得部114(または現在位置情報取得部117)が取得した現在位置情報(例えば、緯度経度)とから位置情報を構成し、サーバ装置3に位置情報を送信する。位置情報蓄積部409は、通常、無線または有線の通信手段により実現される。
画像受信部418は、サーバ装置3から、画像、または画像と第二画像を受信する。なお、かかる画像または第二画像は、画像格納部101の画像または第二画像となる。画像受信部418は、通常、無線または有線の通信手段により実現され得る。
位置情報受信部419は、サーバ装置3から、位置情報を受信する。なお、この位置情報は、位置情報格納部102の位置情報となる。位置情報受信部419は、通常、無線または有線の通信手段により実現される。
現在位置情報送信部420は、現在位置情報取得部114(または現在位置情報取得部117)が取得した現在位置情報を送信する。送信する先は、他の情報処理装置4やサーバ装置3である。他の情報処理装置4とは、現在位置情報の送信の要求のあった情報処理装置4や、ユーザが指示した情報処理装置4である。現在位置情報送信部420は、通常、無線または有線の通信手段により実現される。
他現在位置情報受信部421は、他の情報処理装置から、直接または間接的に、当該他の情報処理装置4の現在位置情報を受信する。他現在位置情報受信部421は、サーバ装置3経由で、他の情報処理装置4の現在位置情報を受信することは好適である。他現在位置情報受信部421は、通常、無線または有線の通信手段により実現される。
なお、この他現在位置情報受信部421により他の情報処理装置の現在位置情報が受信された場合、現在相対位置情報取得部115は、位置情報格納部102に格納されている1以上の位置情報を用いて、他の情報処理装置の現在位置情報に対応する、画像上の相対位置を示す情報である他現在相対位置情報をも取得する。
そして、現在相対位置情報出力部116は、他現在相対位置情報が示す画像上の相対位置を、画像上に出力する。以上の処理により、他の情報処理装置の位置が明らかになる。
次に、情報システムの動作について説明する。本情報システムにおいて、多数のユーザ(情報処理装置4)が、画像や位置情報を共用する。また、多数の情報処理装置4から、サーバ装置3に画像や位置情報が送信され、蓄積されることにより、他の多数のユーザ(情報処理装置4)が、画像や位置情報を共用できる。
ただし、情報処理装置4の基本的な動作は、情報処理装置1、情報処理装置2と同様である。ただし、以下の処理は、異なる。
つまり、受付部107がユーザの指示(他の情報処理装置4の位置を出力する指示)を受け付けた場合、または、他の情報処理装置4からの依頼(他の情報処理装置4の位置を出力する命令)を受信した場合などは、他現在位置情報受信部421が、他の情報処理装置4の現在位置情報を受信する。そして、現在相対位置情報取得部115は、位置情報格納部に格納されている1以上の位置情報(例えば、サーバ装置3から受信した1以上の位置情報である)を用いて、他の情報処理装置4の現在位置情報に対応する、画像(例えば、サーバ装置3から受信した画像)上の相対位置を示す情報である他現在相対位置情報を取得する。なお、現在相対位置情報取得部115が他現在相対位置情報を取得する処理は、他の情報処理装置4の現在位置情報を用いて、現在相対位置情報を取得する、上述した処理と同様である。
そして、現在相対位置情報出力部116は、他現在相対位置情報が示す画像上の相対位置を画像上に出力する。
ここで、現在相対位置情報出力部116は、他現在相対位置情報と、自身の現在相対位置情報とを、視覚的に異なる態様(マークの形や色が異なるなど)で、出力することは好適である。
以上、本実施の形態において、ネットワーク上のサーバ装置3に格納されている位置情報や画像などを、複数の情報処理装置4が共用できる。また、ユーザが取得した画像や位置情報などを、サーバ装置3で管理し、複数の情報処理装置4が共用できることにより、ユーザ固有の地図などを多人数で利用できる環境、開発できる環境を提供できることとなる。
また、本実施の形態において、他の情報処理装置4の位置情報を、自分の情報処理装置4で、独自の地図上で確認できる。
なお、本実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記憶媒体に、画像と、前記画像上の相対的な位置を示す相対位置情報と、前記画像上の相対的な位置を示す相対位置情報と、前記画像とは異なる平面である第二平面上の位置を示す第二位置情報とを対応付けた情報である1以上の位置情報を格納しており、コンピュータを、前記画像を出力する画像出力部と、前記第二平面上の一の位置を示す現在位置情報を取得する現在位置情報取得部と、前記記憶媒体に格納されている1以上の位置情報を用いて、前記現在位置情報取得部が取得した現在位置情報に対応する、前記画像上の相対位置を示す情報である現在相対位置情報を取得する現在相対位置情報取得部と、前記現在相対位置情報が示す画像上の相対位置を、前記画像上に出力する現在相対位置情報出力部を具備するものとして機能させるためのプログラム、である。
また、上記プログラムにおいて、サーバ装置から、前記画像、または前記画像と前記第二画像を受信する画像受信部をさらに具備し、前記記憶媒体の画像、または前記記憶媒体の画像と第二画像は、前記画像受信部が受信した画像または第二画像であるものとして、コンピュータを機能させるためのプログラム、であることは好適である。
また、上記プログラムにおいて、サーバ装置から、1以上の位置情報を受信する位置情報受信部をさらに具備し、前記記憶媒体の位置情報は、前記位置情報受信部が受信した位置情報であるものとして、コンピュータを機能させるためのプログラム、であることは好適である。
また、上記プログラムにおいて、前記位置情報蓄積部は、前記位置情報を前記記憶媒体に蓄積する代わりに、前記サーバ装置に前記位置情報を送信するものとして、コンピュータを機能させるためのプログラム、であることは好適である。
さらに、上記プログラムにおいて、他の情報処理装置から、当該他の情報処理装置の現在位置情報を受信する他現在位置情報受信部をさらに具備し、前記現在相対位置情報取得部は、前記記憶媒体に格納されている1以上の位置情報を用いて、前記他の情報処理装置の現在位置情報に対応する、前記画像上の相対位置を示す情報である他現在相対位置情報をも取得し、前記現在相対位置情報出力部は、前記他現在相対位置情報が示す画像上の相対位置をも、前記画像上に出力するものとして、コンピュータを機能させるためのプログラム、であることは好適である。
(実施の形態4)
本実施の形態において、第一画像における縮尺、および方角を取得し、出力する情報処理装置について説明する。
また、本実施の形態において、ユーザの移動軌跡を出力する情報処理装置について説明する。
さらに、本実施の形態において、1以上の位置情報を用いて、現在位置情報に対応する、画像上の現在相対位置情報を取得する他のアルゴリズムについて説明する。
なお、本実施の形態における情報処理装置は、実施の形態1で説明した情報処理装置1に、縮尺や方角を出力する機能を有し、かつ、現在相対位置情報の取得の他のアルゴリズムを実現する情報処理装置であるが、縮尺や方角を出力する機能や、他のアルゴリズムの現在相対位置情報取得機能は、実施の形態2で説明した情報処理装置2や実施の形態3で説明した情報処理装置3が具備していても良い。
図17は、本実施の形態における情報処理装置5のブロック図である。情報処理装置5は、画像格納部101、位置情報格納部102、撮影部103、手書入力受付部104、画像構成部105、画像蓄積部106、受付部107、相対位置情報取得部108、位置情報蓄積部109、時刻取得部110、場所情報取得部111、人情報取得部112、画像出力部113、現在位置情報取得部114、現在相対位置情報取得部515、現在相対位置情報出力部116、縮尺算出部501、縮尺出力部502、方角情報取得部503、方角情報出力部504、移動軌跡情報格納部505、移動軌跡情報蓄積部506、移動軌跡出力部507を具備する。
現在相対位置情報取得部515は、近距離第二位置情報取得手段1151、近距離相対位置情報取得手段1152、現在相対位置情報取得手段5153を具備する。
縮尺算出部501は、2以上の位置情報を取得し、当該2以上の位置情報を用いて、画像格納部101の画像の縮尺を算出する。画像格納部101の画像とは、例えば、撮影された画像、手書き入力された画像、イラスト地図などであり、上述した相対画像であり、上述した第一画像である。位置情報は、相対位置情報と第二位置情報とを対応付けた情報である。相対位置情報とは、ディスプレイに表示されている画像上の相対的な位置を示す情報であり、例えば、画像上の座標位置を示す情報(x,y)である。第二位置情報は、例えば、絶対位置情報(緯度,経度)である。また、縮尺算出部501が取得する2以上の位置情報は、何でも良い。縮尺算出部501は、通常、位置情報格納部102から、2以上の位置情報を取得する。
以下、縮尺算出部501が縮尺を算出するアルゴリズムの三つの例について説明する。まず、第一のアルゴリズムの例について説明する。第一の例は、回転楕円状の距離を算出するLambert−Andoyer法を用いる方法である。また、第一の例は、縮尺の平均値を算出する方法である。
まず、Lambert−Andoyer法について説明する。ここで、点Aの(緯度,経度)を(lon1,lat1)、点Bの(緯度,経度)を(lon2,lat2)、地球赤道半径をMAXR(6378137m)、地球極半径をMINR(6356752m)とする。なお、以下、角度の単位はラジアンである。そして、縮尺算出部501は、以下の数式3により、扁平率FRを算出する。
次に、縮尺算出部501は、以下の数式4により、点A,点Bの化成緯度PL1、PL2を算出する。
次に、縮尺算出部501は、以下の数式5により、点A、点Bの球面上の距離Xを算出する。
次に、縮尺算出部501は、以下の数式6により、Lambert−Andoyerによる補正値Cを算出する。
次に、縮尺算出部501は、以下の数式7により、点A、点B間の距離D(単位:メートル)を算出する。
以上がLambert−Andoyer法であり、Lambert−Andoyer法により、点A、点B間の距離Dが得られる。
次に、第一のアルゴリズムの例において、縮尺算出部501は、第一画像(例えば、イラストマップ)上の縮尺を以下のように算出する。まず、縮尺算出部501は、位置情報格納部102から3つの位置情報を取得する。ここで、3つの各位置情報が有する3つの第二位置情報(通常、緯度経度系(絶対位置))の点を、点L1,点L2、点L3とする。また、点L1,点L2、点L3に対応する第一画像上の相対位置情報が示す点をそれぞれ点X1,点X2、点X3とする。
そして、縮尺算出部501は、上述したLamber−Andoyer法により、L1L2(L1とL2の間、という意味)、L2L3、L3L1の距離を計算し、それぞれD1、D2、D3とする。そして、縮尺算出部501は、D1、D2、D3を図示しないメモリ上に一時格納する。また、縮尺算出部501は、上述したLamber−Andoyer法により、X1X2、X2X3、X3X1の距離を計算し、それぞれDx1、Dx2、Dx3とする。そして、縮尺算出部501は、Dx1、Dx2、Dx3を図示しないメモリ上に一時格納する。
次に、縮尺算出部501は、(Dx1/D1)、(Dx2/D2)、(Dx3/D3)を、それぞれ算出する。次に、縮尺算出部501は、(Dx1/D1)、(Dx2/D2)、(Dx3/D3)の平均値を取得し、この平均値を縮尺とする。ここでの縮尺の単位は、1メートルあたりのピクセル数(pixel/m)である。
なお、縮尺算出部501は、(D1/Dx1)、(D2/Dx2)、(D3/Dx3)の平均を算出しても良い。この値は、1ピクセルあたりの距離(m/pixel)である。この値も縮尺に関する情報であり、縮尺といっても良い。
また、縮尺算出部501は、(Dx1/D1)、(Dx2/D2)、(Dx3/D3)の中央値を縮尺として取得するなどしても良い。
次に、第二のアルゴリズムの例について説明する。第二の例も、Lambert−Andoyer法を用いる方法である。また、第二の例は、東西南北方向のそれぞれの縮尺を算出する方法である。第二の例において、D1、D2、D3、Dx1、Dx2、Dx3を算出するまでのアルゴリズムは、第一の例と同じである。なお、第二の例は、ゆがみのある地図に、特に有効である。
次に、縮尺算出部501は、第一の例と同様に、(D1/Dx1)、(D2/Dx2)、(D3/Dx3)を算出する。次に、縮尺算出部501は、(D1/Dx1)、(D2/Dx2)、(D3/Dx3)のうち、最大の値(MAXD)を取得する。次に、縮尺算出部501は、最大の値(MAXD)より大きく、大きすぎない値(P)を、「P=MAXD×α、ただしαは1以上」により算出する。このPは、基準となる値である。なお、αの値は問わないが、大きくない値であり、例えば、1〜20ぐらいの数値である。また、αは、実際にPメートル離れた地点が地図ファイル上で最低αpixel離れた点に対応することを示す。なお、縮尺算出部501は、Pを他の演算式(たとえば、「P=MAXD+α」)で算出しても良い。
そして、ここで、現在地Aの緯度経度を(lon1,lat1)とし、現在地L0に対応する第一画像(例えば、イラストマップ)上の点をX0とする。また、Aより経度方向に+1度の点を点LE(lon2,lat1)、Aより緯度方向に+1度の点を点LN(lon1,lat2)とする。そして、lat1、lon1、lat2、lon2をラジアンにしたものを、それぞれRLat1、Rlon1、RLat2、Rlon2とする。
そして、縮尺算出部501は、Lambert−Andoyer法により、L0LEの距離DEと、L0LNの距離DNを算出する。
次に、縮尺算出部501は、L0から東にPメートルずれた点Leの経度(ラジアン)RLonEを、以下の数式8により算出する。
また、縮尺算出部501は、L0から西にPメートルずれた点Lwの経度(ラジアン) RLonWを、以下の数式9により算出する。
また、縮尺算出部501は、L0から北にPメートルずれた点Lnの緯度(ラジアン)RLatNを、以下の数式10により算出する。
さらに、縮尺算出部501は、L0から南にPメートルずれた点Lsの緯度(ラジアン)RLatSを、以下の数式10により算出する。
次に、縮尺算出部501は、点Ln、点Le、点Ls、点Lwに対応する第一画像(例えば、イラストマップ)上の点Xn、点Xe、点Xs、点Xwを算出する。なお、第二位置情報(絶対位置)に対応する第一画像上の点(相対位置)を取得する処理は、後述する現在相対位置情報取得部515が行う処理と同様である。縮尺算出部501は、かかる処理を、現在相対位置情報取得部515に依頼し、処理結果を得るだけでも良い。
線分X0Xn、線分X0Xe、線分X0Xs、線分X0Xwの長さ(pixel)が、それぞれ北方向、東方向、南方向、西方向へのP(m)あたりのピクセル数となるので、縮尺算出部501は、1mあたりのピクセル数を、それぞれ数式12を用いて算出する。
次に、第三のアルゴリズムの例について説明する。第三のアルゴリズムは、非常に簡易なアルゴリズムである。まず、縮尺算出部501は、位置情報格納部102から2つの位置情報を取得する。ここで、2つの各位置情報が有する3つの第二位置情報(通常、緯度経度系(絶対位置))の点を、点L1,点L2とし、これらに対応する第一画像上の相対位置情報が示す点をそれぞれ点X1,点X2とする。
そして、縮尺算出部501は、上述したLamber−Andoyer法により、L1L2の距離を計算し、D1とする。そして、縮尺算出部501は、D1をメモリ上に一時格納する。また、縮尺算出部501は、上述したLamber−Andoyer法により、X1X2の距離を計算し、Dx1とする。そして、縮尺算出部501は、Dx1をメモリ上に一時格納する。
次に、縮尺算出部501は、(Dx1/D1)を、縮尺として算出する。なお、縮尺算出部501は、(D1/Dx1)を算出しても良い。
上記、縮尺算出部501が縮尺を算出する3つの方法について説明したが、縮尺算出部501は、他の方法で縮尺を算出しても良い。また、縮尺算出部501が縮尺を算出するタイミングは問わない。画像が出力される最初の時点に、縮尺を算出しても良いし、ユーザの指示(縮尺の出力指示)が受け付けられた場合に、縮尺を算出しても良い。
縮尺出力部502は、縮尺算出部501が算出した縮尺を出力する。縮尺は、例えば、画像出力部113が出力している画像上に出力される。ただし、縮尺の出力態様は問わない。また、縮尺出力部502が縮尺を出力するタイミングは問わない。ユーザの指示(縮尺の出力指示)が受け付けられた場合に、縮尺を出力しても良いし、縮尺算出部501が縮尺を算出するごとに縮尺を出力しても良いし、画像出力中は、常に、縮尺を出力していても良い。
方角情報取得部503は、2以上の位置情報を取得し、当該2以上の位置情報を用いて、画像の方角に関する情報である方角情報を取得する。
以下、方角情報取得部503が方角情報を取得するアルゴリズムの例について説明する。方角情報取得部503は、縮尺算出部501における第二のアルゴリズムと同様の方法を用いる。つまり、方角情報取得部503は、(D1/Dx1)、(D2/Dx2)、(D3/Dx3)を算出する。次に、方角情報取得部503は、(D1/Dx1)、(D2/Dx2)、(D3/Dx3)のうち、最大の値(MAXD)を取得する。次に、方角情報取得部503は、最大の値(MAXD)より大きく、大きすぎない値(P)を、「P=MAXD×α、ただしαは1以上」により算出する。このPは、基準となる値である。なお、αの値は問わないが、大きくない値であり、例えば、1〜20ぐらいの数値である。また、αは、実際にPメートル離れた地点が地図ファイル上で最低αpixel離れた点に対応することを示す。
そして、ここで、現在地Aの緯度経度を(lon1,lat1)とし、現在地L0に対応する第一画像(例えば、イラストマップ)上の点をX0とする。また、Aより経度方向に+1度の点を点LE(lon2,lat1)、Aより緯度方向に+1度の点を点LN(lon1,lat2)とする。そして、lat1,lon1,lat2,lon2をラジアンにしたものを、それぞれRLat1,Rlon1,RLat2,Rlon2とする。
そして、まず、方角情報取得部503は、Lambert−Andoyer法により、L0LEの距離DEと、L0LNの距離DNを算出する。
次に、方角情報取得部503は、L0から東にPメートルずれた点Leの経度(ラジアン)RLonEを、前述の数式8により算出する。
また、方角情報取得部503は、L0から西にPメートルずれた点Lwの経度(ラジアン) RLonWを、前述の数式9により算出する。
また、方角情報取得部503は、L0から北にPメートルずれた点Lnの緯度(ラジアン)RLatNを、前述の数式10により算出する。
さらに、方角情報取得部503は、L0から南にPメートルずれた点Lsの緯度(ラジアン)RLatSを、前述の数式10により算出する。
次に、方角情報取得部503は、点Ln、点Le、点Ls、点Lwに対応する第一画像(例えば、イラストマップ)上の点Xn、点Xe、点Xs、点Xwを算出する。なお、第二位置情報(絶対位置)に対応する第一画像上の点(相対位置)を取得する処理は、後述する現在相対位置情報取得部515が行う処理と同様である。方角情報取得部503は、かかる処理を、現在相対位置情報取得部515に依頼し、処理結果を得るだけでも良い。
次に、方角情報取得部503は、北の方位を示す情報(線分X0Xn)を取得する。また、方角情報取得部503は、東の方位を示す情報(線分X0Xe)を取得する。また、方角情報取得部503は、南の方位を示す情報(線分X0Xs)を取得する。また、方角情報取得部503は、西の方位を示す情報(線分X0Xw)を取得する。
なお、縮尺算出部501が既に、線分X0Xn、線分X0Xe、線分X0Xs、線分X0Xwを取得している場合、方角情報取得部503は、繰り返して、線分X0Xn、線分X0Xe、線分X0Xs、線分X0Xwを取得する必要はない。また、方角情報取得部503が方角情報を取得するタイミングは問わない。方角情報取得部503は、ユーザの指示(方角情報の出力指示)が受け付けられた場合に方角情報を取得しても良いし、画像を最初に出力する際に、方角情報を取得しても良い。
方角情報出力部504は、方角情報取得部503が取得した方角情報を出力する。方角情報は、例えば、画像出力部113が出力している画像上に出力される。ただし、方角情報の出力態様は問わない。また、方角情報出力部504が方角情報を出力するタイミングは問わない。方角情報出力部504は、ユーザの指示(方角情報の出力指示)が受け付けられた場合に方角情報を出力しても良いし、画像の出力中は、常に、方角情報を出力していても良い。
移動軌跡情報格納部505は、移動軌跡情報を格納し得る。移動軌跡情報は、情報処理装置5のユーザが移動した位置を示す相対位置情報を含む。移動軌跡情報は、相対位置情報に加えて、第二位置情報を有しても良い。移動軌跡情報は、第二位置情報に対応する情報(例えば、その地点のお店の名称や地理名称など)を含んでも良い。移動軌跡情報は、時刻を含んでも良い。
移動軌跡情報蓄積部506は、情報処理装置5のユーザが移動した位置を示す相対位置情報を取得し、移動軌跡情報格納部505に蓄積する。なお、ユーザが移動中に、例えば、定期的(1秒ごと、3秒ごとなど)または連続して、現在位置情報取得部114は現在位置情報を取得する。そして、現在相対位置情報取得部515は、現在位置情報に対応する現在相対位置情報を取得する。そして、移動軌跡情報蓄積部506は、現在相対位置情報取得部515が取得した相対位置情報を得て、移動軌跡情報格納部505に蓄積する。
移動軌跡出力部507は、移動軌跡情報格納部505に蓄積されている移動軌跡情報を用いて、移動軌跡を出力する。移動軌跡出力部507は、画像上に移動軌跡を出力することは好適である。移動軌跡出力部507が移動軌跡を出力するタイミングは問わない。移動軌跡出力部507は、常時、移動軌跡を出力していても良いし、ユーザの指示に応じて、移動軌跡を出力しても良い。また、例えば、情報処理装置5の電源がOFFになった場合、ユーザからの指示を受け付けた場合、移動軌跡情報格納部505の移動軌跡情報は削除されることは好適である。移動軌跡出力部507は、移動軌跡情報が有する、連続する相対位置情報を順に結ぶ線を出力しても良いし、連続する相対位置情報の位置に点を出力しても良い。線種など、線の属性は問わない。
現在相対位置情報取得手段5153は、現在位置情報と、近距離第二位置情報取得手段1151が取得したn個の第二位置情報と、近距離相対位置情報取得手段1152が取得したn個の相対位置情報とを用いて、現在位置情報に対応する現在相対位置情報を取得する。また、現在相対位置情報取得手段5153は、現在位置情報と、近距離第二位置情報取得手段1151が取得した1以上の第二位置情報と、近距離相対位置情報取得手段1152が取得した1以上の相対位置情報とを用いて、現在位置情報に対応する現在相対位置情報を取得する。なお、現在位置情報は、通常、絶対位置情報であり、現在相対位置情報は、相対位置情報である。
現在相対位置情報取得手段5153が、絶対位置情報(x0,y0)に対応する相対位置情報(a0,b0)を取得するアルゴリズムの例は種々あり、そのアルゴリズムの例(第一のアルゴリズムから第八のアルゴリズム)について、以下に詳細に説明する。第一のアルゴリズムから第八のアルゴリズムにおいて、まず、相対位置情報を取得するために、2組以上の位置情報を取得する処理を行う。なお、位置情報は、第二位置情報と相対位置情報とを含む。以下、位置情報を取得する処理について説明する。近距離第二位置情報取得手段1151は、例えば、以下のように(第一から第五の方法のように)、n組の位置情報を取得する。第一に、近距離第二位置情報取得手段1151は、現在地T(絶対位置情報(x0,y0))の近傍の絶対位置情報(緯度経度系)の点とそれに対する相対位置情報に対応する点をn組取得する。なお、「近傍」とは、現在地Tに近いところから、nの絶対位置情報の点とそれに対する相対位置情報に対応する点を取得することである。ただし、絶対位置情報(緯度経度系)の点は、それぞれ緯度経度が異なることを条件とする。第二に、近距離相対位置情報取得手段1152は、現在地Tの近傍の絶対位置情報(緯度経度系)の点とそれに対する相対位置情報に対応する点をn組取得する。ただし、緯度経度系の点は、それぞれ緯度経度が異なること、さらに、それぞれの点からなる各線分どうしがなす角が180度でないことを条件とする。第三に、近距離第二位置情報取得手段1151は、現在地Tの近傍の絶対位置情報(緯度経度系)より、△ABCの内角が全て120度以下となる3点(A,B,C)を取得する。そして、近距離相対位置情報取得手段1152は、3点(A,B,C)に対する相対位置情報に対応する3点(A',B',C')を取得する。第四に、近距離相対位置情報取得手段1152は、現在地Tを原点とする4象限の各n点とそれらに対応する相対位置情報に対応する点を取得する。(計4×n組の点が取得される)。第五に、近距離相対位置情報取得手段1152は、現在地Tの近傍の絶対位置情報(緯度経度系)より、△ABCの内角が全て30度以上かつ120度以下となる3点(A,B,C)と、それらに対する相対位置情報に対応する3点(A',B',C')を取得する。なお、通常、多数の位置対応情報を用いて、相対位置情報を取得する方が、精度が高くなる。なお、下記において、位置対応情報は、絶対位置情報(xn,yn)と相対位置情報(an,bn)の組である、とする。また、上記において、実験結果では、第五の方法が優れている場合が多いことが分かっている。
次に、第一のアルゴリズムについて詳細に説明する。現在相対位置情報取得手段5153は、1つ以上の絶対位置情報(xn,yn)と一の絶対位置情報(x0,y0)との距離rnの逆数に基づいた係数による、相対位置情報(an,bn)の集合の加重平均の値として相対位置情報(a0,b0)を取得することは好適である。(a0,b0)は、距離rnの逆数を重みとした(an,bn)の加重平均で求められる。具体的には、例えば、上記の数式1により、現在相対位置情報取得手段5153は、相対位置情報を取得する。なお、nは1以上の自然数である。
また、現在相対位置情報取得手段5153または図示しない補正手段は、各位置情報(例えば、絶対座標と相対座標を関連させた座標)の歪みを補正する機能を有することは好適である。つまり、現在相対位置情報取得手段5153または補正手段は、絶対座標における2つの位置情報を結んだ線分と、それに対応する相対座標における2つの位置情報を結んだ線分の長さの比のばらつきを補正する機能を有することは好適である。具体的には、現在相対位置情報取得手段5153または補正手段は、距離rnの逆数に加えて、線分比の逆数も、上記の重みに掛け合わせた係数による加重平均を算出することにより、現在相対位置情報(a0,b0)を取得することは、さらに好適である。
さらに具体的には、現在絶対位置をT、最も近い近距離絶対位置をX0、その相対位置をX'0、その他の近距離絶対位置をXn、それらの相対位置をX'nと定義する、とする。そして、X0からTおよびXnに向かうベクトルをそれぞれτ,ξnとする。また、TからXnに向かうベクトルをρnとする。また、それらのベクトルの大きさをt,xn,rnとする。また、X'0からT'およびX'nに向かうベクトルをそれぞれτ',ξ'nとする。また、T'からX'nに向かうベクトルをρ'nとする。さらに、それらベクトルの大きさをt',x'nとする。かかる場合、既知の位置X'0から現在相対位置T'へのベクトルτ'は「xn/x'n*rn」を重みとしたξ'nの加重平均としてあらわされる。τ'は、上述した数式3であらわされる。
現在位置情報が(x0,y0)であり、近距離第二位置情報取得手段1151が、3つの絶対位置情報(x1,y1)(x2,y2)(x3,y3)を取得し、近距離相対位置情報取得手段1152が、3つの相対位置情報(a1,b1)(a2,b2)(a3,b3)を取得した場合、現在相対位置情報取得手段5153は、2点(x1,y1)(x2,y2)により構成されるベクトルαを算出し、2点(x1,y1)(x3,y3)により構成されるベクトルβを算出し、2点(x1,y1)(x0,y0)により構成されるベクトル「pα+qβ(p,qは定数)」を算出し、2点(a1,b1)(a2,b2)により構成されるベクトルα'を算出し、2点(a1,b1)(a3,b3)により構成されるベクトルβ'を算出し、ベクトル「pα'+qβ'」と、点(a1,b1)から、現在相対位置情報(a0,b0)を取得する。
また、現在相対位置情報取得手段5153または図示しない補正手段は、このα、βの斜交座標系における計算でも歪みの補正を行うことは好適である。歪みの補正を行った場合、|α'|/|α|=A、|β'|/|β|=Bとすると、既知の近距離相対位置(a1,b1)から現在相対位置(a0,b0)までのベクトルγは「γ={Bp/(A+B)}α+{Aq/(A+B)}β」となる。
また、α、βの斜交座標系による計算の場合、(x1,y1)〜(x3,y3)が直線に近い形で選択された場合、α、βの相対的方向がα'、β'の相対的方向と逆向きになってしまうケースが多く出てくる。そのため、(x1,y1)〜(x3,y3)が直線とならないように3番目の(x3,y3)を選択するため、αとβ候補の角度をベクトルの内積から調べ、ある一定の敷居値(150°や120°など)以下でなければ別の(x4,y_4)以降を三番目の近距離絶対位置として、現在相対位置情報取得手段5153は採択することは、さらに好適である。さらに、現在相対位置情報取得手段5153は、上記と同様の目的で、象限の異なる3個の点を候補とすることは、さらに好適である。
また、現在相対位置情報取得手段5153は、以下の第二のアルゴリズムにより、相対位置情報を取得しても良い。
つまり、現在相対位置情報取得手段5153は、複数の第二位置情報のうちの一の第二位置情報が示す点をTとする。また、近距離第二位置情報取得手段1151が取得した1以上の第二位置情報が示す点を、Tから近い順にA,B,Cとする。そして、A,B,Cに対応する相対位置情報が示す点をA',B',C'とする。現在相対位置情報取得手段5153は、以下の数式13により、αおよびβを算出する。そして、現在相対位置情報取得手段5153は、以下の数式14にαおよびβ、A、B、C、A'、B'、C'を代入し、T'を決定する。このT'が相対位置情報であり、画像上の点を示す。なお、第二のアルゴリズムでは、現在相対位置情報取得手段5153は、3個の点のみ用いる(n=3である)。
また、現在相対位置情報取得手段5153は、以下の第三のアルゴリズムにより、相対位置情報を取得しても良い。
つまり、現在相対位置情報取得手段5153は、複数の第二位置情報のうちの一の第二位置情報が示す点をTとする。また、近距離第二位置情報取得手段1151が取得した1以上の第二位置情報が示す点を、Tから近い順にA,B,Cとする。そして、A,B,Cに対応する相対位置情報が示す点をA',B',C'とする。現在相対位置情報取得手段5153は、数式13により、αおよびβを算出する。次に、現在相対位置情報取得手段5153は、数式15にα、β、A、B、C、A'、B'、およびC'を代入し、α2およびβ2を算出する。そして、現在相対位置情報取得手段5153は、以下の数式16にα2、β2、A'、B'、C'を代入し、T'を決定する。このT'が相対位置情報であり、画像上の点を示す。なお、第三のアルゴリズムでは、現在相対位置情報取得手段5153は、3個の点のみ用いる(n=3である)。
また、現在相対位置情報取得手段5153は、以下の第四のアルゴリズムにより、相対位置情報を取得しても良い。
つまり、現在相対位置情報取得手段5153は、複数の第二位置情報のうちの一の第二位置情報が示す点をTとする。また、近距離第二位置情報取得手段1151が取得した1以上の第二位置情報が示す点を、Tから近い順にA,B,Cとする。そして、A,B,Cに対応する相対位置情報が示す点をA',B',C'とする。現在相対位置情報取得手段5153は、数式13により、αおよびβを算出する。次に、現在相対位置情報取得手段5153は、数式17にα、β、A、B、C、A'、B'、およびC'を代入し、α2およびβ2を算出する。そして、現在相対位置情報取得手段5153は、数式16にα2、β2、A'、B'、C'を代入し、T'を決定する。このT'が相対位置情報であり、画像上の点を示す。なお、第四のアルゴリズムでは、現在相対位置情報取得手段5153は、3個の点のみ用いる(n=3である)。
また、現在相対位置情報取得手段5153は、以下の第五のアルゴリズムにより、相対位置情報を取得しても良い。
つまり、現在相対位置情報取得手段5153は、複数の第二位置情報のうちの一の第二位置情報が示す点をTとする。また、近距離第二位置情報取得手段1151が取得した1以上の第二位置情報が示す点がn個存在し、Pnとする。現在相対位置情報取得手段5153は、Tからn+1番目に近い第二位置情報が示す点Oを取得する。また、現在相対位置情報取得手段5153は、点Oに対応する相対位置情報が示す点O'を取得する。なお、点Oの取得とは、第二位置情報の取得である。点O'の取得とは、相対位置情報の取得である。そして、現在相対位置情報取得手段5153は、数式18に示す値を重みとして、P'nの加重平均を算出する。この加重平均がT'である。なお、第二位置情報が示す点Pnに対応する相対位置情報が示す点がP'nである。
また、現在相対位置情報取得手段5153は、以下の第六のアルゴリズムにより、相対位置情報を取得しても良い。
つまり、現在相対位置情報取得手段5153は、複数の第二位置情報のうちの一の第二位置情報が示す点をTとする。また、近距離第二位置情報取得手段1151が取得した1以上の第二位置情報が示す点がn個存在し、Pnとする。現在相対位置情報取得手段5153は、Tとn個のPnとの距離の総和dを算出する。そして、現在相対位置情報取得手段5153は、数式19に示す値を重みとして、P'nの加重平均を算出し、T'を得る。なお、第二位置情報が示す点Pnに対応する相対位置情報が示す点がP'nである。
また、現在相対位置情報取得手段5153は、以下の第七のアルゴリズムにより、相対位置情報を取得しても良い。
つまり、現在相対位置情報取得手段5153は、複数の第二位置情報のうちの一の第二位置情報が示す点をTとする。また、近距離第二位置情報取得手段1151が取得した4つの第二位置情報が示す点をA,B,C,Dとする。また、基準相対位置情報取得手段1082が取得した4つの相対位置情報が示す点をA',B',C',D'とする。また、点Pのx座標をPx、y座標をPyとする。そして、現在相対位置情報取得手段5153は、点A〜Dと点A'〜D'の座標をもとに、数式20に示す2組の4元連立方程式(方程式1、方程式2)でホモグラフィー行列の要素(H1〜H8)を取得する。
次に、現在相対位置情報取得手段5153は、H1〜H8により、以下の数式21により、T'のx,y座標(T'x,T'y)を得る。なお、ホモグラフィー行列は3×3であるが、以下の数式22に成り立つため、現在相対位置情報取得手段5153は、数式22の各係数をH1〜H8として算出する。
また、現在相対位置情報取得手段5153は、以下の第八のアルゴリズムにより、相対位置情報を取得しても良い。
つまり、現在相対位置情報取得手段5153は、複数の第二位置情報のうちの一の第二位置情報が示す点をTとする。また、近距離第二位置情報取得手段1151が取得した2つの第二位置情報が示す点を、Tから近い順にA,Bとする。そして、A,Bに対応する相対位置情報が示す点をA',B'とする。まず、現在相対位置情報取得手段5153は、ベクトルABに対するベクトルATの回転角と、大きさの比率を算出する。そして、現在相対位置情報取得手段5153は、ベクトルATの回転角と、大きさの比率を、ベクトルA'B'に適用し、ベクトルA'T'を求める。そして、A'が分かっているので、現在相対位置情報取得手段5153は、T'(相対位置情報)を得ることができる。
上記で説明した、現在相対位置情報取得手段5153が行う相対位置情報の取得アルゴリズムは、加重平均に基づく手法、アフィン変換に基づく手法、ホモグラフィー変換に基づく手法、および縮尺率の不均等性を補正する係数による変換+アフィン変換等である。
縮尺算出部501、方角情報取得部503、移動軌跡情報蓄積部506および現在相対位置情報取得手段5153は、通常、MPUやメモリ等から実現され得る。縮尺算出部501等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
縮尺出力部502、方角情報出力部504、および移動軌跡出力部507は、ディスプレイ等の出力デバイスを含むと考えても含まないと考えても良い。縮尺出力部502等は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
移動軌跡情報格納部505は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
次に、情報処理装置5の動作について図18のフローチャートを用いて説明する。図18のフローチャートにおいて、図2のフローチャートと異なるステップについてのみ説明する。
(ステップS1801)縮尺算出部501は、上述したアルゴリズムのうちの一のアルゴリズムを用いて、縮尺を算出する。
(ステップS1802)縮尺出力部502は、ステップS1801で算出された縮尺を、出力されている画像(イラストマップなど)上に出力する。
(ステップS1803)方角情報取得部503は、上述したアルゴリズムのうちの一のアルゴリズムを用いて、方角情報を取得する。
(ステップS1804)方角情報出力部504は、ステップS1803で取得された方角情報を、出力されている画像(イラストマップなど)上に出力する。
(ステップS1805)移動軌跡情報蓄積部506は、情報処理装置5のユーザが移動した位置を示す相対位置情報を含む移動軌跡情報を取得する。なお、相対位置情報は、例えば、現在相対位置情報取得部515が定期的に取得している情報である。
(ステップS1806)移動軌跡情報蓄積部506は、ステップS1805で取得した相対位置情報を移動軌跡情報格納部505に蓄積する。
(ステップS1807)移動軌跡出力部507は、移動軌跡情報格納部505に蓄積されている移動軌跡情報を用いて、移動軌跡を出力する。
なお、図18のフローチャートにおいて、情報処理装置5の電源OFFの直前に、移動軌跡情報格納部505の移動軌跡情報を削除することは好適である。
また、図19のフローチャートを用いて、現在相対位置情報の他の取得処理について説明する。なお、他の取得処理とは、図4のフローチャートを用いて説明した処理とは異なる処理のことである。
(ステップS1901)近距離第二位置情報取得手段1151は、絶対位置情報(T)とは異なる3つの絶対位置情報を取得する。かかる処理を三点取得処理という。三点取得処理について、図20のフローチャートを用いて説明する。また、ここで取得した3つの絶対位置情報を、A、B、Cである、とする。
(ステップS1902)近距離相対位置情報取得手段1152は、ステップS1901で取得した3つの絶対位置情報(A、B、C)の各々と対になる相対位置情報(A'、B'、C')を、位置情報格納部102から取得する。
(ステップS1903)現在相対位置情報取得手段5153は、ベクトルAT、ベクトルAB、ベクトルACを算出する。
(ステップS1904)現在相対位置情報取得手段5153は、数式13に、ベクトルAT、ベクトルAB、ベクトルACを代入し、α、βを算出する。
(ステップS1905)現在相対位置情報取得手段5153は、ベクトルA'B'、ベクトルA'C'を算出する。
(ステップS1906)現在相対位置情報取得手段5153は、数式15に、α、β、ベクトルA'B'、ベクトルA'C'、ベクトルAB、およびベクトルACを代入し、α2、β2を算出する。
(ステップS1907)現在相対位置情報取得手段5153は、数式16に、α2、β2、ベクトルA'B'、ベクトルA'C'を代入し、ベクトルA'T'を算出する。
(ステップS1908)現在相対位置情報取得手段5153は、A'、およびベクトルA'T'から、T'を算出する。上位処理にリターンする。
次に、ステップS1901の三点取得処理について、図20のフローチャートを用いて説明する。
(ステップS2001)近距離第二位置情報取得手段1151は、位置情報格納部102の絶対位置情報をTから近い順にソートする。
(ステップS2002)近距離第二位置情報取得手段1151は、カウンタiに1を代入する。
(ステップS2003)近距離第二位置情報取得手段1151は、ステップS2001でソートした絶対位置情報の中に、i番目の絶対位置情報が存在するか否かを判断する。i番目の絶対位置情報が存在すればステップS2004に行き、存在しなければステップS2017に行く。
(ステップS2004)近距離第二位置情報取得手段1151は、変数Aに、i番目の絶対位置情報を代入する。
(ステップS2005)近距離第二位置情報取得手段1151は、カウンタjにi+1を代入する。
(ステップS2006)近距離第二位置情報取得手段1151は、ステップS2001でソートした絶対位置情報の中に、j番目の絶対位置情報が存在するか否かを判断する。j番目の絶対位置情報が存在すればステップS2007に行き、存在しなければステップS2016に行く。
(ステップS2007)近距離第二位置情報取得手段1151は、変数Bに、j番目の絶対位置情報を代入する。
(ステップS2008)近距離第二位置情報取得手段1151は、カウンタkにj+1を代入する。
(ステップS2009)近距離第二位置情報取得手段1151は、ステップS2001でソートした絶対位置情報の中に、k番目の絶対位置情報が存在するか否かを判断する。k番目の絶対位置情報が存在すればステップS2010に行き、存在しなければステップS2015に行く。
(ステップS2010)近距離第二位置情報取得手段1151は、変数Cに、k番目の絶対位置情報を代入する。
(ステップS2011)近距離第二位置情報取得手段1151は、△ABCの内角を、それぞれ算出する。なお、三点の座標情報を与えられている場合に、△ABCの内角を算出する処理は公知技術である。
(ステップS2012)近距離第二位置情報取得手段1151は、ステップS2011で算出した3つの内角が、30度以上であり、かつ120度以下であるか否かを判断する。かかる条件を満たせばステップS2013に行き、かかる条件を満たさなければステップS2014に行く。
(ステップS2013)近距離第二位置情報取得手段1151は、変数A、B、Cの内容を、3つの絶対位置情報として取得する。上位処理にリターンする。
(ステップS2014)近距離第二位置情報取得手段1151は、カウンタkを1、インクリメントする。ステップS2009に戻る。
(ステップS2015)近距離第二位置情報取得手段1151は、カウンタjを1、インクリメントする。ステップS2006に戻る。
(ステップS2016)近距離第二位置情報取得手段1151は、カウンタiを1、インクリメントする。ステップS2003に戻る。
(ステップS2017)近距離第二位置情報取得手段1151は、任意の三点A、B、Cを3つの絶対位置情報として取得する。上位処理にリターンする。
以下、本実施の形態における情報処理装置5の具体的な動作について説明する。情報処理装置5の外観図は、例えば、図5である。
また、位置情報格納部102には、図8に示す位置情報管理表が格納されている、とする。そして、実施の形態1で説明したように、現在相対位置情報出力部116は、現在相対位置情報(a0,b0)により示される現在位置を、出力されているイラスト画像上に出力する。かかる出力例は図9である。図9において、網掛けの丸の箇所が現在位置である。
次に、縮尺算出部501は、上述したアルゴリズムのうちの一のアルゴリズムを用いて、縮尺を算出する。そして、縮尺出力部502は、算出された縮尺を、出力されている画像(イラストマップなど)上に出力する。
次に、方角情報取得部503は、上述したアルゴリズムのうちの一のアルゴリズムを用いて、方角情報を取得する。そして、方角情報出力部504は、取得された方角情報を、出力されている画像(イラストマップなど)上に出力する。
次に、移動軌跡情報蓄積部506は、ユーザが移動した位置を示す相対位置情報を含む移動軌跡情報を取得し、移動軌跡情報格納部505に蓄積する。
そして、移動軌跡出力部507は、移動軌跡情報格納部505に蓄積されている移動軌跡情報を用いて、移動軌跡を出力する。
図21は、縮尺と方角情報と移動軌跡が出力されている出力例である。縮尺は、イラストマップの右下に出力され、方角情報は、北を示す方角情報であり、イラストマップの左上に出力されている。また、移動軌跡は、実線で出力されている。
以上、本実施の形態によれば、イラストマップ等の第一画像の縮尺、および方角を取得し、出力することができる。かかることにより、例えば、ユーザが用意した不正確な地図等(例えば、イラストマップ、手書きの地図など)に対しても、縮尺や方角を出力できる。
また、本実施の形態によれば、方角によりひずみのある地図に対して、方角ごと(上記では、東西南北)に、縮尺を取得し、出力できる。
さらに、本実施の形態によれば、精度高く、相対位置情報が取得できる。
また、図22は、本明細書で述べたプログラムを実行して、上述した実施の形態の情報処理装置等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図22は、このコンピュータシステム340の概観図であり、図23は、コンピュータシステム340のブロック図である。
図22において、コンピュータシステム340は、FDドライブ、CD−ROMドライブを含むコンピュータ341と、キーボード342と、マウス343と、モニタ344とを含む。
図23において、コンピュータ341は、FDドライブ3411、CD−ROMドライブ3412に加えて、MPU3413と、CD−ROMドライブ3412及びFDドライブ3411に接続されたバス3414と、ブートアッププログラム等のプログラムを記憶するためのROM3415とに接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3416と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3417とを含む。ここでは、図示しないが、コンピュータ341は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム340に、上述した実施の形態の情報処理装置等の機能を実行させるプログラムは、CD−ROM3501、またはFD3502に記憶されて、CD−ROMドライブ3412またはFDドライブ3411に挿入され、さらにハードディスク3417に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ341に送信され、ハードディスク3417に記憶されても良い。プログラムは実行の際にRAM3416にロードされる。プログラムは、CD−ROM3501、FD3502またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ341に、上述した実施の形態の情報処理装置等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム340がどのように動作するかは周知であり、詳細な説明は省略する。
なお、上記プログラムにおいて、ハードウェアによって行われる処理は含まれない。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
つまり、本明細書で、情報処理装置が行うとして説明した処理を、例えば、サーバ装置が行っても良い。つまり、1以上の装置を用いて、以下の情報処理方法が実現できれば良い。その情報処理方法は、記録媒体に、画像を格納しており、記憶媒体に、前記画像上の相対的な位置を示す相対位置情報と、前記画像とは異なる平面である第二平面上の位置を示す第二位置情報とを対応付けた情報である1以上の位置情報を格納しており、画像出力部、現在位置情報取得部、現在相対位置情報取得部、および現在相対位置情報出力部により実現される情報処理方法であって、前記画像出力部により、前記記憶媒体の画像を出力する画像出力ステップと、前記現在位置情報取得部により、前記第二平面上の一の位置を示す現在位置情報を取得する現在位置情報取得ステップと、前記現在相対位置情報取得部により、前記記憶媒体に格納されている1以上の位置情報を用いて、前記現在位置情報取得ステップで取得された現在位置情報に対応する、前記画像上の相対位置を示す情報である現在相対位置情報を取得する現在相対位置情報取得ステップと、前記現在相対位置情報出力部により、前記現在相対位置情報が示す画像上の相対位置を、前記画像上に出力する現在相対位置情報出力ステップを具備する情報処理方法である。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。