説明

地図表示装置

【課題】タッチパネルに対するスクロール指示が終わった後も地図スクロール表示を継続させる地図表示装置における地図スクロールを実現する際に、理想とするスクロールの速度変化に対して描画速度が追いつかない場合、スクロールの停止や不連続化させることなく、理想とする速度変化に近いスムーズなスクロールを実現する。
【解決手段】スクロール指示が終わった後の地図スクロール速度を、スクロール指示終了時のスクロール速度を初期値とした減衰曲線に従いスクロール料を時間と共に減少させる制御部を有し、制御部は、地図描画にかかる時間を実測し、過去の実測結果と地図データのサイズに基づき地図描画にかかる時間を予測した地図描画時間推定値を用いて、減衰曲線の減衰率が地図データのサイズが大きいほど早く減衰するように設定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、地図表示装置に関する。
【背景技術】
【0002】
タッチパネルを有するスマートフォンのヒューマン・マシン・インタフェース(Human-Machine-Interface、HMI)には、ドラッグ操作ないしフリック操作が導入されている。ドラッグ操作とは、タッチパネルに指を接触したままスライドさせる操作である。フリック操作とは、タッチパネルに指を接触させスライドした後に指をすぐ離す操作である。メニューからの項目選択や地図表示ソフトウェアにおけるスクロール操作をより直感的なものにしている。
【0003】
例として地図表示ソフトウェアをスマートフォン上で実行させることを考える。タッチパネルに対してドラッグ操作を行うと地図が指に追従するようスクロールする。一方、フリック操作を行うと最初は地図が指に追従するようスクロールし、指を離すと慣性でスクロールする。指に追従するようスクロールすることを指追従スクロール、慣性でスクロールすることを慣性スクロールと呼ぶことにする。
【0004】
スマートフォンにおけるドラッグ・フリック操作をカーナビゲーションの地図スクロール操作へ導入する方法がいくつか存在している。
【0005】
特開2009−277117号公報に記載の発明では、タッチパネルの接触から解除までのタッチパネル移動量および速度を求め、タッチパネル移動量および速度から慣性スクロールにおける地図の移動量および移動速度をテーブルによって決めている。
【0006】
特開2007−18040号公報に記載の発明では、慣性スクロールにおいて、操作の履歴から地図移動量の初期値とスクロール継続時間を算出し、スクロール経過時間とスクロール継続時間を比較してスクロールを行うかどうかの可否を決めている。
【0007】
その解決方法として地図スクロールにおける先読み描画に関して特許文献3に記載されている。
【0008】
一方、従来ナビ上での地図スクロールにおいて、スクロール速度を高めるために先読み描画が用いられている。
【0009】
特開平11−15371号公報に記載の発明では、通常は地図を所定の方向にスクロールすることによりスクロールを表現するのに対し、地図の先読み描画では地図表示領域が所定の境界線を越えた場合、引き続き同じ方向でスクロールしてもいいように、別の描画バッファでその時点での表示領域を端とした地図を描画する。さらに、スクロール要求の内容に従って先読み描画対象となる地図データを切り替えることにより、高速スクロールが要求される場合は少ない地図データを、低速スクロールの場合は多くの地図データを、それぞれ先読み描画する。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2009−277117号公報
【特許文献2】特開2007−18040号公報
【特許文献3】特開平11−15371号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかし、自然現象を考慮したスムーズかつ直感的な慣性スクロールを行う際に、理想とするスクロール速度変化に対して地図の描画が追いつかない場合、特許文献1ないし2を用いたとしても、地図欠けが発生したりスクロールが途中で停止したりしてしまう。
【0012】
また、ダブルバッファを前提とした特許文献3の先読み描画を用いても、裏面の地図先読み描画に時間がかかる場合は表示面がスクロールの端に来るとスクロールが止まってしまい、地図スクロール速度を急激に落とすと、スクロール速度が高速と低速に分かれてスクロールが不連続となり、スクロールにスムーズ性がなくなってしまう。
【0013】
本発明は、フリック操作による地図スクロールを実現する際において、理想とするスクロールの速度変化に対して描画速度が追いつかない場合、スクロールの停止や不連続化させることなく、理想とする速度変化に近いスムーズなスクロールを実現することを目的とする。
【課題を解決するための手段】
【0014】
本発明は、タッチパネルに対するスクロール指示が終わった後も地図スクロール表示を継続させる地図表示装置であって、地図スクロール速度の変化は、スクロール指示終了時のスクロール速度を初期値とした減衰曲線に従いスクロール料を時間と共に減少させる制御部を有し、制御部は、地図描画にかかる時間を実測し、過去の実測結果と地図データのサイズに基づき地図描画にかかる時間を予測した地図描画時間推定値を用いて、減衰曲線の減衰率が地図データのサイズが大きいほど早く減衰するように設定する。
【発明の効果】
【0015】
地図データサイズから地図の描画時間を推定し減衰時定数を変化させることにより、理想の速度に対して地図の描画時間が間に合わなくても、理想とする速度変化に近いスムーズなスクロールを実現することができる。
【図面の簡単な説明】
【0016】
【図1】本発明の実施例における地図表示装置のシステム構成を示した図である。
【図2】本発明の実施例における地図表示装置のハードウェア構成を示す図である。
【図3】本発明の実施例における地図描画バッファと地図表示領域の関係を説明する図である。
【図4】RAM内のデータ構造を示した図である。
【図5】地図表示全体の処理フローである。
【図6】地図描画処理のフロー図である。
【図7】移動量算出処理のフローである。
【図8】地図移動量減衰時定数算出処理のフローである。
【図9】地図メッシュデータのデータ構造を示した図である。
【図10】地図スクロール速度の時系列変化を示したグラフである。
【図11】地図描画時間推定値を用いた慣性スクロールによる地図表示の遷移を示した図である。
【発明を実施するための形態】
【0017】
図3に、本発明を用いた地図表示装置10のハードウェア構成の一例を示す。地図表示装置10は、MPU1、システムバス2、RAM5、I/O4、DU3、タッチパネルディスプレイ6、ストレージ7から成り立っている。タッチパネルディスプレイ6は、表示部8、操作入力装置9から成り立っている。MPU1は、システムバス2を介してRAM5やI/O4とデータ通信を行うことにより、I/O4に接続された機器からデータを読み取りRAM5へデータを一時保存しながら演算処理を行い、I/O4に接続された機器へ演算結果を返すものである。
【0018】
I/O4は、MPU1の入出力インターフェースであり、タッチパネルディスプレイ6内の操作入力装置9、ストレージ7などの入出力装置とデータの送受信を行う。DU3は表示制御装置(Display-Unit)であり、システムバス2を介してRAM5からデータを取得しタッチパネルディスプレイ6内の表示部8に表示するものである。ストレージ7は地図のデータを格納するものである。なお、タッチパネルディスプレイ6は一体型ではなく、表示部8と操作入力装置9に分離した形になっていてもよい。
【0019】
図1は、図2に示したハードウェアで実現した地図表示装置10の機能ブロックの一例を示した図である。地図表示装置10は、操作入力受付部11、スクロール操作判定部12、ハードウェアプロファイル記憶部13、地図描画部30、地図移動量算出部20、地図表示始点変更部14、地図表示部分切換部15、地図表示部16から構成されている。
【0020】
操作入力受付部11は、操作入力装置9に相当する。スクロール操作判定部12、地図描画部30の一部、地図移動量算出部20は、MPU1で実現される。ハードウェアプロファイル記憶部13はRAM5上に設けられる。地図描画部30の一部および地図表示始点変更部14、地図表示部分切換部15、地図表示部16は、DU3で実現される。
【0021】
操作入力受付部11は、タッチパネルディスプレイ6の状態を取得し、その情報をRAM5に記憶する。タッチパネルディスプレイ6の状態とは、画面に指がタッチされた(指を触れた)ことを表す状態、画面から指がリリースされた(指を離した)ことを表す状態、画面に指がタッチされたままで指が動いていることを示す状態、そして画面に指がタッチされている状態における指のタッチ位置(表示部8上の座標位置)の情報である。
【0022】
スクロール操作判定部12は、操作入力受付部11から得られたタッチパネルディスプレイ6の状態から、スクロール操作の種類を判定し地図描画部30へ送信する。スクロール操作の種類とは、画面に触れたまま指をスライドさせるドラッグ操作や、指を画面に触れて軽く払うように動かすフリック操作などのことを指す。また、スクロール操作判定部12は指のタッチ位置の履歴から指移動量を求め、スクロール操作の種類と共に地図移動量算出部20へ送信する。
【0023】
地図描画部30は、スクロール操作判定部12が判定したスクロール操作の種類に基づき、スクロール操作後の状態に対応した地図を画面に描画し、その地図描画に要した地図描画時間を計測して、描画に用いた地図データサイズと一緒に地図描画時間推定部22へ送信する。
【0024】
地図描画部30は、地図データサイズ取得部31、地図データ読み込み部32、地図描画時間計測部33、地図描画実処理部34から構成される。地図データサイズ取得部31は、指がリリースされた状態を示す情報をスクロール操作判定部12から受信したとき、描画しようとする地図のデータサイズを取得して地図描画時間推定部22へ送信する。描画しようとする地図のデータサイズはメッシュ単位を想定している。地図データ読み込み部32は、地図データサイズ取得部31による地図データサイズ取得をトリガとして、描画しようとする地図データをストレージ7から読み込んでRAM5に格納する。
【0025】
地図描画時間計測部33は、スクロール操作により行われる地図描画の開始から終了までの時間を計測する。地図描画実処理部34は、地図データ読み込み部32がRAM5に読み込んだ地図データに基づいて描画処理を行い、その描画結果をRAM5上に設けた地図描画バッファの描画領域(描画面)に格納する。そして、地図の描画が完了した際には、表示部8に描画データを出力する地図描画バッファの表示面を変更するよう地図表示部分切換部15に信号を送信する。
【0026】
地図移動量算出部20は、スクロール操作判定部12から得られたスクロール操作の状態および指移動量を基に、地図移動量現在値を算出して地図表示始点変更部14に送信する。地図移動量算出部20は、地図移動量初期値算出部21と地図描画時間推定部22と地図移動量減衰時定数算出部23とスクロール経過時間計測部24と地図移動量現在値算出部25から構成されている。
【0027】
地図移動量初期値算出部21は、スクロール操作判定部12から指移動量を受信したとき、指移動量に基づいて地図移動量の初期値を算出する。この地図移動量初期値は、スクロール操作によって地図表示始点が単位時間あたりに移動する量の初期値を指し、地図のスクロール速度の初期値である。従って、地図移動量初期値は、スクロール操作の種類が“ドラッグ操作”の状態の場合、スクロール操作の判定タイミング毎における指移動量によって更新される。地図描画時間推定部22は、地図描画部30から得られた地図データサイズ、および前回の地図描画時における地図描画時間計測値と、ハードウェアプロファイル記憶部13から得られた、地図表示装置10におけるCPU周波数、CPUコア数、RAM容量、バス周波数、GPU周波数、VRAM容量の値から、現在の地図描画時間推定値を求め、地図移動量減衰時定数算出部23に送信する。
【0028】
地図移動量減衰時定数算出部23は、地図移動量の初期値と現在の地図描画時間推定値から地図移動量の減衰時定数を算出し、地図移動量現在値算出部25へ送信する。スクロール経過時間計測部24は、スクロール操作判定部12からの指移動量の受信をトリガとして地図画面のスクロール開始から現在までの時間を計測し、地図移動量現在値算出部25へ送信する。
【0029】
地図移動量現在値算出部25は、設定されているスクロール操作の種類が“ドラッグ操作”の場合には、指の移動に追従して地図を移動させるため、地図移動量初期値算出部21で計算された地図移動量の初期値を地図移動量の現在値として出力する。また設定されているスクロール操作の種類が“フリック操作”の場合には、慣性スクロールにより地図を移動させるため、地図移動量の初期値と減衰時定数とスクロール経過時間から地図移動量の現在値を算出し、地図表示始点変更部14へ送信して地図表示始点に反映する。地図移動量現在値は、スクロール操作によって地図表示始点が単位時間あたりに移動する量であり、地図のスクロール速度に相当する。
【0030】
地図表示始点変更部14は、地図スクロール表示をするために、地図移動量算出部20から地図移動量の現在値を受信し、地図描画バッファ内の表示面における地図表示領域の始点座標である地図表示始点を変更する。地図表示部分切換部15は、図3に示すようにダブルバッファを構成している地図描画バッファの表示面と描画面を切り換えることにより地図描画の際のちらつきを抑えるためのものである。地図表示部16は、地図表示部分切換部15で表示面として指定した地図描画バッファの領域の内、地図表示始点変更部14により変更した地図表示領域の始点(地図表示始点)に従って、地図表示領域をタッチパネルディスプレイ6の表示部8へ出力する。
【0031】
図4は、本実施例におけるRAM5に格納される主な情報のデータ構造を示した図である。RAM5には、地図描画バッファ、ハードウェアプロファイル、描画用地図データが格納されている。
【0032】
地図描画バッファは、前述のように、地図データ読み込み部32によりストレージ7から読み込まれた描画用地図データに基づいて地図描画実処理部34が描画した地図を格納するメモリ領域である。本実施例ではダブルバッファ構成を前提としており、ダブルバッファの片方を表示面とし、他方を描画面とする。表示面および描画面の切り換えは地図描画部30の指令により地図表示部分切換部15が行う。描画用地図データは、地図データサイズ、地図データID、地図データ本体から成り立っている。
【0033】
ハードウェアプロファイルは、本実施例のハードウェアのスペックに関する情報を示したものであり、ハードウェアプロファイル記憶部13に対応する。ハードウェアプロファイルは、MPU1の動作周波数を示すMPU周波数、MPU1のCPUコア数を示すMPUコア数、RAM5の容量を示すRAM容量、システムバス2の動作周波数を示すバス周波数、DU3の動作周波数を示すDU周波数、DU3に搭載されているRAMの容量を示すVRAM容量などの情報を含んでいる。
【0034】
RAM5には、また、スクロール操作判定部12によって判定されたスクロール操作の種類の情報であるスクロール種類の他、スクロール経過時間計測部24によって算出された慣性スクロールが開始してから現在までの時間を表すスクロール経過時間や、指接触位置履歴、地図描画時間計測履歴、地図描画時間補正係数、地図描画余裕時間最大値、地図表示始点、地図移動量減衰時定数、地図移動量減衰時定数最小値、地図移動量初期値が格納される。
【0035】
指接触位置履歴は、指がタッチパネルディスプレイ6に接触した指接触位置およびその時間をあらわすタイムスタンプの履歴を記録したデータであり、これを元に指移動量が算出される。この指移動量は、タッチパネルディスプレイ6上に指が接触したまま、一定の時間間隔のうち指がどれだけ動いたかを示すものである。
【0036】
地図描画時間計測履歴は、地図描画部30がストレージ7から地図データを読み込み、これを地図描画バッファに描画するまでの時間を、地図描画時間計測部33が計測した結果の履歴であり、地図描画を1回行う毎に作成される地図描画時間計測データから成り立っている。地図描画時間計測履歴のデータは、地図描画時間推定部22により読み込まれ、現在の地図描画時間推定値を求める際に使用される。地図描画時間計測履歴の地図描画時間計測データは、地図描画時間の計測対象となった地図データの地図データサイズ、地図描画時間計測値、その際に地図描画時間推定部22によって推定された地図描画時間推定値を含んでいる。地図描画時間推定値は、地図描画バッファの描画面に対して地図を描画するのに要する処理時間を推定した値である。
【0037】
地図描画時間補正係数は、後述する様に、ハードウェアプロファイルが地図描画時間推定値に及ぼす影響を補正する係数であり、地図描画時間推定部22における地図描画時間推定値の算出に使用される。
【0038】
地図描画余裕時間最大値は、地図描画時間推定値が取りうる値の最大値であり、地図移動量減衰時定数算出部23で使用される。この地図描画余裕時間最大値は、地図描画バッファにおける地図の表示領域の取りうる移動距離を地図移動量初期値で割ったものを用いてもよいし、最初から適切な値を代入しておくのもよいものとする。
【0039】
地図移動量減衰時定数は、慣性スクロール状態での時間に対する単位時間あたりの地図移動量、すなわち地図スクロール速度を1次遅れステップ応答の計算式により算出する際の時定数である。地図移動量減衰時定数は、地図移動量減衰時定数算出部23によって算出され、地図移動量現在値算出部25によって読み込まれ、地図移動量現在値の算出に使用される。
【0040】
地図移動量減衰時定数最小値は、地図描画余裕時間最大値が現在の地図描画時間推定値以下だった場合に、地図移動量減衰時定数として使用する値である。地図移動量減衰時定数最小値は、初期値として所定の値が代入されており、地図移動量減衰時定数算出部によって読み込まれ使用される。
【0041】
図5は、本実施例における地図表示装置10全体の処理フローを示した図である。まず地図表示装置10では、タッチパネルディスプレイ6への画面タッチの待ち処理を行う(401)。画面へのタッチが検出された際、操作入力受付部11は、タッチ位置およびそのタイムスタンプを指接触位置としてRAM5へ記憶する(402)。次に、操作入力受付部11が指リリースを検出したか判定する(403)。指リリースが検出されないままであれば、指の移動量を検出する(404)。そして指移動が検出された場合、スクロール操作判定部12はドラッグ操作が行われたと判断し、スクロール操作の種類として“ドラッグ操作”をRAM5のスクロール種類に記憶する。スクロール操作の種類が“ドラッグ操作”と判断されたとき、地図表示始点変更部14では、指移動量から求めた地図移動量現在値の分だけ地図表示始点をずらす(405)。
【0042】
その後、地図表示装置10は、地図の表示領域が予め地図データの各メッシュに対して設定した境界線内に収まっているかどうかを判定し(406)、もし境界線内に収まっておらず境界線を跨いでいるかあるいは境界線の外に出ている場合には、別スレッドで現在の表示位置を中心に地図を描画するよう地図描画部30に要求して(407)、指追従スクロールの表示を行い、指リリース検出判定処理(403)に戻る。また、指が触れたまま指移動が検出されてない場合(404:No)、および表示領域が境界線内にある場合(406:Yes)にも、指リリース検出判定処理(403)に戻る。
【0043】
指リリース検出判定処理(403)で指リリースが検出された場合、スクロール操作判定部12は、指接触位置履歴のデータから指の移動速度(指速度)を算出し、指が画面から離れた時の指速度を判断する(408)。指速度が0の場合、即ち指が止まった状態からリリースされた場合には、地図描画部30に対し、別スレッドで現在の表示位置を中心に地図を描画するよう要求する(409)。
【0044】
地図表示装置10は、描画面として選択されている地図描画バッファの領域に対して地図描画が完了すると、地図表示部分切換部15に地図描画バッファの表示面と描画面の切り換えを要求し(410)、処理を完了する。
【0045】
一方、指速度が0より大きい場合(408:「それ以外」)、スクロール操作判定部12は、スクロール操作の種類を“フリック操作”と判定して、スクロール経過時間計測部24は、スクロール経過時間の計測を開始する(411)。
【0046】
ここで所定の時間内で再び画面へのタッチが検出されたか調べ(412)、画面へのタッチが検出された場合は、再びスクロール操作の入力が開始されたものと判断して、先述の指リリース検出判定処理(402)に戻る。所定の時間内で画面へのタッチが検出されない場合、スクロール経過時間計測部24ではスクロール経過時間を算出する(413)。その後、地図移動量現在値算出部25では、慣性スクロールによる地図移動量現在値を算出する(414)。そして、地図表示始点変更部14は、地図移動量算出部20からの地図移動量現在値の値に従って地図表示始点を更新し、地図の表示領域を移動する(415)。
【0047】
ここで地図移動量現在値を判断し(416)、地図移動量の値が0でない場合、即ち地図の慣性スクロールの処理中で表示領域が移動した場合には、表示領域が表示面の端にあるかどうかチェックする(417)。もし表示領域が表示面端にある場合、地図表示部分切換部15は、地図描画バッファの表示面と描画面の切り換えを行い(418)、表示範囲移動後の表示位置を中心に別スレッドで地図を描画するよう地図描画部30に要求して(419)、画面タッチ検出判定処理(413)に戻る。そうでない場合は直接画面タッチ検出判定処理(412)に戻る。
【0048】
一方、慣性スクロールによる地図表示領域の移動量が0の場合、スクロール操作判定部12は、スクロール操作の種類を“フリック操作終了”と判断する。そしてスクロール経過時間計測部24はスクロール経過時間の計測を終了する(420)。そして地図描画が完了した際に地図表示部分切換部15に地図描画バッファの表示面と描画面の切り換えを要求し(410)、処理を完了する。
【0049】
図6は本実施例における地図描画処理の処理フローである。本実施例の地図表示処理装置では、マルチスレッド機構を有するOS(Operating System)が動作しているものとし、地図表示を行う図5の処理フローを実行するスレッドとは別のスレッドにより地図描画処理(407,409,419)を実行する。地図表示を行う図5の処理フローにおける処理スレッドは、操作入力受付部11、スクロール操作判定部12、地図移動量算出部20の処理に相当し、地図描画スレッドは地図描画部30の処理に相当する。初期状態において地図描画スレッドは地図表示スレッドからの地図描画要求を待ち、この地図描画要求を受けて処理を開始する。
【0050】
地図描画処理において、地図表示を行うスレッドでは、地図描画バッファの描画面への地図描画要求を作成し(501)、地図描画スレッドにこの地図描画要求を送信してから(502)、地図データサイズ取得待ち状態に入り(503)、地図描画スレッドからの描画する地図データサイズと前回の地図描画時における地図描画時間計測値を受け取り(504)、次の処理へ進む。
【0051】
地図描画スレッドは、地図描画要求を受信すると(505)、ストレージ7から描画に用いる地図メッシュデータの地図データサイズを読み込み、RAM5から読み出した前回の地図描画処理における地図描画時間計測値と一緒に地図表示スレッドへ送信する(506)。地図描画処理が初回の場合は、前回の地図描画時間計測値として適切な初期値をRAM5に設定しておくものとする。地図描画スレッドは、地図描画時間計測部33によって地図描画時間の計測を開始する(507)。その後ストレージ7から地図データIDおよび地図データ本体を読み込んでRAM5に格納する(508)。地図描画実処理部34は、RAM5上に読み込まれた描画用の地図データを用いて地図描画バッファの描画面に地図データを展開し描画する(509)。地図描画展開が完了した後、地図描画時間計測部33による地図描画時間の計測を終了し(510)、その地図描画時間計測値をRAM5に記憶する(511)。そして地図描画の後処理を行った後(512)、地図描画スレッドは停止する。
【0052】
図7は本実施例における移動量算出の処理フローである。本発明では、地図の描画量を摩擦係数と見立てることにより物理法則に沿った運動方程式を模した直感的な慣性スクロールを実現する。
【0053】
地図描画時間推定部22は、RAM5からハードウェアプロファイルとしてたとえばMPU周波数FC(Hz)、MPUコア数NC、RAM容量NR(Bytes)、バス周波数FB(Hz)、DU周波数FG(Hz)、VRAM容量NV(Bytes)を読み出し、地図描画時間補正係数αHを、次の(式1)により計算する(601)。
【0054】
ここでFC0、NC0、NR0、FB0、FG0、NV0は基準とするハードウェアプロファイルによる定数であり、wFC、wNC、wNR、wFB、wFG、wNVはハードウェアプロファイル各変数の重みを示す。
【0055】
【数1】

【0056】
この値は、地図表示装置のハードウェア構成が分かれば、予め計算しておくことができるため、RAM5には、ハードウェアプロファイルの替わりに、予め計算しておいた地図描画時間補正係数αHを格納しておき、これを参照するようにしても良い。
【0057】
次に、地図移動量初期値算出部21は、スクロール操作判定部12で求めた指リリース時の指速度から、地図移動量初期値を算出する(602)。地図移動量初期値は、そのX方向成分をvMX0(dots/秒)、Y方向成分をvMY0(dots/秒)とすると、指速度のX方向成分vFX(dots/秒)、Y方向成分vFY(dots/秒)、また指接触位置の計測時間間隔ΔTF(秒)、地図表示を移動する時間間隔ΔTM(秒)とから、(式2)により求める。
【0058】
【数2】

【0059】
次に、地図描画時間推定部22は、現在の地図描画時間推定値を算出する(603)。今回の地図データサイズをNd(Bytes)、地図データサイズ−地図描画時間変換係数をβ(秒/Bytes)とすると、現在の地図描画時間推定値Te(秒)は、次の(式3)で求まる。なお、地図データサイズ−地図描画時間変換係数βは、地図描画時間計測履歴を用いた学習により求める。
【0060】
【数3】

【0061】
次に、地図移動量減衰時定数算出部23は、地図移動量初期値と地図表示始点から地図描画余裕時間最大値を求める(604)。そこで、X+方向、X−方向、Y+方向、Y−方向のうち、慣性スクロールにおける地図スクロール方向に含まれ、かつ地図表示始点で規定される表示領域枠から地図描画バッファ端までの距離が最短の方向を求める。たとえばX+方向が最短の方向であり、その方向の地図描画バッファ端までの距離がx(dots)であると仮定すると、地図描画余裕時間最大値Tx(s)は(式4)によって求める。
【0062】
【数4】

【0063】
次に、地図移動量減衰時定数算出処理を行う(605)。図8は、本実施例における地図移動量減衰時定数算出処理(605)のフローを示したものである。まず現在の地図描画時間推定値Teと地図描画余裕時間最大値Txとの大小を比較する。もし地図描画余裕時間最大値Txのほうが小さければ、地図移動量減衰時定数Tmを予め定めた最小値Tmmin(秒)とする。そうでなければ、(式5)によって地図描画時間減衰時定数Tmを求める。ここでγは時間Tx−Te以内に所定の値に収束するための係数(γ>1)である。
【0064】
【数5】

【0065】
図7の説明に戻り、最後に地図移動量現在値算出部25は、摩擦力を考慮した物体の運動方程式による減衰曲線に基づき地図スクロール速度を変化させた地図移動量現在値を算出する(606)。スクロール経過時間をt(秒)とした時の地図移動量現在値のX方向成分vMX(t)(dots/秒)とY方向成分vMY(t)(dots/秒)は、地図移動量現在値のX方向成分vMX0(dots/秒)とY方向成分vMY0(dots/秒)と地図描画時間減衰時定数Tmから、(式6)によって求める。
【0066】
【数6】

【0067】
図9は本実施例におけるストレージ内の地図メッシュデータのデータ構造を示した図である。ストレージ7には複数の地図メッシュデータが格納される。地図メッシュデータは、地図メッシュ単位に分割された地図データであり、地図データサイズ、地図データID、地図データ本体から構成される。地図データサイズは、地図メッシュデータのサイズであり、地図データサイズ取得部31によってRAM5に読み込まれる。地図データIDは、地図メッシュデータのIDであり、地図メッシュによって一意に決まる。地図データ本体は、地図メッシュにおける地図データ本体を指し、道路や背景など地図の表示に必要なデータである。ストレージ7にはこの他、複数の地図メッシュデータを管理するためのデータである地図管理データが格納され、例えば地図メッシュ間の相互関係などを表している。
【0068】
図10は本実施例における地図スクロール速度の時系列変化を示したグラフである。横軸は時間、縦軸は地図スクロール速度を示している。画面に指を触れながら指を動かす間は指追従スクロールを行い、指の動きに応じた地図スクロール速度が発生する。指を離すと(式6)に従ってスクロール速度が遅くなるように地図がスクロールする慣性スクロールを行う。太線は理想となる地図スクロール速度変化を、破線は地図描画推定時間が長いときのスクロール変化を、それぞれ示す。地図描画時間が長い場合、地図の速度を落としつつ理想となる地図スクロール速度曲線の形状に近い形で減衰するため、理想となる地図スクロール速度変化と同様に直感的な操作が可能である。
【0069】
本発明の慣性スクロール1回により、地図はスクロール速度×時間の積分値の距離だけスクロールすることになる。1次遅れステップ応答に対する減衰曲線をv(t)=v0×exp(−t/T)とした場合、その距離はv0×Tとなる。
【0070】
このように、本発明では地図スクロール速度の時系列変化を減衰曲線とし、その減衰率を地図データサイズを考慮して変化させている。そして地図データサイズが大きいときには減衰率が高くなるようにすることで、スクロール速度が相対的に下がり、地図描画バッファの描画面に対する地図描画が完了してから地図スクロールが表示面の端に来るようになるため、慣性スクロールのスムーズ性を保持することができる。
【0071】
本実施例におけるフリック操作による地図表示において、図11に示すように、地図描画バッファの表示面上の地図表示領域に対し、画面をタッチして指を左から右へ横に動かし、指を離す直前には指がX+方向に動き、地図表示領域から地図描画バッファの端までの距離がx(dot)とする。この場合、慣性スクロールにより地図は地図スクロール速度v(t)によりX+方向へ進んでいくものとする。この時、本実施例における地図描画時間推定値を用いた慣性スクロール操作による地図表示によると、地図描画バッファの描画面に対する地図描画の地図描画時間推定値により、地図描画バッファの右端に地図表示領域が接するまでに完了すると判断される場合には、図11(a)のように理想的な慣性スクロールにより地図表示領域が動いてゆく。しかし、地図の描画量が多く理想的な慣性スクロールにより地図描画バッファの右端に地図表示領域が達するときに、地図描画バッファの描画面に対して描画中であると判断される場合には、図11(b)のように地図表示領域の移動距離はこれよりv0Te分だけ縮まるため、地図描画バッファの描画面に別の地図メッシュを描画している途中でも地図描画バッファの表示面の範囲内でスクロールできるため、地図欠けや地図スクロール停止がなくなる。
【符号の説明】
【0072】
1 MPU
2 システムバス
3 DU
4 I/O
5 RAM
6 タッチパネルディスプレイ
7 ストレージ
8 表示部
9 操作入力装置
7 ストレージ
11 操作入力受付部
12 スクロール操作判定部
13 ハードウェアプロファイル記憶部
14 地図表示始点変更部
15 地図表示部分切換部
16 地図表示部
20 地図移動量算出部
21 地図移動量初期値算出部
22 地図描画時間推定部
23 地図移動量減衰時定数算出部
24 スクロール経過時間計測部
25 地図移動量現在値算出部
30 地図描画部
31 地図データサイズ取得部
32 地図データ読み込み部
33 地図描画時間計測部
34 地図描画実処理部

【特許請求の範囲】
【請求項1】
タッチパネルに対して入力されたスクロール指示に応じて地図表示をスクロールさせ、タッチパネルに対するスクロール指示が終了した後はスクロール速度を減少させてスクロール表示を継続させる制御部を備えた地図表示装置であって、
前記制御部は、
スクロールさせる地図の描画に要した描画時間を計測する描画時間計測手段と、
描画時間の履歴に基づき描画する地図データのデータ量から、地図描画にかかる時間を予測した地図描画時間推定値を求める描画時間推定手段と、
該地図描画時間推定値に基づき、前記スクロール指示が終了してからの経過時間に応じて地図のスクロール量を減少させる地図移動量算出手段とを備え、
前記地図移動量算出手段は、
前記スクロール指示終了時における地図表示のスクロール速度を初期値として減衰曲線に従いスクロール速度を前記経過時間と共に減少させて地図スクロール量を求め、
当該減衰曲線の減衰率は、描画する地図データのデータ量が大きいほど早く減衰するように設定する
ことを特徴とする地図表示装置。
【請求項2】
請求項1に記載の地図表示装置において、前記地図表示装置は、自装置の性能指標を記憶したハードウェアプロファイルを有し、前記描画時間推定手段は、当該ハードウェアプロファイルを読み込み、ハードウェアプロファイルに応じて地図描画時間推定値を変更することを特徴とする地図表示装置。
【請求項3】
請求項1または2に記載の地図表示装置において、前記地図移動量算出手段は、前記スクロール指示が終了してから前記地図描画時間推定値が経過するまでのスクロール量の変化が一時遅れステップ応答に従い減少するように該スクロール量を求め、
前記減衰率は当該一時遅れステップ応答の時定数とすることを特徴とする地図表示装置。
【請求項4】
タッチパネルに対して入力されたスクロール指示に応じて地図表示をスクロールさせ、タッチパネルに対するスクロール指示が終了した後はスクロール速度を減少させてスクロール表示を継続させる地図表示方法であって、
スクロールさせる地図の描画に要した描画時間を計測する描画時間計測処理と、
描画時間の履歴に基づき描画する地図データのデータ量から、地図描画にかかる時間を予測した地図描画時間推定値を求める描画時間推定処理と、
該地図描画時間推定値に基づき、前記スクロール指示が終了してからの経過時間に応じて地図のスクロール量を減少させる地図移動量算出処理により地図のスクロール量を求め、
前記地図移動量算出処理では、
前記スクロール指示終了時における地図表示のスクロール速度を初期値として減衰曲線に従いスクロール速度を前記経過時間と共に減少させて地図スクロール量を求め、
当該減衰曲線の減衰率は、描画する地図データのデータ量が大きいほど早く減衰するように設定する
ことを特徴とする地図表示方法。
【請求項5】
請求項4に記載の地図表示方法において、前記描画時間推定処理では、地図表示を行う処理装置の性能指標を記憶したハードウェアプロファイルに応じて地図描画時間推定値を変更することを特徴とする地図表示方法。
【請求項6】
請求項4または5に記載の地図表示方法において、前記地図移動量算出処理では、前記スクロール指示が終了してから前記地図描画時間推定値が経過するまでのスクロール量の変化が一時遅れステップ応答に従い減少するように該スクロール量を求め、
前記減衰率は当該一時遅れステップ応答の時定数とすることを特徴とする地図表示方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2013−44760(P2013−44760A)
【公開日】平成25年3月4日(2013.3.4)
【国際特許分類】
【出願番号】特願2011−180098(P2011−180098)
【出願日】平成23年8月22日(2011.8.22)
【出願人】(000001487)クラリオン株式会社 (1,722)
【Fターム(参考)】