(57)【特許請求の範囲】
【請求項１】
タッチパネルに対して入力されたスクロール指示に応じて地図表示をスクロールさせ、タッチパネルに対するスクロール指示が終了した後はスクロール速度を減少させてスクロール表示を継続させる制御部を備えた地図表示装置であって、
前記制御部は、
スクロールさせる地図の描画に要した描画時間を計測する描画時間計測手段と、
描画時間の履歴に基づき描画する地図データのデータ量から、地図描画にかかる時間を予測した地図描画時間推定値を求める描画時間推定手段と、
該地図描画時間推定値に基づき、前記スクロール指示が終了してからの経過時間に応じて地図のスクロール量を減少させる地図移動量算出手段とを備え、
前記地図移動量算出手段は、
前記スクロール指示終了時における地図表示のスクロール速度を初期値として減衰曲線に従いスクロール速度を前記経過時間と共に減少させて地図スクロール量を求め、
当該減衰曲線の減衰率は、描画する地図データのデータ量が大きいほど早く減衰するように設定することを特徴とする地図表示装置。
【請求項２】
請求項１に記載の地図表示装置において、前記地図表示装置は、自装置の性能指標を記憶したハードウェアプロファイルを有し、前記描画時間推定手段は、当該ハードウェアプロファイルを読み込み、ハードウェアプロファイルに応じて地図描画時間推定値を変更することを特徴とする地図表示装置。
【請求項３】
請求項１または２に記載の地図表示装置において、前記地図移動量算出手段は、前記スクロール指示が終了してから前記地図描画時間推定値が経過するまでのスクロール量の変化が一次遅れステップ応答に従い減少するように該スクロール量を求め、
前記減衰率は当該一次遅れステップ応答の時定数とすることを特徴とする地図表示装置。
【請求項４】
タッチパネルに対して入力されたスクロール指示に応じて地図表示をスクロールさせ、タッチパネルに対するスクロール指示が終了した後はスクロール速度を減少させてスクロール表示を継続させる地図表示方法であって、
スクロールさせる地図の描画に要した描画時間を計測する描画時間計測処理と、
描画時間の履歴に基づき描画する地図データのデータ量から、地図描画にかかる時間を予測した地図描画時間推定値を求める描画時間推定処理と、
該地図描画時間推定値に基づき、前記スクロール指示が終了してからの経過時間に応じて地図のスクロール量を減少させる地図移動量算出処理により地図のスクロール量を求め、
前記地図移動量算出処理では、
前記スクロール指示終了時における地図表示のスクロール速度を初期値として減衰曲線に従いスクロール速度を前記経過時間と共に減少させて地図スクロール量を求め、
当該減衰曲線の減衰率は、描画する地図データのデータ量が大きいほど早く減衰するように設定することを特徴とする地図表示方法。
【請求項５】
請求項４に記載の地図表示方法において、前記描画時間推定処理では、地図表示を行う処理装置の性能指標を記憶したハードウェアプロファイルに応じて地図描画時間推定値を変更することを特徴とする地図表示方法。
【請求項６】
請求項４または５に記載の地図表示方法において、前記地図移動量算出処理では、前記スクロール指示が終了してから前記地図描画時間推定値が経過するまでのスクロール量の変化が一次遅れステップ応答に従い減少するように該スクロール量を求め、
前記減衰率は当該一次遅れステップ応答の時定数とすることを特徴とする地図表示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、地図表示装置及び地図表示方法に関する。
【背景技術】
【０００２】
タッチパネルを有するスマートフォンのヒューマン・マシン・インタフェース（Human-Machine-Interface、ＨＭＩ）には、ドラッグ操作ないしフリック操作が導入されている。ドラッグ操作とは、タッチパネルに指を接触したままスライドさせる操作である。フリック操作とは、タッチパネルに指を接触させスライドした後に指をすぐ離す操作である。メニューからの項目選択や地図表示ソフトウェアにおけるスクロール操作をより直感的なものにしている。
【０００３】
例として地図表示ソフトウェアをスマートフォン上で実行させることを考える。タッチパネルに対してドラッグ操作を行うと地図が指に追従するようスクロールする。一方、フリック操作を行うと最初は地図が指に追従するようスクロールし、指を離すと慣性でスクロールする。指に追従するようスクロールすることを指追従スクロール、慣性でスクロールすることを慣性スクロールと呼ぶことにする。
【０００４】
スマートフォンにおけるドラッグ・フリック操作をカーナビゲーションの地図スクロール操作へ導入する方法がいくつか存在している。
【０００５】
特開２００９−２７７１１７号公報に記載の発明では、タッチパネルの接触から解除までのタッチパネル移動量および速度を求め、タッチパネル移動量および速度から慣性スクロールにおける地図の移動量および移動速度をテーブルによって決めている。
【０００６】
特開２００７−１８０４０号公報に記載の発明では、慣性スクロールにおいて、操作の履歴から地図移動量の初期値とスクロール継続時間を算出し、スクロール経過時間とスクロール継続時間を比較してスクロールを行うかどうかの可否を決めている。
【０００７】
その解決方法として地図スクロールにおける先読み描画に関して特許文献３に記載されている。
【０００８】
一方、従来ナビ上での地図スクロールにおいて、スクロール速度を高めるために先読み描画が用いられている。
【０００９】
特開平１１−１５３７１号公報に記載の発明では、通常は地図を所定の方向にスクロールすることによりスクロールを表現するのに対し、地図の先読み描画では地図表示領域が所定の境界線を越えた場合、引き続き同じ方向でスクロールしてもいいように、別の描画バッファでその時点での表示領域を端とした地図を描画する。さらに、スクロール要求の内容に従って先読み描画対象となる地図データを切り替えることにより、高速スクロールが要求される場合は少ない地図データを、低速スクロールの場合は多くの地図データを、それぞれ先読み描画する。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００９−２７７１１７号公報
【特許文献２】特開２００７−１８０４０号公報
【特許文献３】特開平１１−１５３７１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかし、自然現象を考慮したスムーズかつ直感的な慣性スクロールを行う際に、理想とするスクロール速度変化に対して地図の描画が追いつかない場合、特許文献１ないし２を用いたとしても、地図欠けが発生したりスクロールが途中で停止したりしてしまう。
【００１２】
また、ダブルバッファを前提とした特許文献３の先読み描画を用いても、裏面の地図先読み描画に時間がかかる場合は表示面がスクロールの端に来るとスクロールが止まってしまい、地図スクロール速度を急激に落とすと、スクロール速度が高速と低速に分かれてスクロールが不連続となり、スクロールにスムーズ性がなくなってしまう。
【００１３】
本発明は、フリック操作による地図スクロールを実現する際において、理想とするスクロールの速度変化に対して描画速度が追いつかない場合、スクロールの停止や不連続化させることなく、理想とする速度変化に近いスムーズなスクロールを実現することを目的とする。
【課題を解決するための手段】
【００１４】
本発明は、タッチパネルに対するスクロール指示が終わった後も地図スクロール表示を継続させる地図表示装置であって、地図スクロール速度の変化は、スクロール指示終了時のスクロール速度を初期値とした減衰曲線に従いスクロール料を時間と共に減少させる制御部を有し、制御部は、地図描画にかかる時間を実測し、過去の実測結果と地図データのサイズに基づき地図描画にかかる時間を予測した地図描画時間推定値を用いて、減衰曲線の減衰率が地図データのサイズが大きいほど早く減衰するように設定する。
【発明の効果】
【００１５】
地図データサイズから地図の描画時間を推定し減衰時定数を変化させることにより、理想の速度に対して地図の描画時間が間に合わなくても、理想とする速度変化に近いスムーズなスクロールを実現することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施例における地図表示装置のシステム構成を示した図である。
【図２】本発明の実施例における地図表示装置のハードウェア構成を示す図である。
【図３】本発明の実施例における地図描画バッファと地図表示領域の関係を説明する図である。
【図４】ＲＡＭ内のデータ構造を示した図である。
【図５】地図表示全体の処理フローである。
【図６】地図描画処理のフロー図である。
【図７】移動量算出処理のフローである。
【図８】地図移動量減衰時定数算出処理のフローである。
【図９】地図メッシュデータのデータ構造を示した図である。
【図１０】地図スクロール速度の時系列変化を示したグラフである。
【図１１】地図描画時間推定値を用いた慣性スクロールによる地図表示の遷移を示した図である。
【発明を実施するための形態】
【００１７】
図３に、本発明を用いた地図表示装置１０のハードウェア構成の一例を示す。地図表示装置１０は、ＭＰＵ１、システムバス２、ＲＡＭ５、Ｉ／Ｏ４、ＤＵ３、タッチパネルディスプレイ６、ストレージ７から成り立っている。タッチパネルディスプレイ６は、表示部８、操作入力装置９から成り立っている。ＭＰＵ１は、システムバス２を介してＲＡＭ５やＩ／Ｏ４とデータ通信を行うことにより、Ｉ／Ｏ４に接続された機器からデータを読み取りＲＡＭ５へデータを一時保存しながら演算処理を行い、Ｉ／Ｏ４に接続された機器へ演算結果を返すものである。
【００１８】
Ｉ／Ｏ４は、ＭＰＵ１の入出力インターフェースであり、タッチパネルディスプレイ６内の操作入力装置９、ストレージ７などの入出力装置とデータの送受信を行う。ＤＵ３は表示制御装置（Display-Unit）であり、システムバス２を介してＲＡＭ５からデータを取得しタッチパネルディスプレイ６内の表示部８に表示するものである。ストレージ７は地図のデータを格納するものである。なお、タッチパネルディスプレイ６は一体型ではなく、表示部８と操作入力装置９に分離した形になっていてもよい。
【００１９】
図１は、図２に示したハードウェアで実現した地図表示装置１０の機能ブロックの一例を示した図である。地図表示装置１０は、操作入力受付部１１、スクロール操作判定部１２、ハードウェアプロファイル記憶部１３、地図描画部３０、地図移動量算出部２０、地図表示始点変更部１４、地図表示部分切換部１５、地図表示部１６から構成されている。
【００２０】
操作入力受付部１１は、操作入力装置９に相当する。スクロール操作判定部１２、地図描画部３０の一部、地図移動量算出部２０は、ＭＰＵ１で実現される。ハードウェアプロファイル記憶部１３はＲＡＭ５上に設けられる。地図描画部３０の一部および地図表示始点変更部１４、地図表示部分切換部１５、地図表示部１６は、ＤＵ３で実現される。
【００２１】
操作入力受付部１１は、タッチパネルディスプレイ６の状態を取得し、その情報をＲＡＭ５に記憶する。タッチパネルディスプレイ６の状態とは、画面に指がタッチされた（指を触れた）ことを表す状態、画面から指がリリースされた（指を離した）ことを表す状態、画面に指がタッチされたままで指が動いていることを示す状態、そして画面に指がタッチされている状態における指のタッチ位置（表示部８上の座標位置）の情報である。
【００２２】
スクロール操作判定部１２は、操作入力受付部１１から得られたタッチパネルディスプレイ６の状態から、スクロール操作の種類を判定し地図描画部３０へ送信する。スクロール操作の種類とは、画面に触れたまま指をスライドさせるドラッグ操作や、指を画面に触れて軽く払うように動かすフリック操作などのことを指す。また、スクロール操作判定部１２は指のタッチ位置の履歴から指移動量を求め、スクロール操作の種類と共に地図移動量算出部２０へ送信する。
【００２３】
地図描画部３０は、スクロール操作判定部１２が判定したスクロール操作の種類に基づき、スクロール操作後の状態に対応した地図を画面に描画し、その地図描画に要した地図描画時間を計測して、描画に用いた地図データサイズと一緒に地図描画時間推定部２２へ送信する。
【００２４】
地図描画部３０は、地図データサイズ取得部３１、地図データ読み込み部３２、地図描画時間計測部３３、地図描画実処理部３４から構成される。地図データサイズ取得部３１は、指がリリースされた状態を示す情報をスクロール操作判定部１２から受信したとき、描画しようとする地図のデータサイズを取得して地図描画時間推定部２２へ送信する。描画しようとする地図のデータサイズはメッシュ単位を想定している。地図データ読み込み部３２は、地図データサイズ取得部３１による地図データサイズ取得をトリガとして、描画しようとする地図データをストレージ７から読み込んでＲＡＭ５に格納する。
【００２５】
地図描画時間計測部３３は、スクロール操作により行われる地図描画の開始から終了までの時間を計測する。地図描画実処理部３４は、地図データ読み込み部３２がＲＡＭ５に読み込んだ地図データに基づいて描画処理を行い、その描画結果をＲＡＭ５上に設けた地図描画バッファの描画領域（描画面）に格納する。そして、地図の描画が完了した際には、表示部８に描画データを出力する地図描画バッファの表示面を変更するよう地図表示部分切換部１５に信号を送信する。
【００２６】
地図移動量算出部２０は、スクロール操作判定部１２から得られたスクロール操作の状態および指移動量を基に、地図移動量現在値を算出して地図表示始点変更部１４に送信する。地図移動量算出部２０は、地図移動量初期値算出部２１と地図描画時間推定部２２と地図移動量減衰時定数算出部２３とスクロール経過時間計測部２４と地図移動量現在値算出部２５から構成されている。
【００２７】
地図移動量初期値算出部２１は、スクロール操作判定部１２から指移動量を受信したとき、指移動量に基づいて地図移動量の初期値を算出する。この地図移動量初期値は、スクロール操作によって地図表示始点が単位時間あたりに移動する量の初期値を指し、地図のスクロール速度の初期値である。従って、地図移動量初期値は、スクロール操作の種類が“ドラッグ操作”の状態の場合、スクロール操作の判定タイミング毎における指移動量によって更新される。地図描画時間推定部２２は、地図描画部３０から得られた地図データサイズ、および前回の地図描画時における地図描画時間計測値と、ハードウェアプロファイル記憶部１３から得られた、地図表示装置１０におけるＣＰＵ周波数、ＣＰＵコア数、ＲＡＭ容量、バス周波数、ＧＰＵ周波数、ＶＲＡＭ容量の値から、現在の地図描画時間推定値を求め、地図移動量減衰時定数算出部２３に送信する。
【００２８】
地図移動量減衰時定数算出部２３は、地図移動量の初期値と現在の地図描画時間推定値から地図移動量の減衰時定数を算出し、地図移動量現在値算出部２５へ送信する。スクロール経過時間計測部２４は、スクロール操作判定部１２からの指移動量の受信をトリガとして地図画面のスクロール開始から現在までの時間を計測し、地図移動量現在値算出部２５へ送信する。
【００２９】
地図移動量現在値算出部２５は、設定されているスクロール操作の種類が“ドラッグ操作”の場合には、指の移動に追従して地図を移動させるため、地図移動量初期値算出部２１で計算された地図移動量の初期値を地図移動量の現在値として出力する。また設定されているスクロール操作の種類が“フリック操作”の場合には、慣性スクロールにより地図を移動させるため、地図移動量の初期値と減衰時定数とスクロール経過時間から地図移動量の現在値を算出し、地図表示始点変更部１４へ送信して地図表示始点に反映する。地図移動量現在値は、スクロール操作によって地図表示始点が単位時間あたりに移動する量であり、地図のスクロール速度に相当する。
【００３０】
地図表示始点変更部１４は、地図スクロール表示をするために、地図移動量算出部２０から地図移動量の現在値を受信し、地図描画バッファ内の表示面における地図表示領域の始点座標である地図表示始点を変更する。地図表示部分切換部１５は、図３に示すようにダブルバッファを構成している地図描画バッファの表示面と描画面を切り換えることにより地図描画の際のちらつきを抑えるためのものである。地図表示部１６は、地図表示部分切換部１５で表示面として指定した地図描画バッファの領域の内、地図表示始点変更部１４により変更した地図表示領域の始点（地図表示始点）に従って、地図表示領域をタッチパネルディスプレイ６の表示部８へ出力する。
【００３１】
図４は、本実施例におけるＲＡＭ５に格納される主な情報のデータ構造を示した図である。ＲＡＭ５には、地図描画バッファ、ハードウェアプロファイル、描画用地図データが格納されている。
【００３２】
地図描画バッファは、前述のように、地図データ読み込み部３２によりストレージ７から読み込まれた描画用地図データに基づいて地図描画実処理部３４が描画した地図を格納するメモリ領域である。本実施例ではダブルバッファ構成を前提としており、ダブルバッファの片方を表示面とし、他方を描画面とする。表示面および描画面の切り換えは地図描画部３０の指令により地図表示部分切換部１５が行う。描画用地図データは、地図データサイズ、地図データＩＤ、地図データ本体から成り立っている。
【００３３】
ハードウェアプロファイルは、本実施例のハードウェアのスペックに関する情報を示したものであり、ハードウェアプロファイル記憶部１３に対応する。ハードウェアプロファイルは、ＭＰＵ１の動作周波数を示すＭＰＵ周波数、ＭＰＵ１のＣＰＵコア数を示すＭＰＵコア数、ＲＡＭ５の容量を示すＲＡＭ容量、システムバス２の動作周波数を示すバス周波数、ＤＵ３の動作周波数を示すＤＵ周波数、ＤＵ３に搭載されているＲＡＭの容量を示すＶＲＡＭ容量などの情報を含んでいる。
【００３４】
ＲＡＭ５には、また、スクロール操作判定部１２によって判定されたスクロール操作の種類の情報であるスクロール種類の他、スクロール経過時間計測部２４によって算出された慣性スクロールが開始してから現在までの時間を表すスクロール経過時間や、指接触位置履歴、地図描画時間計測履歴、地図描画時間補正係数、地図描画余裕時間最大値、地図表示始点、地図移動量減衰時定数、地図移動量減衰時定数最小値、地図移動量初期値が格納される。
【００３５】
指接触位置履歴は、指がタッチパネルディスプレイ６に接触した指接触位置およびその時間をあらわすタイムスタンプの履歴を記録したデータであり、これを元に指移動量が算出される。この指移動量は、タッチパネルディスプレイ６上に指が接触したまま、一定の時間間隔のうち指がどれだけ動いたかを示すものである。
【００３６】
地図描画時間計測履歴は、地図描画部３０がストレージ７から地図データを読み込み、これを地図描画バッファに描画するまでの時間を、地図描画時間計測部３３が計測した結果の履歴であり、地図描画を１回行う毎に作成される地図描画時間計測データから成り立っている。地図描画時間計測履歴のデータは、地図描画時間推定部２２により読み込まれ、現在の地図描画時間推定値を求める際に使用される。地図描画時間計測履歴の地図描画時間計測データは、地図描画時間の計測対象となった地図データの地図データサイズ、地図描画時間計測値、その際に地図描画時間推定部２２によって推定された地図描画時間推定値を含んでいる。地図描画時間推定値は、地図描画バッファの描画面に対して地図を描画するのに要する処理時間を推定した値である。
【００３７】
地図描画時間補正係数は、後述する様に、ハードウェアプロファイルが地図描画時間推定値に及ぼす影響を補正する係数であり、地図描画時間推定部２２における地図描画時間推定値の算出に使用される。
【００３８】
地図描画余裕時間最大値は、地図描画時間推定値が取りうる値の最大値であり、地図移動量減衰時定数算出部２３で使用される。この地図描画余裕時間最大値は、地図描画バッファにおける地図の表示領域の取りうる移動距離を地図移動量初期値で割ったものを用いてもよいし、最初から適切な値を代入しておくのもよいものとする。
【００３９】
地図移動量減衰時定数は、慣性スクロール状態での時間に対する単位時間あたりの地図移動量、すなわち地図スクロール速度を１次遅れステップ応答の計算式により算出する際の時定数である。地図移動量減衰時定数は、地図移動量減衰時定数算出部２３によって算出され、地図移動量現在値算出部２５によって読み込まれ、地図移動量現在値の算出に使用される。
【００４０】
地図移動量減衰時定数最小値は、地図描画余裕時間最大値が現在の地図描画時間推定値以下だった場合に、地図移動量減衰時定数として使用する値である。地図移動量減衰時定数最小値は、初期値として所定の値が代入されており、地図移動量減衰時定数算出部によって読み込まれ使用される。
【００４１】
図５は、本実施例における地図表示装置１０全体の処理フローを示した図である。まず地図表示装置１０では、タッチパネルディスプレイ６への画面タッチの待ち処理を行う（４０１）。画面へのタッチが検出された際、操作入力受付部１１は、タッチ位置およびそのタイムスタンプを指接触位置としてＲＡＭ５へ記憶する（４０２）。次に、操作入力受付部１１が指リリースを検出したか判定する（４０３）。指リリースが検出されないままであれば、指の移動量を検出する（４０４）。そして指移動が検出された場合、スクロール操作判定部１２はドラッグ操作が行われたと判断し、スクロール操作の種類として“ドラッグ操作”をＲＡＭ５のスクロール種類に記憶する。スクロール操作の種類が“ドラッグ操作”と判断されたとき、地図表示始点変更部１４では、指移動量から求めた地図移動量現在値の分だけ地図表示始点をずらす（４０５）。
【００４２】
その後、地図表示装置１０は、地図の表示領域が予め地図データの各メッシュに対して設定した境界線内に収まっているかどうかを判定し（４０６）、もし境界線内に収まっておらず境界線を跨いでいるかあるいは境界線の外に出ている場合には、別スレッドで現在の表示位置を中心に地図を描画するよう地図描画部３０に要求して（４０７）、指追従スクロールの表示を行い、指リリース検出判定処理（４０３）に戻る。また、指が触れたまま指移動が検出されてない場合（４０４：Ｎｏ）、および表示領域が境界線内にある場合（４０６：Ｙｅｓ）にも、指リリース検出判定処理（４０３）に戻る。
【００４３】
指リリース検出判定処理（４０３）で指リリースが検出された場合、スクロール操作判定部１２は、指接触位置履歴のデータから指の移動速度（指速度）を算出し、指が画面から離れた時の指速度を判断する（４０８）。指速度が０の場合、即ち指が止まった状態からリリースされた場合には、地図描画部３０に対し、別スレッドで現在の表示位置を中心に地図を描画するよう要求する（４０９）。
【００４４】
地図表示装置１０は、描画面として選択されている地図描画バッファの領域に対して地図描画が完了すると、地図表示部分切換部１５に地図描画バッファの表示面と描画面の切り換えを要求し（４１０）、処理を完了する。
【００４５】
一方、指速度が０より大きい場合（４０８：「それ以外」）、スクロール操作判定部１２は、スクロール操作の種類を“フリック操作”と判定して、スクロール経過時間計測部２４は、スクロール経過時間の計測を開始する（４１１）。
【００４６】
ここで所定の時間内で再び画面へのタッチが検出されたか調べ（４１２）、画面へのタッチが検出された場合は、再びスクロール操作の入力が開始されたものと判断して、先述の指リリース検出判定処理（４０２）に戻る。所定の時間内で画面へのタッチが検出されない場合、スクロール経過時間計測部２４ではスクロール経過時間を算出する（４１３）。その後、地図移動量現在値算出部２５では、慣性スクロールによる地図移動量現在値を算出する（４１４）。そして、地図表示始点変更部１４は、地図移動量算出部２０からの地図移動量現在値の値に従って地図表示始点を更新し、地図の表示領域を移動する（４１５）。
【００４７】
ここで地図移動量現在値を判断し（４１６）、地図移動量の値が０でない場合、即ち地図の慣性スクロールの処理中で表示領域が移動した場合には、表示領域が表示面の端にあるかどうかチェックする（４１７）。もし表示領域が表示面端にある場合、地図表示部分切換部１５は、地図描画バッファの表示面と描画面の切り換えを行い（４１８）、表示範囲移動後の表示位置を中心に別スレッドで地図を描画するよう地図描画部３０に要求して（４１９）、画面タッチ検出判定処理（４１３）に戻る。そうでない場合は直接画面タッチ検出判定処理（４１２）に戻る。
【００４８】
一方、慣性スクロールによる地図表示領域の移動量が０の場合、スクロール操作判定部１２は、スクロール操作の種類を“フリック操作終了”と判断する。そしてスクロール経過時間計測部２４はスクロール経過時間の計測を終了する（４２０）。そして地図描画が完了した際に地図表示部分切換部１５に地図描画バッファの表示面と描画面の切り換えを要求し（４１０）、処理を完了する。
【００４９】
図６は本実施例における地図描画処理の処理フローである。本実施例の地図表示処理装置では、マルチスレッド機構を有するＯＳ（Operating System）が動作しているものとし、地図表示を行う図５の処理フローを実行するスレッドとは別のスレッドにより地図描画処理（４０７，４０９，４１９）を実行する。地図表示を行う図５の処理フローにおける処理スレッドは、操作入力受付部１１、スクロール操作判定部１２、地図移動量算出部２０の処理に相当し、地図描画スレッドは地図描画部３０の処理に相当する。初期状態において地図描画スレッドは地図表示スレッドからの地図描画要求を待ち、この地図描画要求を受けて処理を開始する。
【００５０】
地図描画処理において、地図表示を行うスレッドでは、地図描画バッファの描画面への地図描画要求を作成し（５０１）、地図描画スレッドにこの地図描画要求を送信してから（５０２）、地図データサイズ取得待ち状態に入り（５０３）、地図描画スレッドからの描画する地図データサイズと前回の地図描画時における地図描画時間計測値を受け取り（５０４）、次の処理へ進む。
【００５１】
地図描画スレッドは、地図描画要求を受信すると（５０５）、ストレージ７から描画に用いる地図メッシュデータの地図データサイズを読み込み、ＲＡＭ５から読み出した前回の地図描画処理における地図描画時間計測値と一緒に地図表示スレッドへ送信する（５０６）。地図描画処理が初回の場合は、前回の地図描画時間計測値として適切な初期値をＲＡＭ５に設定しておくものとする。地図描画スレッドは、地図描画時間計測部３３によって地図描画時間の計測を開始する（５０７）。その後ストレージ７から地図データＩＤおよび地図データ本体を読み込んでＲＡＭ５に格納する（５０８）。地図描画実処理部３４は、ＲＡＭ５上に読み込まれた描画用の地図データを用いて地図描画バッファの描画面に地図データを展開し描画する（５０９）。地図描画展開が完了した後、地図描画時間計測部３３による地図描画時間の計測を終了し（５１０）、その地図描画時間計測値をＲＡＭ５に記憶する（５１１）。そして地図描画の後処理を行った後（５１２）、地図描画スレッドは停止する。
【００５２】
図７は本実施例における移動量算出の処理フローである。本発明では、地図の描画量を摩擦係数と見立てることにより物理法則に沿った運動方程式を模した直感的な慣性スクロールを実現する。
【００５３】
地図描画時間推定部２２は、ＲＡＭ５からハードウェアプロファイルとしてたとえばＭＰＵ周波数ＦC（Ｈｚ）、ＭＰＵコア数ＮC、ＲＡＭ容量ＮR（Bytes）、バス周波数ＦB（Ｈｚ）、ＤＵ周波数ＦG（Ｈｚ）、ＶＲＡＭ容量ＮV（Bytes）を読み出し、地図描画時間補正係数αHを、次の（式１）により計算する（６０１）。
【００５４】
ここでＦC0、ＮC0、ＮR0、ＦB0、ＦG0、ＮV0は基準とするハードウェアプロファイルによる定数であり、ｗFC、ｗNC、ｗNR、ｗFB、ｗFG、ｗNVはハードウェアプロファイル各変数の重みを示す。
【００５５】
【数１】
0005588942.tif 000002
【００５６】
この値は、地図表示装置のハードウェア構成が分かれば、予め計算しておくことができるため、ＲＡＭ５には、ハードウェアプロファイルの替わりに、予め計算しておいた地図描画時間補正係数αHを格納しておき、これを参照するようにしても良い。
【００５７】
次に、地図移動量初期値算出部２１は、スクロール操作判定部１２で求めた指リリース時の指速度から、地図移動量初期値を算出する（６０２）。地図移動量初期値は、そのＸ方向成分をｖMX0（dots／秒）、Ｙ方向成分をｖMY0（dots／秒）とすると、指速度のＸ方向成分ｖFX（dots／秒）、Ｙ方向成分ｖFY（dots／秒）、また指接触位置の計測時間間隔ΔＴF（秒）、地図表示を移動する時間間隔ΔＴM（秒）とから、（式２）により求める。
【００５８】
【数２】
0005588942.tif 000003
【００５９】
次に、地図描画時間推定部２２は、現在の地図描画時間推定値を算出する（６０３）。今回の地図データサイズをＮｄ（Bytes）、地図データサイズ−地図描画時間変換係数をβ（秒／Bytes）とすると、現在の地図描画時間推定値Ｔｅ（秒）は、次の（式３）で求まる。なお、地図データサイズ−地図描画時間変換係数βは、地図描画時間計測履歴を用いた学習により求める。
【００６０】
【数３】
0005588942.tif 000004
【００６１】
次に、地図移動量減衰時定数算出部２３は、地図移動量初期値と地図表示始点から地図描画余裕時間最大値を求める（６０４）。そこで、Ｘ＋方向、Ｘ−方向、Ｙ＋方向、Ｙ−方向のうち、慣性スクロールにおける地図スクロール方向に含まれ、かつ地図表示始点で規定される表示領域枠から地図描画バッファ端までの距離が最短の方向を求める。たとえばＸ＋方向が最短の方向であり、その方向の地図描画バッファ端までの距離がｘ（dots）であると仮定すると、地図描画余裕時間最大値Ｔｘ（ｓ）は（式４）によって求める。
【００６２】
【数４】
0005588942.tif 000005
【００６３】
次に、地図移動量減衰時定数算出処理を行う（６０５）。図８は、本実施例における地図移動量減衰時定数算出処理（６０５）のフローを示したものである。まず現在の地図描画時間推定値Ｔｅと地図描画余裕時間最大値Ｔｘとの大小を比較する。もし地図描画余裕時間最大値Ｔｘのほうが小さければ、地図移動量減衰時定数Ｔｍを予め定めた最小値Ｔｍmin（秒）とする。そうでなければ、（式５）によって地図描画時間減衰時定数Ｔｍを求める。ここでγは時間Ｔｘ−Ｔｅ以内に所定の値に収束するための係数（γ＞１）である。
【００６４】
【数５】
0005588942.tif 000006
【００６５】
図７の説明に戻り、最後に地図移動量現在値算出部２５は、摩擦力を考慮した物体の運動方程式による減衰曲線に基づき地図スクロール速度を変化させた地図移動量現在値を算出する（６０６）。スクロール経過時間をｔ（秒）とした時の地図移動量現在値のＸ方向成分ｖMX(ｔ)（dots／秒）とＹ方向成分ｖMY(ｔ)（dots／秒）は、地図移動量現在値のＸ方向成分ｖMX0（dots／秒）とＹ方向成分ｖMY0（dots／秒）と地図描画時間減衰時定数Ｔｍから、（式６）によって求める。
【００６６】
【数６】
0005588942.tif 000007
【００６７】
図９は本実施例におけるストレージ内の地図メッシュデータのデータ構造を示した図である。ストレージ７には複数の地図メッシュデータが格納される。地図メッシュデータは、地図メッシュ単位に分割された地図データであり、地図データサイズ、地図データＩＤ、地図データ本体から構成される。地図データサイズは、地図メッシュデータのサイズであり、地図データサイズ取得部３１によってＲＡＭ５に読み込まれる。地図データＩＤは、地図メッシュデータのＩＤであり、地図メッシュによって一意に決まる。地図データ本体は、地図メッシュにおける地図データ本体を指し、道路や背景など地図の表示に必要なデータである。ストレージ７にはこの他、複数の地図メッシュデータを管理するためのデータである地図管理データが格納され、例えば地図メッシュ間の相互関係などを表している。
【００６８】
図１０は本実施例における地図スクロール速度の時系列変化を示したグラフである。横軸は時間、縦軸は地図スクロール速度を示している。画面に指を触れながら指を動かす間は指追従スクロールを行い、指の動きに応じた地図スクロール速度が発生する。指を離すと（式６）に従ってスクロール速度が遅くなるように地図がスクロールする慣性スクロールを行う。太線は理想となる地図スクロール速度変化を、破線は地図描画推定時間が長いときのスクロール変化を、それぞれ示す。地図描画時間が長い場合、地図の速度を落としつつ理想となる地図スクロール速度曲線の形状に近い形で減衰するため、理想となる地図スクロール速度変化と同様に直感的な操作が可能である。
【００６９】
本発明の慣性スクロール１回により、地図はスクロール速度×時間の積分値の距離だけスクロールすることになる。１次遅れステップ応答に対する減衰曲線をｖ(ｔ)＝ｖ0×exp（−ｔ／Ｔ）とした場合、その距離はｖ0×Ｔとなる。
【００７０】
このように、本発明では地図スクロール速度の時系列変化を減衰曲線とし、その減衰率を地図データサイズを考慮して変化させている。そして地図データサイズが大きいときには減衰率が高くなるようにすることで、スクロール速度が相対的に下がり、地図描画バッファの描画面に対する地図描画が完了してから地図スクロールが表示面の端に来るようになるため、慣性スクロールのスムーズ性を保持することができる。
【００７１】
本実施例におけるフリック操作による地図表示において、図１１に示すように、地図描画バッファの表示面上の地図表示領域に対し、画面をタッチして指を左から右へ横に動かし、指を離す直前には指がＸ＋方向に動き、地図表示領域から地図描画バッファの端までの距離がｘ(dot)とする。この場合、慣性スクロールにより地図は地図スクロール速度ｖ(ｔ)によりＸ＋方向へ進んでいくものとする。この時、本実施例における地図描画時間推定値を用いた慣性スクロール操作による地図表示によると、地図描画バッファの描画面に対する地図描画の地図描画時間推定値により、地図描画バッファの右端に地図表示領域が接するまでに完了すると判断される場合には、図１１（ａ）のように理想的な慣性スクロールにより地図表示領域が動いてゆく。しかし、地図の描画量が多く理想的な慣性スクロールにより地図描画バッファの右端に地図表示領域が達するときに、地図描画バッファの描画面に対して描画中であると判断される場合には、図１１（ｂ）のように地図表示領域の移動距離はこれよりｖ0Ｔｅ分だけ縮まるため、地図描画バッファの描画面に別の地図メッシュを描画している途中でも地図描画バッファの表示面の範囲内でスクロールできるため、地図欠けや地図スクロール停止がなくなる。
【符号の説明】
【００７２】
１  ＭＰＵ
２  システムバス
３  ＤＵ
４  Ｉ／Ｏ
５  ＲＡＭ
６  タッチパネルディスプレイ
７  ストレージ
８  表示部
９  操作入力装置
７  ストレージ
１１  操作入力受付部
１２  スクロール操作判定部
１３  ハードウェアプロファイル記憶部
１４  地図表示始点変更部
１５  地図表示部分切換部
１６  地図表示部
２０  地図移動量算出部
２１  地図移動量初期値算出部
２２  地図描画時間推定部
２３  地図移動量減衰時定数算出部
２４  スクロール経過時間計測部
２５  地図移動量現在値算出部
３０  地図描画部
３１  地図データサイズ取得部
３２  地図データ読み込み部
３３  地図描画時間計測部
３４  地図描画実処理部
【図１】
0005588942.tif 000008
【図２】
0005588942.tif 000009
【図３】
0005588942.tif 000010
【図４】
0005588942.tif 000011
【図５】
0005588942.tif 000012
【図６】
0005588942.tif 000013
【図７】
0005588942.tif 000014
【図８】
0005588942.tif 000015
【図９】
0005588942.tif 000016
【図１０】
0005588942.tif 000017
【図１１】
0005588942.tif 000018