図1を参照して、この発明の一実施例の携帯電話機10は、一例としてスマートフォン(smartphone)であり、縦長の扁平矩形のハウジング12を含む。ただし、この発明は、タブレット端末、タブレット型PCおよびPDAなど任意の携帯端末に適用可能であることを予め指摘しておく。
ハウジング12の主面(表面)には、たとえば液晶や有機ELなどで構成され、表示部として機能するディスプレイ14が設けられる。ディスプレイ14の上には、タッチパネル16が設けられる。
ハウジング12の縦方向一端の主面側にスピーカ18が内蔵され、縦方向他端の主面側にマイク20が内蔵される。
ハウジング12の主面には、タッチパネル16と共に入力操作手段を構成するハードキー22として、この実施例では、通話キー22a、終話キー22bおよびメニューキー22cが設けられる。
たとえば、ユーザは、ディスプレイ14に表示されたダイヤルパッドに対して、タッチ操作を行うことで電話番号を入力し、通話キー22aが操作されると音声通話が開始される。終話キー22bが操作されると音声通話が終了する。また、終話キー22bを長押しすることによって、携帯電話機10の電源をオン/オフすることができる。さらに、ディスプレイ14に画面が表示されている状態で終話キー22bが短押しされると、ディスプレイ14およびタッチパネル16の電源がオフにされる。
メニューキー22cが操作されると、ディスプレイ14にホーム画面が表示される。ユーザは、その状態でディスプレイ14に表示されているGUIに対して、タッチパネル16によるタッチ操作を行うことによってオブジェクトを選択し、その選択を確定させることができる。
なお、以下の説明では、ディスプレイ14に表示されるアイコンや、ソフトキーなどのGUIを、まとめてオブジェクトと言うことがある。
図2を参照して、図1に示す実施例の携帯電話機10は、コンピュータまたはCPUとも言われるプロセッサ30などを含む。プロセッサ30には、無線通信回路32、A/D変換器36、D/A変換器38、入力装置40、表示ドライバ42、フラッシュメモリ44、RAM46、タッチパネル制御回路48、GPS回路50、姿勢センサ54、方位センサ56および電源回路58などが接続される。また、無線通信回路32にはアンテナ34が接続され、表示ドライバ42にはディスプレイ14が接続され、タッチパネル制御回路48にはタッチパネル16が接続され、GPS回路50にはGPSアンテナ52が接続され、電源回路58には二次電池60が接続される。
プロセッサ30は、携帯電話機10の全体制御を司る。記憶部として機能するRAM46には、フラッシュメモリ44に予め設定されているプログラムの全部または一部が使用に際して展開され、プロセッサ30はこのRAM46上のプログラムに従って動作する。また、RAM46はさらに、プロセッサ30のワーキング領域ないしバッファ領域として用いられる。
入力装置40は、図1に示す3つのハードキー22を含む。そのため、ハードキー22に対するキー操作を受け付ける。入力操作を受け付けたハードキー22の情報(キーデータ)は入力装置40によってプロセッサ30に入力される。
無線通信回路32は、アンテナ34を通して、音声通話やメールなどのための電波を送受信するための回路である。実施例では、無線通信回路32は、CDMA方式での無線通信を行うための回路である。たとえば、タッチパネル16が受け付けた発呼(音声発信)の操作に基づき、無線通信回路32は、プロセッサ30の指示の下、音声発信処理を実行し、アンテナ34を介して音声発信信号を出力する。音声発信信号は、基地局および通信網を経て相手の電話機に送信される。そして、相手の電話機において音声着信処理が行われると、通信可能状態が確立され、プロセッサ30は通話処理を実行する。
A/D変換器36には図1に示すマイク20が接続され、上述のようにマイク20から得られたアナログの音声信号はこのA/D変換器36でディジタルの音声データに変換され、プロセッサ30に入力される。一方、D/A変換器38には図1に示すスピーカ18が接続される。D/A変換器38は、ディジタルの音声データをアナログの音声信号に変換して、アンプを介してスピーカ18に与える。したがって、音声データに基づく音声がスピーカ18から出力される。そして、通話処理が実行されている状態では、マイク20によって集音された音声が相手の電話機に送信され、相手の電話機で集音された音声が、スピーカ18から出力される。
表示ドライバ42には図1に示すディスプレイ14が接続され、したがって、ディスプレイ14はプロセッサ30から出力される映像データまたは画像データに従って映像または画像を表示する。表示ドライバ42は表示するためのデータを一時的に記憶するビデオメモリを含んでおり、プロセッサ30から出力されたデータはこのビデオメモリに記憶される。そして、表示ドライバ42は、ビデオメモリの内容に従って、ディスプレイ14に画像を表示する。つまり、表示ドライバ42は、プロセッサ30の指示の下、当該表示ドライバ42に接続されたディスプレイ14の表示を制御する。なお、ディスプレイ14には、バックライトが設けられており、表示ドライバ42はプロセッサ30の指示に従って、そのバックライトの明るさや、点灯/消灯を制御する。
タッチパネル制御回路48には、図1に示すタッチパネル16が接続される。タッチパネル制御回路48は、タッチパネル16に必要な電圧などを付与すると共に、タッチパネル16に対するタッチの開始を示すタッチ開始信号、タッチの終了を示す終了信号、およびタッチされたタッチ位置を示す座標データをプロセッサ30に入力する。したがって、プロセッサ30はこの座標データおよびその座標データの変化に基づいて、タッチされたオブジェクトを判断する。
たとえば、タッチパネル16にタッチすると、タッチ領域がタッチパネル16によって検出される。このとき、タッチパネル制御回路48は、タッチ領域の重心をタッチ位置とし、その重心の座標をプロセッサ30に入力する。つまり、タッチ操作におけるタッチ領域の重心が、タッチの開始位置、終了位置または現在のタッチ位置を示す。ただし、他の実施例では、重心に代えて、指などが最初にタッチパネル16に触れた位置がタッチ位置とされてもよい。
タッチパネル16は、その表面と指などの物体(以下、便宜上合わせて指と言う。)との間に生じる静電容量の変化を検出する静電容量方式のタッチパネルである。タッチパネル16は、たとえば1本または複数本の指がタッチパネル16に触れたことを検出する。したがって、ユーザは、タッチパネル16の表面に対してタッチ操作を行うことで、操作位置や、操作方向などを携帯電話機10に入力する。そのため、タッチパネル16はポインティングデバイスと言うことがある。
ここで、本実施例のタッチ操作には、タップ操作、ロングタップ操作、フリック操作、スワイプ(スライド)操作などが含まれる。
タップ操作は、タッチパネル16の表面に指を接触(タッチ)させた後、短時間のうちにタッチパネル16の表面から指を離す(リリースする)操作である。ロングタップ操作は、一定時間以上、指をタッチパネル16の表面に接触させ続けた後、指をタッチパネル16の表面から離す操作である。フリック操作は、タッチパネル16の表面に指を接触させ、任意の方向へ所定速度以上で指を弾く操作である。スワイプ(スライド)操作は、タッチパネル16の表面に指を接触させたまま任意の方向へ移動させた後、タッチパネル16の表面から指を離す操作である。
また、上記のスワイプ操作には、ディスプレイ14の表面に表示されたオブジェクトに指を触れ、オブジェクトを移動させるスワイプ操作、いわゆるドラッグ操作も含まれる。また、ドラッグ操作の後、タッチパネル16の表面から指を離す操作をドロップ操作と言う。
なお、以下の説明では、タップ操作、ロングタップ操作、フリック操作、スワイプ操作、ドラッグ操作およびドロップ操作は、それぞれ「操作」を省略して記述されることがある。また、タッチ操作はユーザの指だけに限らず、スタイラスペンなどによって行われてもよい。
また、本実施例では、無操作の状態で所定時間(たとえば、15秒)が経過すると、自動的にディスプレイ14およびタッチパネル16の電源がオフにされる。
GPS回路50は、現在位置を測位するときに起動される。GPS回路50は、GPSアンテナ52によって受信されたGPS衛星の信号が入力されると、そのGPS信号に基づいて測位処理を実行する。その結果、GPS情報(位置情報)として、緯度、経度および標高(高度)が算出される。
また、図1では簡単のために1つのGPS衛星しか描画していないが、現在位置を三次元測位するためには、4つ以上のGPS衛星からGPS信号を受信する必要がある。ただし、4つ以上のGPS衛星からGPSを受信できなくても、3つのGPS衛星からGPS信号を受信できていれば、二次元測位によって経度および緯度を算出することは可能である。
なお、GPS回路50およびGPSアンテナ52はまとめて受信部として機能する。また、現在位置を測位するときには、GPS衛星から送信されるGPS信号に加えて、基地局から送信される信号や、無線LANのアクセスポイントから送信される信号なども利用される。
姿勢センサ54は携帯電話機10の傾きや動きを検出する。たとえば、姿勢センサ54は、携帯電話機10における3軸(X,Y,Z)の回転(角速度)を検出するジャイロセンサと、携帯電話機10における3軸(X,Y,Z)方向の加速度を検出する加速度センサとが、MEMS(Micro Electro Mechanical Systems)技術によって一体に形成される。そのため、姿勢センサ54は、6軸のモーションセンサと呼ばれることもある。そして、プロセッサ30は、姿勢センサ54が出力する3軸の角速度および3軸方向の加速度に基づいて、携帯電話機10の傾き(角度)や、動きを検出する。
たとえば、ディスプレイ14に何らかの画面が表示されている場合は、角速度および加速度を利用して携帯電話機10が保持される姿勢を検出し、検出された姿勢に応じた表示方向が設定される。本実施例では、縦方向の姿勢で携帯電話機10が保持されていれば表示方向は縦向きに設定され、横方向の姿勢で携帯電話機10が保持されていれば表示方向は横向きに設定される。
なお、他の実施例では、姿勢センサ54に代えて、加速度センサおよびジャイロセンサをそれぞれ設けるようにしてもよい。
方位センサ56は、電子コンパスと言うこともあり、3つの地磁気センサおよび制御回路を含む。制御回路は、3つの地磁気センサによって検出された磁気データから地磁気データを抽出して、プロセッサ30に出力する。プロセッサ30は、制御回路から出力された地磁気データに基づいて、方位角(方位または方向)を算出し、携帯電話機10の方向としてRAM46のバッファに記憶させる。ここで、本実施例の方位角は、北(N)を0度として時計回りに、東(E)が90度、南(S)が180度および西(W)が270度とする。なお、各地磁気センサは、ホール素子が用いられているが、MR(Magnet - Resistive)素子やMI(Magnet - Impedance)素子が用いられてもよい。たとえば、後述する地図機能が実行されている場合は、算出された方位角に合わせて地図が表示される。
なお、姿勢センサ54および方位センサ56はまとめて検出部と呼ばれることもある。また、他の実施例では、姿勢センサ54および方位センサ56が一体に形成されてもよい。
電源回路58は電源管理用のICであり、電源回路58は二次電池60の電圧に基づく電力をシステム全体に供給する。ここで、電源回路58が電力をシステム全体に供給している状態を、電源オン状態と言うことにする。一方、電源回路58が電力をシステム全体に供給していない状態を、電源オフ状態と言うことにする。上述したように、電源回路58は、電源オフ状態で終話キー22bが長押し(電源オン操作)されると起動され、電源オン状態で終話キー22bが長押し(電源オフ操作)されると停止される。さらに、電源オフ状態であっても、電源回路58は、図示しない外部電源コネクタに外部電源が接続され、二次電池60に電力が供給(充電)されると起動し、二次電池60の満充電状態が検出されると停止する。また、「充電」とは、外部電源コネクタが外部電源と接続され外部電源から電力の供給を受け、二次電池60が電気エネルギーを蓄えることを言う。なお、電源回路58および二次電池60は、まとめて電源部と言うことがある。
本実施例の携帯電話機10は、GPS信号などを利用して現在位置を測位する測位機能を実行することが可能である。また、このGPS機能を利用して地図上に現在位置を示す地図機能を実行することも可能である。また、地図機能にはルート案内機能が含まれており、ユーザは利用する度に任意の参照ルートを設定したり、参照ルートを予め登録しておいたりすることが出来る。
図3は地図機能が実行されている状態の表示の一例を示す図解図である。図3を参照して、ディスプレイ14の表示範囲は状態表示領域70および機能表示領域72を含む。状態表示領域70には、アンテナ34による電波受信状態を示すピクト、二次電池60の残電池容量を示すピクトおよび時刻が表示される。機能表示領域72には、地図が表示される。また、地図機能のルート案内機能が実行されているため、地図上には移動を開始する位置(以下、開始位置と言う。)と移動を終了する位置(以下、終了位置)とが示されると共に、開始位置と終了位置とを結ぶ参照ルートが示されている。なお、ルート案内機能では、ユーザが開始位置と終了位置とを決めた場合は参照ルートが自動的に設定される。そして、開始位置と終了位置とから参照ルートを自動的に設定する手法については広く一般的に知られているため、ここでの詳細な説明は省略する。
たとえば、ユーザは、地図上に表示される参照ルートに従って移動することで、開始位置から終了位置に向かうことが出来る。また、移動中は、現在位置(移動位置)が定期的に測位され参照ルートに従って正しく移動しているかが監視される。そのため、ユーザが参照ルートから外れた場合は、参照ルートに戻るためのルートが検索される。また、定期的に測位された現在位置、つまり順次の移動位置は移動経路として記録される。そして、ユーザが終了位置に到達した場合、つまり移動位置と終了位置とが一致した場合、記録された移動経路が参照ルートから外れていれば移動経路が参照ルートとして登録(記憶)される。なお、他の実施例では、ユーザが途中で参照ルートから外れた場合は、現在位置から終了位置に到達するための参照ルートが再設定されてもよい。
ここで、ルート案内機能の利用を開始するときには、現在位置が移動開始位置として測位される。また、その移動開始位置が登録された参照ルートの開始位置と一致している場合は、携帯電話機10の動作を検出することで次の位置が推定される。
本実施例では、携帯電話機10の動きは、姿勢センサ54、方位センサ56によって検出することが出来るため、姿勢センサ54および方位センサ56から得られる角速度、加速度および方位角から次の位置が推定される。すなわち、3軸の角速度から携帯電話機10が移動するときの姿勢が求められ、方位角から携帯電話機10が移動する方向が求められ、3軸の加速度から携帯電話機10が移動する量(距離)が求められる。そして、このようにして求められた、携帯電話機10が移動するときの姿勢および方向と移動する量とから、たとえば移動開始位置に対する次の位置が推定される。また、推定した位置が参照ルート上にある場合は、継続して次の位置が推定される。つまり、推定した前の位置に対して次の位置がさらに推定される。
このように、GPS信号を受信するなどの通信を行わずに測位機能を使用せずに次の位置を推定することが出来るため、通信を行うために消費されていた電力が削減され、参照ルートに従って移動しているときの消費電力を抑えることが出来る。特に、本実施例では、地図機能が実行されている状態で電源がオンにされている姿勢センサ54および方位センサ56を利用して次の位置を推定することが出来るため、上述した消費電力を抑える効果が特に発揮される。
また、推定した位置がルート上にある状態では継続して次の位置が推定されるため、ユーザが参照ルートに従って移動していれば消費電力が常に抑えられる。
次に、測位された移動開始位置が参照ルートの開始位置と一致しない場合は、次の位置は測位機能によって測位される。たとえば、ユーザが登録済みの参照ルートを読み出して移動を開始したにもかかわらず、その参照ルートの開始位置とは全く関係ない位置から移動を開始すると、移動開始位置と参照ルートの開始位置とが一致しない。このような場合は、次の位置が測位機能によって測位される。つまり、ユーザの位置が参照ルート上になくて次の位置を推定することが出来ない状態であれば、ユーザの次の位置を測位することが出来る。
また、推定した前の位置が参照ルート上にない場合も同様、ユーザの次の位置を測位することが出来る。たとえば、参照ルートに従って移動している途中に、ユーザが参照ルートから外れてしまっても、ユーザの位置を適切に測位することが出来る。
また、次の位置の推定を繰り返した場合、推定精度が低下して、ユーザが参照ルートから外れていなくても、推定された次の位置が参照ルート上にない状態になることが考えられる。ところが、本実施例では、推定性が低下して推定された次の位置が参照ルート上にない状態になれば、測位機能が実行され次の位置を測位することが出来る。そして、測位された次の位置が参照ルート上にあれば、次の位置を精度よく推定できる状態に戻る。
さらに、ユーザが参照ルートの終了位置に到達したときに、記録された移動経路を構成する全ての移動位置が参照ルート上にない場合は、記録された移動経路に基づいて新たな参照ルートが作成され、新たな参照ルートが登録される。たとえば、図4に示すように、ユーザは、図3に示す参照ルートから外れて移動し、途中で参照ルートに戻った後に終了位置に到達することが考えられる。この場合、図3に示す参照ルートに加えて、図4に示す新たな参照ルートが作成され、登録される。このように、ユーザが登録されている参照ルート以外のルートを移動すれば、移動経路が新たな参照ルートとして登録される。そのため、ユーザが移動する際に次の位置を推定できる場面が増える。
移動経路を参照ルートとして登録する際には、全ての移動位置が登録する参照ルートに含まれるように、新たな参照ルートが作成される。たとえば、推定した前の位置などが参照ルート上にあるかを判断する場合は、推定された次の位置と一致する移動位置が参照ルートから検索される。そして、推定された次の位置と一致する移動位置が見つかった場合、推定された次の位置が参照ルート上にあると判断される。
ここで、本実施例では、移動開始位置と参照ルートの開始位置とが一致するかを判断するときや、次の位置が参照ルート上にあるかを判断するとときには、基準となる位置(開始値や参照ルートを構成する各移動位置)に対して所定距離(たとえば、6m)よりも短い範囲に、移動開始位置または次の位置あれば、一致しているまたは参照ルート上にあると判断される。
なお、実施例では、GPS信号などを利用することで、移動開始位置を適切に測位することができる。さらに、次の位置が推定できる状態であれば、携帯電話機10の動きを検出する姿勢センサ54および方位センサ56を利用することで、次の位置を適切に推定することが出来る。
また、地図機能における地図データは、携帯電話機10のフラッシュメモリ44に予め記憶されていてもよいし、利用する度に必要な分がネットワークからダウンロードされてもよい。
また、他の実施例では、測位された次の位置または推定された次の位置に基づいて、表示されている地図上に現在位置を示すアイコンが表示されてもよい。
上述では本実施例の特徴を概説した。以下では、図5に示すメモリマップおよび図6に示すフロー図を用いて詳細に説明する。
図5を参照して、RAM46には、プログラム記憶領域302とデータ記憶領域304とが形成される。プログラム記憶領域302は、先に説明したように、フラッシュメモリ44(図2)に予め設定しているプログラムデータの一部または全部を読み出して記憶(展開)しておくための領域である。
プログラム記憶領域302には、参照ルートに従って移動するときに実行される参照ルート管理プログラム310などが記憶される。なお、プログラム記憶領域302には、測位機能を実行するためのプログラムおよび地図機能を実行するためのプログラムなども記憶される。
続いて、RAM46のデータ記憶領域304には、移動位置バッファ330、参照ルートバッファ332、角速度バッファ334、加速度バッファ336、方位角バッファ338、推定移動位置バッファ340および移動経路バッファ342などが設けられると共に、参照ルートデータ344などが記憶される。
移動位置バッファ330には、測位された現在位置、つまり移動開始位置および移動位置が一時的に記憶される。参照ルートバッファ332には、読み出された参照ルートが一時的に記憶される。角速度バッファ334には、姿勢センサ54から出力される3軸の角速度がそれぞれ一時的に記憶される。加速度バッファ336には、姿勢センサ54から出力される3軸の加速度がそれぞれ一時的に記憶される。方位角バッファ338には、方位センサ56の出力に基づいて算出された方位角が一時的に記憶される。推定移動位置バッファ340には、推定された次の位置が一時的に記憶される。移動経路バッファ342には、移動開始位置、測位された次の位置および推定された次の位置が、移動位置として順次記録される。
参照ルートデータ344には、ユーザなどによって予め登録された参照ルートを示すデータが含まれる。
なお、データ記憶領域304には、表示する地図データが一時的に記憶されたり、アドレス帳データなどが記憶されたり、プログラムの実行に必要な、他のフラグやタイマ(カウンタ)が設けられたりする。
プロセッサ30は、Windows(登録商標)ベースのOSや、Android(登録商標)およびiOS(登録商標)などのLinux(登録商標)ベースのOSなどその他のOSの制御下で、図6に示す参照ルート管理処理などを含む、複数のタスクを並列的に処理する。なお、地図機能が実行されているときにルート案内を行う処理も、上記の処理と並列的に処理される。そして、ルート案内を行う処理については既に周知であり、本願発明の本質的な内容ではないため、図示および説明は省略する。
図6は参照ルート管理処理のフロー図である。たとえば地図機能が実行されてルート案内機能が実行されると、参照ルート管理処理が開始される。ステップS1でプロセッサ30は、移動開始位置を測位する。つまり、測位機能が実行されて移動開始位置(現在位置)が測位される。また、測位された移動開始位置は移動位置バッファ330に記憶される。続いて、ステップS3の処理を実行するプロセッサ30は、移動開始位置を移動経路バッファ342に記録する。つまり、測位された移動開始位置が最初の移動位置として移動経路バッファ342に記録される。なお、ステップS1の処理を実行するプロセッサ30は移動開始位置測位部または測位部として機能する。
続いて、ステップS5でプロセッサ30は、移動開始位置と一致する開始位置を含む参照ルートが登録されているか否かを判断する。つまり、プロセッサ30は、移動位置バッファ330に記憶されている最初の移動位置と一致する開始位置を含む参照ルートが、参照ルートデータ344に含まれているかを判断する。ステップS5で“NO”であれば、たとえば移動開始位置と一致する開始位置を含む参照ルートが登録されていなければ、プロセッサ30はステップS17の処理に進む。なお、ステップS5の処理を実行するプロセッサ30は判断部として機能する。
ステップS5で“YES”であれば、たとえば移動開始位置と一致する開始位置を含む参照ルートが登録されていれば、ステップS7でプロセッサ30は、参照ルートを読み出す。たとえば、移動開始位置と一致する開始位置を含む参照ルートが参照ルートデータ344から読み出され、参照ルートバッファ332に記憶される。
続いて、ステップS9でプロセッサ30は、終了か否かを判断する。たとえば、ユーザが参照ルートの終了位置に到達し、ルート案内が終了したかが判断される。ステップS9で“YES”であれば、たとえばルート案内が終了すると、プロセッサ30はステップS25の処理に進む。
一方、ステップS9で“NO”であれば、たとえばルート案内中であれば、ステップS11でプロセッサ30は、次の位置を推定する。つまり、移動経路バッファ342に記録されている前の移動位置に対する次の位置が、角速度バッファ334に記憶されている角速度、加速度バッファ336に記憶されている加速度および方位角バッファ338に記憶されている方位角に基づいて推定される。また、推定された次の位置は推定移動位置バッファ340に一時的に記憶される。続いて、ステップS13でプロセッサ30は、移動位置を移動経路バッファ342に記録する。つまり、推定移動位置バッファ340に記憶されている次の位置が、移動位置として移動経路バッファ342に記録される。なお、ステップS11の処理を実行するプロセッサ30は推定部として機能する。
続いて、ステップS15でプロセッサ30は、移動位置が参照ルート上であるか否かを判断する。つまり、プロセッサ30は、参照ルートバッファ332に記憶されている参照ルート上に、推定移動位置バッファ340に記憶されている推定された次の位置があるかを判断する。なお、ステップS15の処理を実行するプロセッサ30は、参照ルート判断部またはルート判断部として機能する。
ステップS15で“YES”であれば、つまり推定した前の位置が参照ルート上にあれば、プロセッサ30はステップS9の処理に戻る。また、ルート案内が終了していなければ、推定した前の位置が参照ルート上にあるため、ステップS11では次の位置がさらに推定される。
また、ステップS15で“NO”であれば、たとえばユーザが参照ルートから外れてしまい、推定した前の位置が参照ルート上になければ、ステップS17でプロセッサ30は、ステップS9と同様、終了か否かを判断する。ステップS17で“YES”であれば、たとえばルート案内が終了すると、プロセッサ30はステップS25の処理に進む。
一方、ステップS17で“NO”であれば、つまりルート案内が継続していれば、ステップS19でプロセッサ30は、次の位置を測位する。たとえば、推定された前の位置が参照ルート上にないため、測位機能を実行して次の位置が測位される。なお、測位された次の位置は移動位置バッファ330に記憶される。続いて、ステップS21でプロセッサ30は、移動位置を移動経路バッファ342に記録する。つまり、移動位置バッファ330に記憶されている次の位置が移動経路バッファ342に記録される。なお、ステップS19の処理を実行するプロセッサ30は第1測位部または第2測位部として機能する。
続いて、ステップS23でプロセッサ30は、移動位置が参照ルート上か否かを判断する。たとえば、ユーザが参照ルートに戻ったかが判断される。また、具体的には、プロセッサ30は、移動位置バッファ330に記憶されている移動位置が、参照ルートバッファ332に記憶されている参照ルート上にあるかを判断する。ステップS23で“YES”であれば、たとえばユーザが参照ルートに戻ると、プロセッサ30はステップS9の処理に戻る。そして、ルート案内が終了してなければ、ステップS11の処理で次の位置が推定される。
一方、ステップS23で“NO”であれば、たとえばユーザが参照ルートに戻っていなければ、プロセッサ30はステップS17の処理に戻る。そして、ルート案内が終了されていなければ、ステップS19の処理で次の位置が測位される。なお、ステップ5で“NO”と判断された場合は、参照ルートバッファ332には参照ルートが記憶されていないため、ステップS23の処理では常に“NO”と判断される。
ここで、ルート案内が終了して、ステップS9またはステップS17で“YES”と判断されると、ステップS25でプロセッサ30は、移動経路が参照ルートにないか否かを判断する。つまり、ユーザが移動経路を外れずに終了位置まで移動したかが判断される。また、具体的には移動経路バッファ342に記憶されている各移動位置が、参照ルートバッファ332に記憶されている参照ルート上にないかが判断される。ステップS25で“NO”であれば、つまり移動経路バッファ342に記憶されている各移動位置が参照ルート上にあり、ユーザが参照ルートを外れずに終了位置まで移動した場合は、プロセッサ30は参照ルート管理処理を終了する。
また、ステップS25で“NO”であれば、たとえば移動経路バッファ342に記憶されている移動位置の一部が参照ルート上になく、ユーザが途中で参照ルートを外れた後に最終位置に到達した場合は、ステップS27でプロセッサ30は、移動経路に基づいて新たな参照ルートを作成する。たとえば、移動経路バッファ342に記憶されている全ての移動位置を含む参照ルートが新たに作成される。続いて、ステップS29でプロセッサ30は、新たな参照ルートを登録する。つまり、作成された新たな参照ルートが、参照ルートデータ344を構成するデータとして追加(記憶)される。そして、ステップS29の処理が終了すると、プロセッサ30は参照ルート管理処理を終了する。また、ステップS27の処理を実行するプロセッサ30は作成部として機能し、ステップS29の処理を実行するプロセッサ30は登録部として機能する。
なお、ステップS9またはステップS17では、ルート案内機能が終了するか、ルート案内機能を利用する他の機能が終了した場合も、ルート案内が終了したとして“YES”と判断される。また、これらの機能は、ユーザの操作に応じて終了してもよいし、着呼などのイベントの発生などに応じて終了してもよい。
また、ステップS25では、登録されている全ての参照ルートと記録された移動経路とが一致していないかが判断されてもよい。つまり、記録された移動経路が、ユーザがルート案内機能によって一度も通った事のないルートであるかが判断される。そして、ユーザがルート案内機能によって一度も通った事のないルートであると判断されたときに、ステップS27およびステップS29が実行され、記録された移動経路が新たな参照ルートとして登録される。
また、他の実施例では、ルート案内機能は地図機能だけではなく、他の機能でも実行されてもよい。たとえば、ルート案内機能は、ユーザが行うランニングやサイクリングなどのスポーツを補助するスポーツ補助機能や、登山をする際の登山ルートを表示する登山補助機能などでも実行されてもよい。また、スポーツ補助機能では、ランニングコースが参照ルートとしてユーザなどによって予め登録される。そして、ユーザがランニングコース(参照ルート)に従って走る際に、本実施例のように移動位置、つまり次の位置が推定される。
また、その他の実施例では、現在位置を測位するときには、GPS信号だけが利用されてもよいし、無線LANのアクセスポイントから送信される信号だけが利用されてもよい。さらに、さらにその他の実施例では、次の移動位置を推定するときに、基地局から送信される信号や、無線LANのアクセスポイントから送信される信号が利用されてもよい。
また、他の実施例では、移動開始位置が測位された後、一定距離を移動した後、または一定時間が経過した後に、次の位置が推定されてもよい。この場合、一定距離を移動している途中または一定時間が経過している途中は、一定間隔で現在位置が測位されてもよい。
また、参照ルートは、ユーザが実際に移動したときの移動経路に基づいて登録されてもよいし、ユーザが予め設定したルートが参照ルートとして登録されてもよい。
また、その他の実施例では、登録されていないルートまたは設定されていないルートを、ユーザが何度も移動している場合は、そのルートが参照ルートとして登録されてもよい。この場合、ルート案内機能が実行されていなくても、移動する時刻、移動した距離または移動した時間などの条件を満たしたときにはルート案内機能が実行されているとしてもよい。これにより、ユーザがよく通るルート上では、現在位置を推定することが出来るようになる。
また、さらにその他の実施例では、参照ルートデータ344はRAM46ではなく、フラッシュメモリ44に記憶されていてもよい。
また、他の実施例では、参照ルートを登録する際には、たとえば移動方向が変化した地点の移動位置が選択され、選択された移動位置だけが登録する参照ルートに含まれていてもよい。また、推定された次の位置が参照ルート上にあるかを判断するときには、各移動位置を結ぶ方程式が確立され、推定された次の位置がその方程式を満たすかが判断される。そして、推定された次の位置が方程式を満たした場合、推定された次の位置が参照ルート上にあると判断される。
また、その他の実施例では、ユーザは、移動中の任意の位置で、参照ルートを登録できてもよい。たとえば、その他の実施例では、ユーザが参照ルートを走って移動している場合は、姿勢センサ54から出力される加速度に基づいてユーザが走るのをやめたときに、参照ルートが自動的に登録されるようにしてもよい。また、ユーザが移動中に所定の操作を行ったときに、参照ルートが登録されるようにしてもよい。
また、さらにその他の実施例では、登録されている参照ルートを登録する前に移動経路を地図に重ねて表示し、移動経路に誤りが無いかをユーザに確認するようにしてもよい。また、ユーザが誤りに気付いた場合、ユーザはタッチ操作などによって任意に移動経路を修正することが可能である。そして、修正された移動経路に基づいて、新たな参照ルートが登録される。
また、他の実施例では、表示されている地図に重ねて現在位置を示すようにしてもよい。また、示された現在位置が違っている場合、ユーザはタッチ操作などによって現在位置を任意に補正することができる。
また、その他の実施例では、ユーザが参照ルートの任意の位置から移動を開始した場合、つまりユーザが参照ルートの途中から移動を開始した場合も、次の位置が推定されてもよい。この場合、図6に示す参照ルート管理処理におけるステップS5でプロセッサ30は、移動開始位置、つまりユーザの現在位置が参照ルート上か否かを判断する。そして、現在位置が参照ルート上であると判断された場合、ステップS5では“YES”と判断され、ステップS7以降の処理が実行される。これにより、ユーザが参照ルートの途中から移動を開始したとしても、ユーザの次の位置を推定することが出来る。そのため、ユーザが参照ルートの途中から移動を開始しても、消費電力を抑えることが出来る。
また、上記のその他の実施例では、ユーザが終了位置に到達すると、ユーザがルートの途中から移動を開始していても、そのときの移動経路は新たな参照ルートとして登録される。ただし、このような場合、新たな参照ルートが登録されないようにしてもよい。また、ユーザが終了位置に到達した後も移動を続けて他の位置で移動を終了した場合は、そのときの移動経路は新たな参照ルートとして登録されてもよい。
また、本実施例では、フロー図によって説明された処理において、ステップの繰り返しは一定間隔(たとえば、1秒程度)で行われるが、さらにその他の実施例では、一定間隔よりも長い間隔または短い間隔で繰り返されてもよい。
また、上述の実施例では、所定距離などに対して「より短い」などの言葉を用いたが「所定距離より短い」には「所定距離以下」および「所定距離未満」の意味が含まれる。
また、本実施例で用いられたプログラムは、データ配信用のサーバのHDDに記憶され、ネットワークを介して携帯電話機10に配信されてもよい。また、CD,DVD,BD(Blue-Ray Disk)などの光学ディスク、USBメモリおよびメモリカードなどの記憶媒体に複数のプログラムを記憶させた状態で、その記憶媒体が販売または配布されてもよい。そして、上記したサーバや記憶媒体などを通じてダウンロードされた、プログラムが本実施例と同等の構成の携帯電話機にインストールされた場合、本実施例と同等の効果が得られる。
そして、本明細書中で挙げた、具体的な数値は、いずれも単なる一例であり、製品の仕様変更などに応じて適宜変更可能である。