以下、添付の図面を参照して実施の形態に係る情報処理装置を説明する。なお、以下の各実施形態において、同様の構成要素については同一の符号を付している。
<実施形態1> 実施形態1では、図1から図13を参照して、移動体5が走行可能な走行エリア46の案内表示を行う情報処理システムについて説明する。実施形態1において、走行エリア46は、移動体5が過去に走行したことのあるルートであり、移動体5の走行推奨ルートともいえる。
実施形態1に係る情報処理システムは、図1に示すように、モバイル端末1とサーバ装置2とを備える。以下では、本実施形態に係る情報処理システムを本システムともいう。本システムでは、移動体5の搭乗者がモバイル端末1を所持することを想定している。移動体5は、例えばバギーのような車両である。モバイル端末1は、本実施形態における情報処理装置の一例である。モバイル端末1とサーバ装置2とは、インターネット等のネットワーク3を介して情報通信を行う。図1では、ネットワーク3を介しての情報通信の流れを太矢印で図示している。モバイル端末1は、移動体5におけるナビゲーション装置等の各種の機器4と通信可能に構成されてもよい。図1では、モバイル端末1と機器4との情報通信の流れを細矢印で図示している。
本システムは、モバイル端末1を介して、移動体5の軌跡ログ等を取得し、取得された情報をサーバ装置2に蓄積する。軌跡ログは、移動体5が走行した軌跡を示すログである。本システムは、サーバ装置2に蓄積された情報を分析することにより、移動体5が走行した実績があり、走行可能と考えられる範囲を示す走行エリア46を示す情報を生成する。走行エリア46を示す情報は、サーバ装置2によって管理され、モバイル端末1にダウンロードして表示できる。これにより、例えば、バギーのような移動体5が、砂丘、山林といった一般交通に利用される道路が殆どない自然フィールドを走行する場合に、走行可能な走行エリア46の案内表示を簡単に提供することができる。
以下、本実施形態におけるモバイル端末1とサーバ装置2の構成をそれぞれ説明する。
(モバイル端末1) 情報処理システムにおけるモバイル端末1の構成について、図2を参照して説明する。
モバイル端末1は、例えばスマートフォンであり、タブレット端末、携帯電話、ノートPC(Personal Computer)等の種々の情報処理装置であってもよい。モバイル端末1は、図2に示すように、制御部11と、一時記憶部12と、記憶部13と、表示部14と、通信部15と、出力部16と、入力部17と、位置情報取得部18とを備える。
制御部11は、例えば、ソフトウェアと協働して所定の機能を実現するCPU(Central Processing Unit)を含んで構成される。制御部11は、モバイル端末1の動作を制御する。制御部11は、一時記憶部12及び記憶部13に格納されたデータやプログラムを読み出して種々の演算処理を行い、所定の機能を実現する。制御部11は、例えば、軌跡ログを作成する。制御部11は、計時機能等の各種機能を有してもよい。制御部11によって実行されるプログラムは、ネットワーク3から提供されてもよいし、可搬性を有する記録媒体に格納されていてもよい。
なお、制御部11は、所定の機能を実現するように設計された専用の電子回路、或いは再構成可能な電子回路等のハードウェア回路で構成されてもよい。制御部11は、種々の半導体集積回路で構成されてもよい。種々の半導体集積回路は、CPU、GPU(Graphics Processing Unit)、MPU(Micro Processing Unit)、マイクロコンピュータ、DSP(Digital Signal Processor)、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)等を含む。以下、マイクロコンピュータをマイコンとも称する。
一時記憶部12は、例えばRAM(Random Access Memory)、DRAM(Dynamic Random Access Memory)、若しくはSRAM(Static Random Access Memory)を含む。一時記憶部12は、モバイル端末1の機能を実現するために必要なプログラム及びデータである各種情報を一時的に記憶できる。
記憶部13は、モバイル端末1の機能を実現するために必要なプログラム及びデータを記憶する記憶媒体である。記憶部13は、例えばROM(Read Only Memory)、フラッシュメモリ、若しくはHDD(Hard Disk Drive)を含む。
例えば、一時記憶部12又は記憶部13は、軌跡ログ、メッシュ情報及び縮尺情報等を記憶する。一時記憶部12又は記憶部13は、地図情報を記憶していてもよい。地図情報は、例えばネットワーク3を介して、外部から取得されてもよい。地図情報は、例えば、地図、自然フィールド、施設等の地図の構成において必要な情報を含んでもよい。地図情報は、例えば、POI(Point Of Interest)情報を含んでもよい。地図情報には、緯度及び経度による地理座標が含まれている。地理座標は、本実施形態における位置座標の一例である。地図情報は、例えば、カラーでもよいし、モノクロでもよい。
表示部14は、例えば、液晶ディスプレイ又は有機EL(Electro Luminescence)ディスプレイで構成される。表示部14は、例えば経度緯度等の種々の情報を表示する。
通信部15は、ネットワーク通信部151及び機器通信部152を含む。ネットワーク通信部151は、所定の通信規格にしたがって、モバイル端末1をネットワーク3に接続するためのモジュールである。所定の通信規格には、例えば、IEEE(Institute of Electrical and Electronic Engineers)802.3,IEEE802.11a/11b/11g/11ac、VICS(登録商標)、携帯通信の3G又は4Gの通信規格が含まれる。
機器通信部152は、所定の通信規格にしたがい移動体5の機器4にモバイル端末1を通信接続するモジュールである。所定の通信規格には、例えば、赤外線を利用した光無線通信、Bluetooth(登録商標)、BLE(Bluetooth Low Energy)、Wi−Fi(登録商標)、USB(Universal Serial Bus)、HDMI(登録商標)、若しくはIEEE1395の通信規格が含まれる。
出力部16は、例えば音声の出力装置を含む。出力部16は、例えば所定の警告音を出力する。
入力部17は、ユーザによる種々の操作を入力するユーザインタフェースである。本実施形態において、入力部17は、表示部14と共にタッチパネルを構成する。入力部17は、表示部14の種々のセグメントにタッチする操作によって、各種の指示要求を入力できるように構成される。入力部17は、タッチパネルに限らず、キーボード、ボタン、スイッチ、及びこれらの組合せであってもよい。入力部17は、図示していない物理キーから有線、又は無線によって入力される入力装置で構成されてもよい。
位置情報取得部18は、モバイル端末1の現在位置を示す位置情報を取得する。実施形態1において、位置情報取得部18は、GPS衛星からの電波を受信して、受信した地点の緯度及び経度を測位するGPSモジュールである。位置情報取得部18は、GPSモジュールに限定されない。位置情報取得部18は、例えば、ジャイロセンサと加速度センサと移動体5の推進から位置を推定する構成であってもよい。また、位置情報取得部18は、情報通信基地局を利用して位置情報を取得する構成であってもよい。位置情報取得部18は、受信した地点の緯度及び経度に加え、高度を測位するように構成されてもよい。
(サーバ装置2) 情報処理システムにおけるサーバ装置2の構成について、図3を参照して説明する。
サーバ装置2は、図3に示すように、サーバ制御部21と、サーバ記憶部22と、サーバ通信部23とを備える。
サーバ制御部21は、例えば、ソフトウェアと協働して所定の機能を実現するCPUを含んで構成される。サーバ制御部21は、サーバ装置2の動作を制御する。サーバ制御部21は、サーバ記憶部22に格納されたデータやプログラムを読み出して種々の演算処理を行い、所定の機能を実現する。サーバ制御部21は、計時機能等の各種機能を有してもよい。サーバ制御部21によって実行されるプログラムは、例えば、ネットワーク3から提供されてもよいし、可搬性を有する記録媒体に格納されていてもよい。
なお、サーバ制御部21は、所定の機能を実現するように設計された専用の電子回路、或いは再構成可能な電子回路等のハードウェア回路で構成されてもよい。サーバ制御部21は、CPU、GPU、MPU、マイコン、DSP、FPGA、ASIC等の種々の半導体集積回路で構成されてもよい。
サーバ記憶部22は、サーバ装置2の機能を実現するために必要なプログラム及びデータを記憶する記憶媒体である。サーバ記憶部22は、例えば、HDD(Hard Disk Drive)、又はSSD(Solid State Drive)を含んで構成される。また、サーバ記憶部22は、例えばDRAM、又はSRAMを含んで構成されてもよい。サーバ記憶部22は、例えば、サーバ制御部21の作業エリアとして機能するように構成されてもよい。
例えば、サーバ記憶部22は、走行実績データベース221及びメッシュデータベース222を格納する。以下、データベースを「DB」と略記する場合がある。
サーバ通信部23は、所定の通信規格にしたがい通信を行う通信インタフェースであり、ネットワーク3や外部機器にサーバ装置2を通信接続する。所定の通信規格には、例えば、IEEE802.3,IEEE802.11a/11b/11g/11ac、VICS(登録商標)、携帯通信の3G又は4Gの通信規格が含まれる。
以上のようにサーバ装置2の構成の一例を説明したが、サーバ装置2はこれに限定されず、種々の構成を有してもよい。サーバ装置2は、例えば、ASP(Application Server Provider)サーバであってもよく、クラウドコンピューティングにおける各種の処理を実行してもよい。
以下、本実施形態に係る情報処理システムにおける各種データベースについて、図4(a),図4(b),図5(a),図5(b)を参照して説明する。
図4(a)は、走行実績DB221の一例を示す。図4(b)は、走行実績DB221で管理される軌跡ログの一例を示す。図5(a)は、メッシュDB222のうち
、第1スケールのメッシュDB222aの一例を示す。図5(b)は、メッシュDB222のうち、第2スケールのメッシュDB222bの一例を示す。
図4(a)の例では、走行実績DB221は、「管理番号」と、「日付」と、「出発時刻」と、を関連付けて記録している。「管理番号」は、軌跡ログの管理するための番号を示す。「日付」には、軌跡ログが得られた日付が設定される。「出発時刻」は、例えば軌跡ログの記録の開始時刻を表す。
図4(a),図4(b)の例では、サーバ装置2は、管理番号により走行実績DB221に関連付けして、サーバ記憶部22に蓄積された軌跡ログを管理している。図4(b)に示すように、軌跡ログは、「時刻」と、「緯度」と、「経度」と、を関連付けて記録している。
メッシュDB222は、移動体5の走行エリア46に関するメッシュ情報を記録するデータベースである。メッシュ情報は、緯度及び経度による地理座標上でメッシュ状に分割された空間領域に対応付けて規定される。以下、メッシュ情報において一つの空間領域に対応する情報を「ブロック」という。本実施形態において、図5に示すように、各ブロック25は、矩形状の空間領域に対応している。
メッシュ情報は、ブロック25毎に、対応する空間領域の四隅の緯度及び経度と、所定の値とを関連付けて管理する。所定の値は、走行エリア46に関する値であり、例えば、移動体5が各ブロック25に対応する空間領域を通過した通過頻度である。メッシュ情報は、各ブロック25の四隅の緯度及び経度に限られない。メッシュ情報は、例えば、四隅の内の一点の緯度及び経度、若しくは各ブロック25における中心点の緯度及び経度を用いてもよい。
本実施形態では、異なるスケールの空間領域についての通過頻度を管理するように、複数のスケールのメッシュDB222が構築される。図5には、2つのスケールを有するメッシュDB222を例示している。図5(a)は、第1スケールのメッシュDB222aを例示し、図5(b)には、第1スケールとは異なる第2スケールのメッシュDB222bを例示している。図5(a)の例において、第1スケールのメッシュDB222aの各ブロック25は、20m×20mの空間領域に対応している。図5(b)の例において、第2スケールのメッシュDB222bの各ブロック25は、400m×400mの空間領域に対応している。
第1スケールのメッシュDB222aは、例えば、第2スケールのメッシュDB222bにおけるブロック25の1つに相当するように構成されてもよい。第1スケールのメッシュDB222aにおける各ブロック25には、それぞれ移動体5が走行した回数を例示している。ブロック25内の数値が「0」の場合、移動体5が一度も通過していないことを示している。ブロック25内の数値が「1」の場合、移動体5がそのブロック25を1回通過したことを示している。ブロック25内の数値が「2」の場合、移動体5がそのブロック25を2回通過したことを示している。本実施形態では、ブロック25内の数値は、移動体5の通過回数であり、一つの軌跡ログで一つのブロック25内に連続する複数のログがあっても1回として表示している。
以上のようなメッシュDB222a及びメッシュDB222bの各々は、更に、階層化されていてもよい。また、メッシュDB222a及びメッシュDB222bにおいて、空間領域の大きさは図5(a)及び図5(b)の例に限らず、適宜、設定されていればよい。また、スケールの個数は2つに限らず、3つ以上のスケールのメッシュDB222が構築されてもよい。
(メッシュ情報の更新処理) 本実施形態に係る情報処理システムにおいて、サーバ装置2は、種々のモバイル端末1等から収集される軌跡ログに基づいて、移動体5が走行可能な走行エリア46を表すようにメッシュ情報を生成或いは更新する。メッシュ情報の更新処理の一例を、図6及び図7を用いて説明する。
図6は、情報処理システムにおけるメッシュ情報の更新処理を説明するためのシーケンス図である。本明細書では、図6に示すようにステップを「S」と表記する場合がある。図6では、軌跡ログがモバイル端末1からサーバ装置2にアップロードされた際にメッシュ情報が更新される更新処理の例を説明する。
図6に示す処理は、例えば移動体5の走行中に、モバイル端末1において所定のアプリケーションソフトウェアが立ち上げられたときに開始する。
まず、モバイル端末1は、軌跡ログを記録する(S1)。例えば、モバイル端末1において、位置情報取得部18は所定の時間間隔毎にGPS情報を受信して、GPS情報が示す位置情報及び時刻情報を制御部11に出力する。位置情報は、例えば緯度及び経度である。所定の時間間隔は、例えば1秒である。モバイル端末1は、GPS情報を利用して、軌跡ログを取得することができる。
制御部11は、例えばユーザによる終了操作が入力されるまで、軌跡ログの記録を繰り返す(S2)。制御部11は、逐次、時刻と緯度と経度とを関連付けて、一時記憶部12等に軌跡ログとして記録する。軌跡ログの記録は、例えばユーザによる終了操作が入力されるまで繰り返される。
次に、モバイル端末1は、ネットワーク通信部151を介してサーバ装置2に、軌跡ログを送信する(S3)。モバイル端末1は、ネットワーク通信部151を介してサーバ装置2との通信接続を確立する。モバイル端末1では、一時記憶部12に記憶されたアプリケーションソフトが立ち上げられたときから、ユーザによる終了操作が入力されるまでの軌跡ログの全記録が、サーバ装置2へ送信される。モバイル端末1は、軌跡ログを一度にまとめて送信する構成だけには限られない。モバイル端末1は、軌跡ログを所定の時間間隔で送信してもよい。
サーバ装置2は、モバイル端末1が送信した軌跡ログを受信する(S11)。
次に、サーバ装置2は、走行実績DB221において、受信した軌跡ログをサーバ記憶部22に記録する(S12)。サーバ装置2は、走行実績DB221において、管理番号毎に軌跡ログを管理する。
次に、サーバ装置2は、記録した軌跡ログに基づいて、第1スケールのメッシュ上で図7(a)及び図7(b)に示すように通過エリア30を特定する(S13)。通過エリア30は、軌跡ログがメッシュ上のブロック25の単位で通過したエリアを示す。図7(a)及び図7(b)を用いて、ステップS12の処理について説明する。
図7(a)には、第1スケールのメッシュ上にプロットされた軌跡ログの軌跡点26が図示されている。軌跡ログの軌跡点26は、図7(a)において、黒塗りの菱形で図示し、図7(b)において白抜きの菱形で図示している。軌跡ログの軌跡点26は、第1スケールのメッシュにおけるいずれかのブロック25に位置する。サーバ装置2のサーバ制御部21は、メッシュ情報を参照し、軌跡ログの軌跡点26において時系列の順序で並ぶ2点間の線分27を計算する。
図7(b)は、図7(a)の軌跡ログに対応する通過エリア30を示す。サーバ制御部21は、図7(b)に示すように、計算した線分27が通過するブロック25の組を、通過エリア30として特定する。これにより、メッシュ上で軌跡ログの軌跡点26が位置するブロック25間に不連続な部分があったとしても、通過エリア30においては図7(b)に示す補間箇所31のように補間される。
次に、サーバ装置2は、特定した通過エリア30に基づいて、第1スケールのメッシュDB222aを更新する(S14)。次に、図7(c)及び図7(d)を用いて、ステップS13の処理について説明する。
図7(c)は、ステップS13の更新前における第1スケールのメッシュDB222aを例示し、図7(d)は、ステップS13の更新後における第1スケールのメッシュDB222aを例示している。サーバ制御部21は、第1スケールのメッシュDB222aにおいて、特定した通過エリア30における各ブロック25に関連付けされた通過頻度をインクリメントする。
例えば、図7(b)の通過エリア30に基づいて、図7(c)の状態の走行エリアDBは、図7(d)に示すように更新される。図7(d)では、破線で示す領域が通過頻度をインクリメントされた領域を示している。図7(c)において通過頻度が「0」の個所は、通過頻度がインクリメントされ、図7(d)において「1」となる。図7(c)において通過頻度が「1」の個所は、通過頻度がインクリメントされ、図7(d)において「2」となる。
図6に戻り、サーバ装置2は、第1スケールのメッシュDB222aの代わりに第2スケールのメッシュDB222bにおいて、ステップS13,S14と同様の処理を実行する(S15,S16)。
サーバ装置2は、各種メッシュDB222を更新して、図6に示すメッシュ情報の更新処理を終了する。
以上の処理によると、モバイル端末1からアップロードされた軌跡ログに基づいて、メッシュ情報を適切に管理することができる。
以上の説明では、軌跡ログがアップロードされた際に、対応するメッシュ情報が更新される例を説明した。メッシュ情報の更新処理はこれに限らず、例えば所定周期で、蓄積される軌跡ログの更新が一括して実行されてもよい。所定周期は、例えば1日毎であってもよい。
また、サーバ装置2は、メッシュ情報の対象とする軌跡ログを、所定の時間範囲に制限してもよい。例えば、サーバ制御部21は、走行実績DB221に蓄積された軌跡ログにおいて所定期間以上、過去の軌跡ログについて、メッシュDB222の走行実績を削除するように通過頻度をデクリメントしてもよい。また、サーバ制御部21は、時間範囲毎に軌跡ログを分類して、各々の分類においてメッシュ情報を管理してもよい。管理対象の時間範囲は、例えば、サマーシーズンのように、所定の期日ごとに設定されてもよいし、早朝と日中と深夜との所定の時間帯ごとに設定されてもよい。
また、サーバ装置2は、移動体5の種類ごとに分類して、メッシュ情報を管理してもよい。メッシュ情報は、例えば、3輪のATV(All Terrain Vehicle)、4輪のATV、6輪のATVのように、ATVの種類に応じて各々の移動体5の通過頻度を管理してもよい。
(走行エリアの表示処理) 本実施形態に係る情報処理システムにおいて、モバイル端末1は、サーバ装置2からメッシュ情報を取得して、メッシュ情報が示す走行エリア46を表示する。走行エリア46の表示処理について、図8及び図9を用いて説明する。
図8は、本実施形態における走行エリア46の表示処理を説明するためのシーケンス図である。図8に示す処理は、例えば、モバイル端末1において所定のプログラムが立ち上がったとき、或いは所定のユーザ操作が入力された場合に開始される。
まず、モバイル端末1の制御部11は、位置情報取得部18により、現在位置の位置情報を取得する(S21)。また、制御部11は、例えば記憶部13から縮尺情報を取得する(S22)。縮尺情報は、表示画面における地図情報の縮尺値を示す。縮尺値は、例えばユーザの操作により設定され、予め記憶部13に格納される。ステップS21,S22を実行する順番は、特に限定されない。
次に、制御部11は、ネットワーク通信部151を介してサーバ装置2に、メッシュ情報のリクエストを送信する(S23)。この際、制御部11は、メッシュ情報のリクエストと共に、取得した位置情報および縮尺情報をサーバ装置2に送信する。モバイル端末1によるメッシュ情報のリクエストは、例えば、モバイル端末1の識別情報を含む。
サーバ装置2は、モバイル端末1から、メッシュ情報のリクエストと位置情報と縮尺情報とを受信する(S31)。
次
に、サーバ装置2は、受信した各情報に基づいて、メッシュDB222から、受信した位置情報および縮尺情報に応じたメッシュ情報を抽出する(S32)。例えば、サーバ装置2は、縮尺情報が示す縮尺値が所定値以上である場合、第1スケールのメッシュDB222aを選択する。一方、サーバ装置2は、縮尺値が所定値未満である場合、第2スケールのメッシュDB222bを選択する。所定値は、例えば、第1スケールのブロック25が縮尺値に基づき表示された場合の解像度、視認性を考慮して適宜設定される。
さらに、サーバ装置2は、第1スケールのメッシュDB222a及び第2スケールのメッシュDB222bのうち、選択したスケールのメッシュDBから、位置情報が示す位置を含む所定範囲分のメッシュを含めるように、メッシュ情報を抽出する。所定範囲としては、例えば、位置情報が示す位置を中心とする30km×30kmの範囲である。
次に、サーバ装置2は、モバイル端末1に、抽出したメッシュ情報を送信する(S33)。この際、サーバ装置2は、受信したリクエスト中の識別情報を参照して、リクエストを送信したモバイル端末1への情報送信を行うことができる。
モバイル端末1の制御部11は、ネットワーク通信部151を介して、サーバ装置2からメッシュ情報を受信する(S24)。
次に、制御部11は、受信したメッシュ情報に基づいて、メッシュ画像生成処理を実行する(S25)。メッシュ画像生成処理は、メッシュ情報に基づく描画によって、図9に示すようなメッシュ画像41を生成する処理である。メッシュ画像41には、移動体5の走行エリア46が表示されている。メッシュ画像生成処理の詳細については後述する。
次に、制御部11は、生成したメッシュ画像41を、地図上に走行エリア46として表示する(S26)。制御部11は、例えば、記憶部13に記憶された地図を示す情報に基づき、地図画像40を生成する。制御部11は、図9に示すように、緯度及び経度が合致するように地図画像40のレイヤーと、メッシュ画像41のレイヤーとを重畳して、重畳した画像を表示部14に表示させる。制御部11は、他の各種画像を含むレイヤーをさらに重畳して表示させてもよい。
モバイル端末1によって走行エリア46が表示された(S26)後に、図8に示す処理は終了する。例えば、ユーザが終了操作を入力することで、走行エリア46の表示処理が終了される。
以上の処理によると、情報処理システムのサーバ装置2において管理されたメッシュ情報に基づいて、モバイル端末1が走行エリア46を表すようにメッシュ画像41を表示することができる(S26)。ステップS26の表示例について、図9を用いて説明する。
図9において、「x」は表示部14の表示画面における幅方向の座標を表す。図9において、「y」は表示画面における高さ方向の座標を表す。図9は、緯度とy座標とが対応し、経度とx座標とが対応する向きに地図画像40が表示された表示例を示している。
ステップS26において、モバイル端末1の制御部11は、例えば図9に示すように、表示部14の表示画面において地図画像40上に、メッシュ画像41と、現在地アイコン42と、軌跡画像43と、移動可能エリア画像44とを表示する。図9において、移動可能エリア画像44は、破線の円で図示している。
現在地アイコン42は、移動体5の現在地を示すアイコンである。軌跡画像43は、移動体5の出発地点から通過した軌跡を示す画像である。図9においては、移動体5の出発地点を示す出発地アイコン45で図示している。制御部11は、例えば、所定の時間間隔で位置情報を取得して、リアルタイムに現在地アイコン42を移動させたり、軌跡画像43を更新したりするように表示制御を行うことができる。制御部11は、移動体5の現在位置が表示部14における地図画像40の中央部に表示されるように、表示制御を行う。
移動可能エリア画像44は、移動体5が保持する燃料の残量において移動可能な範囲を示す画像である。制御部11は、例えば機器通信部152を介して移動体5に搭載された機器4から移動体5の燃料の残量、及び燃費等の情報を取得することにより、移動体5が移動可能な距離を算出する。制御部11は、距離の算出結果及び現在地に基づいて、移動可能エリア画像44を生成することができる。現在地アイコン42、軌跡画像43及び移動可能エリア画像44は、ユーザの操作等により適宜、表示が省略されてもよい。
なお、メッシュ画像41は、通過頻度が大きいブロック25ほど高い明度の色で表示されることが好ましい。ここで、明度には、透明度を含んでいてもよい。したがって、メッシュ画像41が地図画像40の上に描画されたレイヤーとして表示される場合、透明度が高くなるにつれ、地図画像40の着色が表示される構成としてもよい。情報処理装置は、透明度が高くなるにつれ地図画像40の着色が表示される構成の場合、例えば、移動体5の走行頻度が高くなるにつれ透明度が低くなるように表示させてもよい。
以下、本実施形態に係るメッシュ画像生成処理の詳細を説明する。
(メッシュ画像生成処理) 図8のステップS25のメッシュ画像生成処理について、図10及び図11を用いて説明する。以下では、表示部14において地図画像40の向きが、図9と同様の例について説明する。
まず、制御部11は、図8のステップS24においてサーバ装置2から取得したメッシュ情報に基づき、メッシュ情報中の複数のブロック25において、一つのブロック25を処理対象として選択する(S41)。ステップS41〜S52において、制御部11は、メッシュ情報に含まれたブロック25毎に、描画の仕方を指定するための処理を実行する。
図11(a)は、ステップS41におけるブロック25の選択順の一例を示す。図11(a)は、処理対象のブロック25が、緯度及び経度の地理座標における左下から右上に順次、ラスタースキャンするように選択される例を示している。図11(a)の例において、ブロック25の選択は、メッシュ情報においてマトリクス状に並んだ複数のブロック25における最も下の行の左端から開始されている。制御部11は、メッシュ情報に基づいて、例えば緯度及び経度が小さいブロック25から順番に各ブロック25を選択する(S41)。ブロック25の選択は、各行において左端から順次、右隣のブロック25に進み、各行の右端に到達すると次の行に進むように走査される。図11(a)では、各行のブロック25の選択の順番を実線の矢印で例示し、異なる行のブロック25への選択を破線の矢印で例示している。
次に、制御部11は、表示部14の表示画面における選択したブロック25の表示位置を算出する(S42)。図11(b)は、ブロック25の表示位置の一例を示す。制御部11は、図11(b)に示すように、画面座標においてブロック25の四隅に対応する4点(x,y)、(x+Δx,y)、(x,y+Δy)、(x+Δx,y+Δy)を算出する。ステップS42の処理の詳細については後述する。
次に、制御部11は、算出したブロック25の表示位置に基づいて、処理中のブロック25が図9に示すメッシュ表示領域410の範囲内にあるか否かを判断する(S43)。メッシュ表示領域410は、表示画面上でメッシュ画像41を表示するために設定された所定範囲の領域である。メッシュ表示領域410は、例えば、現在地アイコン42で示された現在地を中心とする5km×5kmに対応する範囲に設定される。ステップS43の判断は、例えばブロック25の四隅に対応する4点が、メッシュ表示領域410の範囲内にあるか否かに基づき行われる。
制御部11は、処理中のブロック25がメッシュ表示領域410の範囲内にあると判断した場合(S43で「Yes」)、メッシュ情報を参照して、処理中のブロック25の色を決定する(S44)。例えば、制御部11は、メッシュ情報において処理中のブロック25に関連付けされた通過頻度と、予め設定されたしきい値とを比較して、比較結果に基づきブロック25の色を決定する。制御部11は、例えば、通過頻度がしきい値を超える数が大きいほど、より高い明度の色のブロック25になるように決定する。ブロック25の色は、メッシュ画像41における表示属性の一例である。ブロック25の表示属性は、色の明度だけに限られない。ブロック25の表示属性は、彩度及び色相であってもよい。ブロック25の表示属性は、模様であってもよい。ブロック25の表示属性となる模様としては、例えば、千鳥格子、若しくはストライプが挙げられる。
次に、制御部11は、処理中のブロック25が、表示される予定のメッシュ画像41における最初のブロック25であるか否かを判断する(S45)。処理中のブロック25が最初のブロック25である場合(S45で「Yes」)、制御部11は、処理中のブロック25を図11(c)に示す単位ブロック35として管理する(S46)。
単位ブロック35は、メッシュ画像41において、メッシュ情報中のブロック25の一つ分に対応する。単位ブロック35は、幅Δxと高さΔyとを、それぞれ同じ大きさに設定されている。単位ブロック35は、幅Δxと高さΔyとが同じ大きさであってもよいし、幅Δxと高さΔyとが異なる大きさでもよい。ステップS46において、制御部11は、単位ブロック35の管理情報を一時記憶部12に記録する。単位ブロック35の管理情報は、ステップS42で算出された4点(x,y)、(x+Δx,y)、(x,y+Δy)、(x+Δx,y+Δy)と、ステップS44で決定された色とを関連付けて管理する。
制御部11は、例えば最初のブロック25が管理された状態において、メッシュ情報から新たなブロック25を選択して(S41)、ステップS42以降の処理を行う。制御部11は、管理下のブロック25がある場合、処理中のブロック25が最初のブロック25でないと判断する(S45で「No」)。
処理中のブロック25が最初のブロック25でない場合(S45で「No」)、制御部11は、記録した管理情報における画面座標に基づいて、処理中のブロック25の左隣に、管理下のブロック25があるか否かを判断する(S47)。処理中のブロック25の左隣にブロック25がある場合(S47で「Yes」)、制御部11は、左隣のブロック25の管理情報に関連付けされた色に基づいて、処理中のブロック25の色が、左隣のブロック25の色と同じであるか否かを判断する(S48)。
制御部11は、処理中のブロック25の色が左隣のブロック25の色と同じであると判断すると(S48で「Yes」)、図11(c)に示すように、処理中のブロック25と左隣のブロック25とを連結した連結ブロック36に統合して管理する(S49)。図11(c)では、単位ブロック35及び連結ブロック36の一例を示す。連結ブロック36は、図11(c)に示すように、幅方向において隣り合う複数の単位ブロック35が一体的に連結されて構成される。制御部11は、例えば左隣のブロック25の管理情報を更新することにより、連結ブロック36の管理情報を記録する。
例えば、左隣のブロック25が単位ブロック35として管理されていた場合、更新前の管理情報は、4点(x,y)、(x+Δx,y)、(x,y+Δy)、(x+Δx,y+Δy)を含む。ステップS49において、制御部11は、単位ブロック35の管理情報における左側の2点(x,y)、(x,y+Δy)を維持しながら、例えば、右側の2点(x+Δx,y)、(x+Δx,y+Δy)を新たな値(x+2Δx,y)、(x+2Δx,y+Δy)に書き換える。これにより、2つの単位ブロック35が統合された1つの連結ブロック36として管理される。
一方、制御部11は、処理中のブロック25の色が左隣のブロック25の色と同じでないと判断すると(S48で「No」)、管理下のブロック25を描画する(S50)。例えば、制御部11は、所定のコマンドを用いて、管理情報に含まれる4頂点の領域内に、関連付けされた色を指定する。所定のコマンドは、例えばOpenGL(登録商標)に基づく。
さらに、制御部11は、処理中のブロック25を、新たな単位ブロック35として管理する(S51)。ステップS50,S51によると、処理中のブロック25が管理下のブロック25に連結されなかったときに管理下のブロック25が描画されると共に、連結されなかった処理中のブロック25が新たに管理される。
次に、制御部11は、メッシュ情報における各ブロック25の走査が完了したか否かを判断する(S52)。ブロック25の走査が完了していない場合(S52で「No」)、制御部11は、メッシュ情報に含まれる未処理のブロック25に、ステップS41以降の処理を実行する。
制御部11は、処理中のブロック25がメッシュ表示領域410の範囲内にないと判断した場合(S43で「No」)、ステップS44〜S49の処理を行わずに、ステップS52に進む。これにより、情報処理装置は、所定範囲のメッシュのうち、メッシュ表示領域410の範囲内にないブロック25の処理を行わないことで、メッシュ画像41として表示されないブロック25に関する処理負荷を低減することができる。
また、制御部11は、処理中のブロック25の左隣に隣接するブロック25がないと判断すると(S47で「No」)、管理下のブロック25を描画し(S50)、処理中のブロック25を単位ブロック35として管理する(S51)。これにより、例えば処理中のブロック25がメッシュ表示領域410の左端に位置する場合に、別の段のメッシュ表示領域410の右端に位置するブロック25が描画され、左端のブロック25が新たに管理される。
制御部11は、メッシュ情報の走査が完了したと判断すると(S52で「Yes」)、メッシュ画像41の最後のブロック25として管理下のブロック25を描画する(S53)。これにより、制御部11は、図8のステップS25の処理を終了し、ステップS26に進む。
以上の処理によると、同じ表示属性を持った複数のブロック25が一行の中に隣接している場合(S48で「Yes」)、隣接した複数のブロック25が一つの連結ブロック36にまとめられる(S49)。連結ブロック36の描画により、まとめた複数の単位ブロック35分の描画を一括して行うことができる(S50)。
また、制御部11は、連結ブロック36が矩形となるように、複数のブロック25を統合する(S48,S49)。これにより、一つの連結ブロック36は、一つの単位ブロック35と同様に4つの頂点を指定することにより描画でき、一つの連結ブロック36を描画するために要する処理負荷が、一つの単位ブロック35を描画する場合と同等になる。このため、制御部11は、連結ブロック36としてまとめた単位ブロック35の個数分、描画のための処理負荷を低減することができる。
例えば、図11(c)の例では、複数の単位ブロック35が並んだ3行5列の部分が、3つの連結ブロック36と2つの単位ブロック35とで構成されている。この場合、個々の単位ブロック35を描画する際には15回の描画が行われる処理負荷を、5回分にまで低減することができる。制御部11は、適宜、連結ブロック36が矩形となるように、隣接する行間で同じ表示属性を持ったブロック25を連結してもよい。
また、以上の処理において、ステップS44でブロック25の色を決定するためのしきい値を適宜、設定することにより、同じ表示属性としてまとめられるブロック25の個数を調整することができる。例えば、複数のしきい値間の間隔を広げることにより、より多くのブロック25をまとめることが可能になり、処理負荷を低減することができる。
また、以上の処理において、制御部11は、メッシュ情報に含まれるブロック25において、メッシュ画像41として描画するブロック25を、メッシュ表示領域410の範囲内に制限している(S43で「No」)。これにより、情報処理装置は、描画するブロック25を少なくすることで、メッシュ画像41の描画時の処理負荷を低減することができる。メッシュ表示領域410の範囲は、予め設定されていてもよいし、ユーザの操作により変更されてもよい。
ところで、メッシュ画像41が、1個あたり20m×20mのブロック25を、8km×12kmの領域に並べて表示される場合、メッシュ画像41を地図画像40に重ねて表示するためには8km×50個×12km×50個×4隅の計9万6千個の座標計算が必要になる。そのため、情報処理装置では、移動体5が走行可能な走行エリア46を示す情報を表示するための情報処理の処理負担が大きくなる傾向にある。そこで、本実施形態において、制御部11は、メッシュ画像41を描画するための処理負荷を低減するように、表示位置の算出処理を行っている。
以下、図10のステップS42の処理について、図12を用いて説明する。図12は、ブロック25の表示位置の算出処理を示すフローチャートである。
まず、制御部11は、図10のステップS41で選択したブロック25の四隅における一点を、地理座標から画面座標に座標変換する(S61)。これにより、例えば図11(b)の例におけるブロック25の左下端の点(x,y)の画面座標が算出される。
次に、制御部11は、算出した画面座標と、図8のステップS22で取得した縮尺情報とに基づいて、ブロック25の四隅における残りの三点の画面座標を算出する(S62)。
例えば、制御部11は、図10のステップS41における最初の選択時に、地理座標におけるブロック25の大きさを示す情報と縮尺情報とに基づいて、画面座標におけるブロック25の幅Δxと高さΔyとを算出する。制御部11は、算出結果を一時記憶部12等に保存し、新たなブロック25の選択時には固定値として、縮尺情報に基づく幅Δxと高さΔyとを用いる。
ステップS62において、制御部11は、縮尺情報に基づく幅Δx及び高さΔyを、算出した画面座標(x,y)に加算することにより、画面座標におけるブロック25の右下端の点(x+Δx,y)、左上端の点(x,y+Δy)及び右上端の点(x+Δx,y+Δy)を算出する。これにより、選択されたブロック25の四隅の画面座標が算出される。
制御部11は、選択されたブロック25の四隅の画面座標を算出すると(S62)、図10のステップS42の処理を終了し、ステップS43に進む。
以上の処理によると、制御部11が縮尺情報に基づく幅Δx及び高さΔyを固定値として用いることにより(S62)、一つのブロック25の四隅の画面座標を算出する際に演算される座標変換の演算回数が一回になる。これにより、各ブロック25の四隅の各々に座標変換を演算する場合に対して、座標変換の演算回数が1/4倍にまで低減される。よって、例えば図9に示すようにメッシュ画像41の各ブロック25を地図画像40上に位置合わせして表示する際に、地理座標から画面座標への座標変換によるデータ処理量を低減できる。これにより、メッシュ画像41を表示する際の処理速度を向上することができる。
また、以上の処理は、表示部14の表示画面における縮尺情報に基づき行われる。図13は、図9から縮尺が変更された場合の表示部14の表示例を示す。例えばユーザの操作により表示画面の縮尺が変更された場合、制御部11は、変更後の縮尺情報を用いて図10の処理を実行し、図13に示すようなメッシュ画像411を表示する。
この際、制御部11は、縮尺の変更前のメッシュ表示領域410と同様に、地理座標上で所定の大きさを表すように、縮尺の変更後のメッシュ表示領域412の範囲を設定する。また、制御部11は、変更後の縮尺情報に対応したブロック25の幅Δx′及び高さΔy′を用いて、図12によるブロック25の表示位置の算出を実行する。制御部11は、変更された縮尺に応じて、表示画面においてメッシュ画像411を表示させる範囲を制限して、描画の処理負荷を低減することができる。
以上のように、本実施形態に係る情報処理装置の一例であるモバイル端末1は、移動体5が走行可能な走行エリア46を示す情報を表示する情報処理装置の一例である。モバイル端末1は、表示部14と、制御部11と、を備える。表示部14は、画像を表示する表示画面を有する。制御部11は、位置座標で規定されるメッシュ情報に応じて生成されたメッシュ画像41を表示部14に表示させる。メッシュ情報は、走行エリア46に関する値をそれぞれ有する複数のブロック25を含む。制御部11は、メッシュ情報に基づいて、互いに隣接するブロック25の値が同じ分類に属する場合に隣接するブロックを、まとめたブロックとしてメッシュ画像における表示属性で表示させる。これにより、情報処理装置は、移動体5が走行可能な走行エリア46を表示する情報処理において処理負荷を低減することができる。
本実施形態において、制御部11は、メッシュ情報に基づいて、互いに隣接するブロック25の値が同じ分類に属する場合に隣接するブロック25をまとめて(S49)、まとめたブロック25に一括してメッシュ画像41における表示属性を指定する(S50)。これにより、情報処理装置は、ブロック25をまとめた分だけ、個々のブロック25に表示属性を指定する場合よりもメッシュ画像41を生成する際の処理負荷を低減することができる。
本実施形態において、ブロック25は、矩形状の領域を構成する。制御部11は、メッシュ画像41における各ブロック25の領域内の表示属性を指定する。まとめた結果の連結ブロック36は、複数の単位ブロック35分の大きさを有する矩形状の領域を構成する。これにより、情報処理装置は、1つの連結ブロック36を、1つの単位ブロック35分の処理負荷で描画でき、連結ブロック36にまとめた分だけ処理負荷を低減することができる。
本実施形態において、制御部11は、所定方向に並んだブロック25毎に、隣接するブロック25をまとめる。ブロック25をまとめる所定方向は適宜、設定できる。制御部11は、所定方向に並んだブロック25間でブロック25の値が同じ分類に属するか否かを判断することにより(S48)、簡単に連結ブロック36を管理することができる。
本実施形態において、モバイル端末1は、記憶部13をさらに備える。記憶部13は、表示画面における画面座標と位置座標との間の縮尺を示す縮尺情報を記憶する。制御部11は、メッシュ情報に基づき、位置座標における各ブロック25中の一点を画面座標に変換し(S61)、変換結果の画面座標と縮尺情報とに基づいて、表示画面におけるブロック25の位置を算出する(S62)。これにより、情報処理装置は、1つのブロック25当たりに座標変換の演算回数が1回になり、処理速度を向上できる。
本実施形態において、表示部14は、表示画面においてメッシュ画像41を表示する範囲を特定のメッシュ表示領域410に制限する。メッシュ表示領域410は、位置座標における所定サイズの範囲に対応する。これにより、情報処理装置は、メッシュ表示領域410外までメッシュ画像41が描画される場合よりも、処理負荷を低減できる。
本実施形態において、表示部14は、一つ又は複数のしきい値とメッシュ情報における各ブロック25の値とを比較して決定された表示属性でメッシュ画像41における各ブロック25を表示する。情報処理装置は、しきい値を適宜、設定することにより、まとめられるブロック25を調整でき、処理速度を向上できる。
本実施形態において、ブ
ロック25の表示属性は、所定の色の明度を表す。表示部14は、メッシュ情報におけるブロック25の値が大きいほど高い明度を表示する。これにより、表示部14は、大きい値を有するブロック25ほどユーザにとって視認しやすくさせることができる。制御部11は、ブロック25の値が大きいほど低い明度を指定してもよい。
本実施形態において、ブロック25の値は、移動体5が、各ブロック25に対応する領域を通過した通過頻度を示す。これにより、制御部11は、通過頻度に従って走行エリア46を表すように、メッシュ画像41を生成することができる。ブロック25の値は、移動体5の通過頻度に適宜、しきい値判定をした判定結果であってもよい。通過頻度のしきい値判定は、サーバ装置2により行われてもよい。
本実施形態において、モバイル端末1は、メッシュ情報を、サーバ装置2から受信するネットワーク通信部151をさらに備える。モバイル端末1は、予め記憶したメッシュ情報に基づきメッシュ画像41を生成してもよい。
本実施形態において、表示部14は、地図を示す画像上に重畳してメッシュ画像41を表示する。これにより、ユーザが地図画像40におけるメッシュ画像41の位置及び範囲を確認することができる。
本実施形態において、移動体5が走行可能な走行エリア46を示す情報をモバイル端末1で生成させるプログラムが提供される。モバイル端末1の制御部11は、プログラムの実行により、位置座標で規定されるメッシュ情報に応じてメッシュ画像41を生成する。メッシュ情報は、走行エリア46に関する値をそれぞれ有する複数のブロック25を含む。制御部11は、プログラムの実行により、メッシュ情報に基づいて、互いに隣接するブロック25の値が同じ分類に属する場合に隣接するブロック25をまとめて、まとめたブロック25に一括してメッシュ画像41における表示属性を指定する。以上のようなプログラムが格納された非一時的コンピュータ読み取り可能な記録媒体が提供されてもよい。
<実施形態2> 上記の実施形態1では、図10のメッシュ画像生成処理において、処理中のブロック25が管理下のブロック25に連結されなかったときに逐次、管理下のブロック25が描画される例を説明したが、メッシュ画像生成処理はこれに限らない。以下、本実施形態に係るメッシュ画像生成処理について、図14を用いて説明する。本実施形態においては、実施形態1と同様の構成については、適宜説明を省略する。
図14に示すメッシュ画像生成処理では、制御部11は、ステップS41〜S52において、メッシュ画像41に含まれる全てのブロック25の描画の仕方を管理するための処理を行う。例えば、制御部11は、処理中のブロック25の色が左隣のブロック25と同じ色ではないと判断したとき(S48で「No」)には、左隣のブロック25の管理を継続しながら、新たな単位ブロック35を管理する(S51)。
制御部11は、ステップS41〜S51の処理の完了後(S52で「Yes」)、管理下の全てのブロック25を描画するように、メッシュ画像41を生成する(S54)。以上の処理においても、隣接する同色のブロック25を連結ブロック36としてまとめることにより(S49)、複数の単位ブロック35分の領域にまとめて表示属性を指定することができる。これにより、情報処理装置は、メッシュ画像41を描画する際の処理負荷を低減することができる。
<他の実施形態> 上記の各実施形態では、情報処理装置の一例としてモバイル端末1について説明した。本実施形態に係る情報処理装置は、モバイル端末1に限られない。情報処理装置は、例えば、移動体5に搭載されるナビゲーション装置であってもよいし、サーバ装置2であってもよい。サーバ装置2のサーバ制御部21が、上記の各実施形態と同様にメッシュ画像41を生成してもよいし、サーバ装置2に別途、設けられた表示部にメッシュ画像41を表示させてもよい。
上記の各実施形態では、移動体5の一例としてバギーについて説明した。移動体5は、バギーだけに限られず、例えば二輪を含む種々の車両、スノーモービル、若しくはドローンであってもよい。本実施形態に係る情報処理装置は、各種の移動体5に適用できる。
以上のように、本発明の具体的な実施形態について説明したが、本発明は上述した実施形態に限定されるものではなく、本発明の範囲内で種々の変更を行ってもよい。例えば、上記の個々の実施形態の内容を適宜組み合わせたものを本発明の一実施形態とすることができる。