以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
<第1の実施の形態>
<ネットワークシステムの全体構成>
まず、本実施の形態にかかるネットワークシステム1の全体構成と動作概要とについて説明する。図1は、本実施の形態にかかるネットワークシステム1の全体構成を示すイメージ図である。
図1を参照して、ネットワークシステム1の全体構成について簡単に説明する。ネットワークシステム1は、主に、複数の通信端末100と、サーバ200を含む。複数の通信端末100は、スマートフォン、タブレット、ノートパソコン、カーナビなどの通信機能を有する装置である。サーバ200は、複数の通信端末100のそれぞれとデータ通信することができる。
そして、本実施の形態においては、複数の通信端末100のうちの少なくとも1台(図1における100A,100B,100Cなど)は、衛星測位システムGNSS(Global Navigation Satellite System)などの位置取得機能を利用することによって自身の現在位置を取得することができる。そのような通信端末100は、自分の現在位置や移動速度や移動方向などをサーバ200に送信することができる。
また、複数の通信端末100は、ディスプレイを利用して文字や画像を表示することができる。そのような複数の通信端末100は、サーバ200からのデータに基づいて、上記の位置取得機能を有する複数の通信端末100の位置を表示することができる。なお、本実施の形態においては、現在位置をサーバにアップロードする機能と、現在位置をディスプレイに表示する機能は、いずれか1つを起動させてもよいし、両方を起動させてもよい。
<ネットワークシステムの動作概要>
次に、本実施の形態にかかるネットワークシステム1の動作概要について説明する。図2は、本実施の形態にかかる通信端末100の表示画面を示すイメージ図である。なお、以下では、複数の通信端末100のユーザが、互いに、自転車レースなどのチームのメンバーである場合について説明する。ただし、複数の通信端末100のユーザは、日常生活を送っている家族であってもよいし、大型商業施設に買い物に来ているグループでも良いし、遊園地などに遊びに来ているグループであってもよい。
まず、予め、各チームに属する複数のユーザは、各々がサーバ200から自分の通信端末100に位置取得用のアプリケーションプログラムをダウンロードする。ただし、位置取得用のアプリケーションプログラムは、サーバ200以外のサーバから供給されるものであってもよい。なお、以下では、位置取得用のアプリケーションプログラムは、単に位置取得プログラムともいう。
位置取得プログラムは、通信端末100の現在位置や移動速度や移動方向や端末の向き(姿勢)などを取得して、時刻とともにサーバ200へ送信する発信モードと、サーバ200から他の通信端末100の現在位置および時刻などを取得して、他の通信端末100の現在位置を地図上に表示する取得モードと、を少なくとも有している。
そして、本実施の形態にかかる位置取得プログラムは、発信モードと取得モードとを同時に実行させることもできる。たとえば、通信端末100は、発信モードとして自分の位置情報を発信しながら、取得モードとしてサーバ200から受信した他の通信端末100または自身の通信端末100の現在位置を取得して地図上に表示することができる。
本実施の形態においては、チームに属する複数のユーザ各々の通信端末100が、チームに属する複数のユーザそれぞれの複数の通信端末100の現在位置を表示する際に、正常にコースを進んでいる集団に属する複数のユーザそれぞれの複数の通信端末100の現在位置を地図上に通常の表示形態で表示する。そして、チームに属する複数のユーザ各々の通信端末100は、集団から離れたユーザの通信端末100の現在位置を、他の表示形態で表示する。本実施の形態においては、集団に属するユーザの現在位置を第1の表示形態として画面中央部分に地図上に表示しつつ、集団に属さないユーザの方向と距離とを示す情報を第2の表示形態として画面端部に表示する。なお、チームに属する複数のユーザ各々の通信端末100は、集団に属していたユーザが集団から離れた場合や、集団から離れていたユーザが集団に復帰した場合に、警告音や警告メッセージを出力してもよい。
図2は、本実施の形態にかかる通信端末100における第1の表示画面を示すイメージ図である。図2に示すように、たとえば、AAAさん、BBBさん、CCCさん、DDDさんの4人の通信端末100が発信モードを起動中であったとしても、集団から離れているDDDさんの現在位置はAAAさん、BBBさん、CCCさんの通信端末100の地図上には表示されない。これによって、4人全ての現在位置を表示する場合と比較して、集団に属する通信端末100の現在位置を大きな縮尺の地図上に表示することができる。
なお、チームに属するユーザ各々の通信端末100は、自分が集団に属していない場合でも集団に属する通信端末100の現在位置を地図上に表示するものであってもよいし、自分が集団に属していない場合には自分の通信端末100の現在位置を大きな縮尺の地図上に表示してもよい。そして、複数のユーザ各々の通信端末100は、自身が集団から離れた場合や、自身が集団に復帰した場合に、警告音や警告メッセージを出力してもよい。
このように、本実施の形態においては、正常にコースを進んでいる集団に属する複数のユーザそれぞれの複数の通信端末100の現在位置を地図上に通常表示するため、全ユーザの複数の通信端末100の現在位置全てを地図上に通常表示する場合と比較して、集団に属するユーザの現在位置を把握し易い。
そして、本実施の形態においては、集団に属するユーザの現在位置を第1の表示形態として画面中央部分に地図上に表示しつつ、集団に属さないユーザの方向と距離とを示す情報を第2の表示形態として画面端部に表示するため、集団に属するユーザの現在位置をユーザが把握しやすくなるとともに、集団に属さないユーザの現在位置もおおまかに把握することが可能になる。すなわち、本実施の形態においては、従来よりも効率的に複数の端末の現在位置を表示することができる。以下では、このような機能を実現するためのネットワークシステム1について詳細に説明する。
<通信端末100のハードウェア構成>
まず、通信端末100のハードウェア構成の一態様について説明する。図3は、本実施の形態にかかる通信端末100のハードウェア構成を表わすブロック図である。
図3を参照して、通信端末100は、主たる構成要素として、CPU110と、メモリ120と、タッチパネル150(ディスプレイ130とポインティングデバイス140)と、通信インターフェイス160と、位置取得部170とを含む。
CPU110は、メモリ120あるいは外部の記憶媒体に記憶されているプログラムを実行することによって、通信端末100の各部を制御する。すなわち、CPU110は、メモリ120に格納されているプログラムを実行することによって、各種の処理、たとえば図4、図6、図8などに記載の各ステップを実行する。
メモリ120は、各種のRAM(Random Access Memory)、各種のROM(Read-Only Memory)、フラッシュメモリーなどによって実現される。なお、メモリ120は、インターフェイスを介して利用される、USB(Universal Serial Bus)(登録商標)メモリ、CD(Compact Disc)、DVD(Digital Versatile Disk)、メモリカード、ハードディスク、IC(Integrated Circuit)カード、光カード、マスクROM、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electronically Erasable Programmable Read-Only Memory)などの記憶媒体などによっても実現される。
メモリ120は、CPU110によって実行されるプログラムや、CPU110によるプログラムの実行により生成されたデータ、ポインティングデバイス140を介して入力されたデータ、サーバ200から受信したデータ、地図を表示するための地図データ、レースに使用されるピッチの位置および/またはエリアを示す緯度・経度情報などを記憶する。
ディスプレイ130は、CPU110からの信号に基づいて、文字や画像を出力する。ポインティングデバイス140は、ユーザからの命令を受け付けて、当該命令をCPU110に入力する。なお、本実施の形態においては、通信端末100は、ディスプレイ130とポインティングデバイス140とが組み合わされたタッチパネル150を有する。
通信インターフェイス160は、アンテナやコネクタによって実現される。通信インターフェイス160は、有線通信あるいは無線通信によって他の装置との間でデータをやり取りする。CPU110は、通信インターフェイス160を介して、後述する位置データ、その他のテキストデータ、その他の画像データなどを、サーバ200などの他の装置に送信する。また、CPU110は、通信インターフェイス160を介して、チームのユーザの通信端末100の位置を示すための位置データ、プログラム、制御命令、画像データ、テキストデータなどを、サーバ200などの他の装置から受信する。
位置取得部170は、GPS機能などを利用して外部の衛星と信号をやり取りする。CPU110は、位置取得部170が取得した信号に基づいて、通信端末100の現在位置、すなわち現在の緯度と経度とを取得する。
<通信端末100のCPU110の処理>
次に、本実施の形態にかかる通信端末100におけるCPU110が位置取得プログラムに従って、実行する処理について説明する。図4は、本実施の形態にかかる位置取得プログラムの処理の流れを示すフローチャートである。図5は、本実施の形態にかかる通信端末100における表示画面の推移を示すイメージ図である。
図4および図5を参照して、予めCPU110は、ユーザからの命令に従って、通信インターフェイス160を介して、他のサーバから位置取得プログラムをダウンロードしている(ステップS002)。CPU110は、ユーザからの命令に応じて、位置取得プログラムを起動する(ステップS004)。CPU110は、タッチパネル150に利用規約を表示する(ステップS006)。
CPU110は、タッチパネル150を介して、ユーザから、自分の通信端末100の現在位置情報をサーバ200に発信する発信モードか、他のユーザの通信端末100または自分の通信端末100の現在位置情報を取得して表示する取得モードか、の選択命令を受け付ける(ステップS008、図5の(a))。
ユーザが発信モードを選択した場合、CPU110は、タッチパネル150を介してユーザからニックネームの入力を受け付ける(ステップS010、図5の(b))。CPU110は、ユーザからユーザIDの取得命令を受け付けて、通信インターフェイス160を介してサーバ200にユーザIDを要求する。CPU110は、サーバ200からユーザIDを取得して、当該ユーザIDをディスプレイに表示させる。
ここで、本実施の形態にかかる位置取得プログラムは、自分のユーザIDを他の通信端末100に伝える命令も受け付ける。たとえば、CPU110は、ユーザからの当該命令を受け付けて、メール送受信プログラムを立ち上げる。CPU110は、通信インターフェイス160を介して、ユーザから指定された他のユーザの通信端末100に、取得したユーザIDを送信する(ステップS012)。
そして、CPU110は、タッチパネル150を介して、位置取得および位置データ送信を開始するための命令を待ち受ける。たとえば、レースの開始直前などに、CPU110は、当該開始命令を受け付ける。すると、CPU110は、位置取得機能を利用して、通信端末100の現在位置を取得し始める。そして、CPU110は、当該現在位置をサーバ200を介して他のユーザの通信端末100に送信し始める(ステップS014)。
一方、ユーザがステップS008にて取得(表示)モードを選択した場合、CPU110は、ユーザから現在位置を取得したい通信端末100のユーザIDの入力を受け付ける(ステップS016、図5の(c))。なお、CPU110は、電子メールを利用して他の通信端末100からユーザIDを取得してもよい。CPU110は、他の通信端末100の現在位置情報を受信すると、タッチパネル150に地図上に当該他の通信端末100の現在位置を表示させる(ステップS018、図2)。
なお、発信モードにおいて位置情報を発信している状態において、ユーザが、図5(c)に示す画面に自身の通信端末100に関するユーザIDを入力すると、あるいは自身の通信端末100からの受信メールに基づいてユーザIDが入力されると、タッチパネル150には自身の通信端末100の現在位置が地図上に表示されることになる。
<通信端末100における位置データ送信処理>
次に、本実施の形態にかかる通信端末100における位置データ送信処理について詳しく説明する。図6は、本実施の形態にかかる通信端末100における位置データ送信処理を示すフローチャートである。
図6を参照して、通信端末100のCPU110は、まずタイマーをリセットする(ステップS102)。CPU110は、メモリ120から位置データの更新間隔を取得する(ステップS104)。
CPU110は、タイマーの値が更新間隔を超えているか否かを判断する(ステップS106)。タイマーの値が更新間隔を超えていない場合(ステップS106においてNOである場合)、ステップS106の処理を繰り返す。
CPU110は、タイマーの値が更新間隔を超えている場合(ステップS106においてYESである場合)、位置取得部170を利用して、通信端末100の現在位置、速度、方向などを取得する(ステップS108)。CPU110は、現在位置、移動速度、移動方向、姿勢などに基づいて送信データを作成する(ステップS110)。CPU110は、通信インターフェイス160を利用することによって、送信データをサーバ200に送信する(ステップS112)。CPU110は、ステップS110からの処理を繰り返す。
<通信端末100における位置取得表示処理>
次に、現在位置を表示するユーザを指定するための処理について説明する。なお、図7は、本実施の形態にかかる通信端末100における第3の表示画面を示すイメージ図である。
まず、図5(a)に戻って、ユーザが通信端末100のタッチパネル150あるいはスイッチを介して取得(表示)モードを選択した場合、図5の(c)および図7の(a)に示すように、CPU110は、ユーザから、現在位置の表示をしたい複数の通信端末100に関するユーザIDの入力を受け付ける。
図7の(a)を参照して、本実施の形態においては、CPU110は、タッチパネル150に、複数の通信端末100に関するユーザIDの受け付け画面を表示させる。なお、他の通信端末100からメールなどによってユーザIDが送付されてきた場合には、CPU110は、自動的にユーザIDを入力欄に入力する。
ユーザが、現在位置の表示をしたい通信端末100に関するユーザIDを入力して検索ボタンを押すと、あるいは現在位置の表示をしたい通信端末100からの受信メールに基づいてユーザIDが入力された状態でユーザが検索ボタンを押すと、CPU110は、通信インターフェイス160を介してサーバ200にユーザIDを送信する。
図7の(b)を参照して、サーバ200は、ユーザIDに対応するニックネームを通信端末100に送信する。CPU110は、タッチパネル150に現在位置を表示したい通信端末100に関わるニックネームを表示させる。これによって、通信端末100のユーザは、現在位置を取得しようとしている通信端末100が所望のユーザのものであるか確認することができる。
さらに、ユーザが、現在位置の表示をしたい他の通信端末100に関するユーザIDを入力して検索ボタンを押すと、あるいは現在位置の表示をしたい通信端末100からの受信メールに基づいてユーザIDが入力された状態でユーザが検索ボタンを押すと、CPU110は、通信インターフェイス160を介してサーバ200にユーザIDを送信する。
図7の(c)を参照して、サーバ200は、さらに他の通信端末100に関するユーザIDに対応するニックネームを通信端末100に送信する。CPU110は、タッチパネル150に現在位置を表示したい他の通信端末100に関わるニックネームを表示させる。これによって、通信端末100のユーザは、現在位置を取得しようとしている他の通信端末100が所望のユーザのものであるか確認することができる。
このとき、CPU110は、指定された1または複数の通信端末100の現在位置の表示を開始するための命令を受け付けるためのソフトウェアボタンをタッチパネル150に表示させる。当該命令を受け付けると、CPU110は、通信インターフェイス160を介して、サーバ200から1または複数の通信端末100の現在位置情報を取得し始める。すなわち、CPU110は、サーバ200あるいは他のデータベースあるいは自身の位置取得プログラムから取得できる地図データに基づいて、図2に示すように、タッチパネル150に、ユーザによって指定された複数の通信端末100の現在位置を地図上に表示させる。
なお、本実施の形態においては、サーバ200は、集団に属する少なくとも1つの通信端末100の現在位置や速度の情報と集団に属さない通信端末100の現在位置や速度の情報とを区別可能に通信端末100に送信してもよい。この場合は、CPU110は、当該情報から、集団に属する少なくとも1つの通信端末100のみの現在位置を取り出して、タッチパネル150の地図上に表示させる。
ただし、サーバ200は、集団に属する少なくとも1つの通信端末100のみの現在位置や速度の情報を通信端末100に送信してもよい。この場合は、CPU110は、全ての当該情報に基づいて、タッチパネル150に地図上に集団に属する少なくとも1つの通信端末100のみの現在位置を表示させる。
また、上述したように、発信モードにおいて位置情報を発信しながら、図7の(a)に示す状態において、ユーザが自身の通信端末100に関するユーザIDを入力すると、あるいは自身の通信端末100からの受信メールに基づいてユーザIDが入力されると、タッチパネル150には他の通信端末100の現在位置とともに自身の通信端末100の現在位置が地図上に表示されることになる。
次に、本実施の形態にかかる通信端末100における位置データ取得表示処理について説明する。図8は、本実施の形態にかかる通信端末100における位置データ送信処理を示すフローチャートである。
図8を参照して、通信端末100のCPU110は、まずタイマーをリセットする(ステップS122)。CPU110は、メモリ120から地図の更新間隔を取得する(ステップS124)。
CPU110は、タイマーの値が更新間隔を超えているか否かを判断する(ステップS126)。タイマーの値が更新間隔を超えていない場合(ステップS126においてNOである場合)、ステップS126の処理を繰り返す。
CPU110は、タイマーの値が更新間隔を超えている場合(ステップS126においてYESである場合)、通信インターフェイス160を介して、サーバ200に位置データを要求する(ステップS128)。CPU110は、通信インターフェイス160を介して、サーバ200から少なく1つの通信端末100の表示用位置データを受信する(ステップS130)。
CPU110は、取得した表示用位置データと、当該表示用位置データの近傍の地図データとに基づいて、集団に属する少なくとも1つの通信端末100の現在位置を地図上に表示し、集団に属さない通信端末100の現在位置の方向と距離とを表示するための表示用データを作成する(ステップS132)。CPU110は、表示用データに基づいて、タッチパネル150の地図上に集団に属する少なくとも1つの通信端末100の現在位置を示すアイコンと、集団に属さない通信端末100の現在位置の方向と距離とを表示させる(ステップS134、図2)。
より詳細には、図2に示すように、本実施の形態においては、通信端末100のCPU110は、全てのユーザの現在位置を地図上に表示するわけではない。サーバ200から通信端末100には、表示用位置データとして、集団に属する通信端末100の現在位置に関する情報と、集団に属さない通信端末100の現在位置に関する情報と、が区別可能な形式で送信されてくる。
そして、CPU110は、サーバ200からの表示用位置データに応じて、タッチパネル150に、集団に属するAAAさん・BBBさん・CCCさんの通信端末100の現在位置を地図上に表示するための表示用データを作成する。さらに、CPU110は、タッチパネル150に、集団の中心から集団に属さないDDDさんの現在位置への方向を示す矢印と、集団の中心から集団に属さないDDDさんの現在位置への距離とを表示するための表示用データも作成する。なお、CPU110は、集団に属さないDDDさんの通信端末100の現在位置に関する情報を表示しないものであってもよい。
本実施の形態においては、CPU110は、表示用位置データに基づいて、自身の通信端末100が自身の通信端末100が集団から離れたときや、自身の通信端末100が集団に復帰した場合に、スピーカを介して警告音を発したり、警告メッセージをタッチパネル150に表示させたりする。
本実施の形態においては、通信端末100のCPU110が、集団に属する少なくとも1つの通信端末100の現在位置とタッチパネル150や画面サイズに基づいて、地図の縮尺を決定する。しかしながら、サーバ200側で、集団に属する通信端末100の現在位置に基づいて地図の縮尺を決定し、集団に属する通信端末100の現在位置を示す情報と地図とを含む表示用データを作成しても良い。
<サーバ200のハードウェア構成>
次に、サーバ200のハードウェア構成の一態様について説明する。図9は、本実施の形態にかかるサーバ200のハードウェア構成を表わすブロック図である。
図9を参照して、サーバ200は、主たる構成要素として、CPU210と、メモリ220と、通信インターフェイス260とを含む。
CPU210は、メモリ220あるいは外部の記憶媒体に記憶されているプログラムを実行することによって、サーバ200の各部を制御する。すなわち、CPU210は、メモリ220に格納されているプログラムを実行することによって、各種の処理、たとえば後述する様々な処理を実行する。
メモリ220は、各種のRAM、各種のROM、フラッシュメモリーなどによって実現される。なお、メモリ220は、インターフェイスを介して利用される、USB(登録商標)メモリ、CD、DVD、メモリカード、ハードディスク、ICカード、光カード、マスクROM、EPROM、EEPROMなどの記憶媒体などによっても実現される。
メモリ220は、CPU210によって実行されるプログラムや、CPU210によるプログラムの実行により生成されたデータ、入出力部を介して入力されたデータ、複数の通信端末100から受信したデータ、後述する各種のデータベース、地図を表示するための地図データ、レースに使用されるコースの位置や形状を示すデータなどを記憶する。たとえば、本実施の形態にかかるメモリ220は、現在位置情報データベース221を記憶する。
図10は、本実施の形態にかかる現在位置情報データベース221を示すイメージ図である。図10を参照して、現在位置情報データベース221は、ユーザIDと、ニックネームと、ユーザIDに対応する通信端末100のアドレス、ユーザIDに対応する通信端末100の現在位置を示す情報と、通信端末100の現在の移動速度と、通信端末100が集団に属するか否かを示すフラグと、集団の中心または集団の端からの距離と、現在位置の集団からの方向と、の対応関係を格納する。なお、図10に示す現在位置情報データベース221が、チーム毎に作成されるものであってもよいし、サーバ200が別途、取得モードを起動中のユーザと取得先の通信端末100を特定するためのユーザIDとの対応関係を示すデータベースを記憶してもよい。
図9に戻って、通信インターフェイス260は、アンテナやコネクタによって実現される。通信インターフェイス260は、有線通信あるいは無線通信によって他の装置との間でデータをやり取りする。CPU210は、通信インターフェイス260を介して、通信端末100の位置データ、制御命令、画像データ、テキストデータなどを通信端末100などの他の装置から受信する。また、CPU210は、通信インターフェイス260を介して、チーム毎のユーザの現在位置を表示するためのデータ、その他のテキストデータ、その他の画像データなどを、複数の通信端末100などの他の装置に送信する。
<サーバ200における位置データ取得送信処理>
次に、本実施の形態にかかるサーバ200における位置データ送信処理について説明する。図11は、本実施の形態にかかるサーバ200における表示用位置データ送信処理を示すフローチャートである。
図11を参照して、サーバ200のCPU210は、通信インターフェイス260を介して、通信端末100からデータを受信すると以下の処理を実行する。受信したデータに現在位置を示すデータが含まれているか否かを判断する(ステップS152)。受信したデータに現在位置を示すデータが含まれている場合(ステップS152にてYESである場合)、CPU210は、受信データから通信端末100のユーザのIDを特定する(ステップS154)。CPU210は、位置データを位置情報データベース221に格納する(ステップS156)。CPU210は、通信インターフェイス260を介して、通信端末100からの次のデータを待ち受ける。
受信したデータに現在位置を示すデータが含まれていない場合(ステップS152にてNOである場合)、CPU210は、受信データに表示用位置データの要求が含まれているか否かを判断する(ステップS162)。受信データに表示用位置データの要求が含まれている場合(ステップS162にてYESである場合)、CPU210は、受信データから、現在位置のデータを取得したい通信端末100のユーザのIDを特定する(ステップS164)。
CPU210は、位置情報データベース221から少なくとも1つの通信端末100の位置データを読み出す(ステップS166)。CPU210は、チームに属するユーザの通信端末100の現在位置や速度に基づいて、通信端末100での表示用位置データを作成するための表示用位置データ作成処理(ステップS170)を実行する。なお、表示用位置データ作成処理については後述する。
CPU210は、通信インターフェイス260を介して、通信端末100に表示用位置データを送信する(ステップS190)。CPU210は、通信インターフェイス260を介して、通信端末100からの次のデータを待ち受ける。
通信端末100からの受信データに表示用位置データの要求が含まれていない場合(ステップS162にてNOである場合)、CPU210は、受信データから、他の命令や情報を取得して、各種の処理を実行する(ステップS192)。CPU210は、通信インターフェイス260を介して、通信端末100からの次のデータを待ち受ける。
<サーバ200における表示用データ作成処理>
次に、本実施の形態にかかるサーバ200における表示用位置データ作成処理について説明する。図12は、本実施の形態にかかる通信端末100における表示用位置データ作成処理を示すフローチャートである。
図12を参照して、まず、CPU210は、メモリ220の変数Nに位置情報を共有しているチームのユーザの人数を代入する(ステップS171)。CPU210は、メモリ220の変数nに1を代入する(ステップS172)。
CPU210は、現在位置情報データベース221を参照して、n番目以外のユーザの現在位置の中心(平均)を計算する(ステップS173)。CPU210は、現在位置情報データベース221を参照して、n番目以外のユーザの現在位置の中心とn番目のユーザの現在位置との距離を計算する(ステップS176)。
CPU210は、変数nをインクリメントする(ステップS177)。CPU210は、変数nがNより大きいか否かを判断する(ステップS178)。CPU210は、変数nがN以下である場合(ステップS178においてNOである場合)、ステップS173からの処理を繰り返す。
CPU210は、変数nがNよりも大きい場合(ステップS178においてYESである場合)、集団の中心からの距離が一番離れているユーザを特定する(ステップS179)。CPU210は、中心からの距離が一番離れているユーザの現在位置から中心までの距離が閾値を超えているか否かを判断する(ステップS180)。
CPU210は、中心からの距離が一番離れているユーザの現在位置から中心までの距離が閾値を超えている場合(ステップS180においてYESである場合)、現在位置情報データベース221の当該ユーザのフラグを「0」に設定する。なお、他の通信端末100のフラグは全て「1」となっている。CPU210は、集団に属しているユーザの位置データのグループと、集団から離れているユーザの位置データとを含む、表示用位置データを作成する(ステップS181)。なお、集団から離れているユーザの位置データには、当該ユーザの現在位置の情報に加えて、集団の中心から当該ユーザの現在位置への方向と距離とを含む。CPU210は、表示用位置データ作成処理S170を終了する。
CPU210は、集団の中心からの距離が一番離れているユーザの現在位置から中心までの距離が閾値を超えていない場合(ステップS180においてNOである場合)、すべのユーザが集団に属していると判断し、当該ユーザの位置データのグループを含む表示用位置データを作成する(ステップS182)。CPU210は、表示用位置データ作成処理S170を終了する。
これによって、図8のステップS130〜ステップS134に示すように、通信端末100側では、集団に属しているユーザの現在位置を地図上に表示させることができる。そして、通信端末100側では、集団に属していないユーザの現在位置の方向を示す矢印と距離とを表示させることができる。
このように、本実施の形態においては、集団に属するユーザの現在位置を第1の表示形態として画面中央部分に地図上に表示しつつ、集団に属さないユーザの方向と距離とを示す情報を第2の表示形態として画面端部に表示するため、集団に属するユーザの現在位置をユーザが把握しやすくなるとともに、集団に属さないユーザの現在位置も把握することが可能になる。
<補足>
本実施の形態においては、図2に示すように、集団に属するユーザの現在位置が画面の略中央部分に表示されるように、地図の縮尺を決定するものである。しかしながら、図13に示すように、集団に属するユーザの現在位置が画面の端まで表示されるように、地図の縮尺を決定しても良い。
<第2の実施の形態>
第1の実施の形態においては、図12に示したように、自分以外の通信端末100から構成される通信端末100のグループの中心から最も離れている通信端末100に関してのみ、当該中心からの距離が所定の閾値よりも遠いか否かを判断するものであった。しかしながら、本実施の形態においては、チームに属する全てのユーザに関して、当該中心からの距離が所定の閾値よりも遠いか否かを判断するものである。
なお、以下では、本実施の形態にかかるサーバ200における表示用位置データ作成処理についてのみ説明する。他の構成は、第1の実施の形態のそれらと同様であるため、ここでは説明を繰り返さない。図14は、本実施の形態にかかる通信端末100における表示用位置データ作成処理を示すフローチャートである。
図14を参照して、まず、CPU210は、メモリ220の変数Nに位置情報を共有しているチームのユーザの人数を代入する(ステップS271)。CPU210は、メモリ220の変数nに1を代入する(ステップS272)。
CPU210は、現在位置情報データベース221を参照して、n番目以外のユーザの現在位置の中心(平均)を計算する(ステップS273)。CPU210は、現在位置情報データベース221を参照して、n番目以外のユーザの現在位置の中心とn番目のユーザの現在位置との距離を計算する(ステップS276)。
CPU210は、変数nをインクリメントする(ステップS277)。CPU210は、変数nがNより大きいか否かを判断する(ステップS278)。CPU210は、変数nがN以下である場合(ステップS278においてNOである場合)、ステップS273からの処理を繰り返す。
CPU210は、変数nがNよりも大きい場合(ステップS278においてYESである場合)、自分以外の通信端末100のグループの現在位置の中心から自分までの距離が閾値を超えているユーザを特定する(ステップS280)。CPU210は、自分以外の通信端末100のグループの現在位置の中心から自分までの距離が閾値を超えているユーザの、現在位置情報データベース221のフラグを「0」に設定する。なお、他の通信端末100のフラグは全て「1」となっている。
CPU210は、中心からの距離が閾値を超えていない、すなわち集団に属しているユーザの位置データのグループと、中心からの距離が閾値を超えている、すなわち集団から離れているユーザの位置データとを含む、表示用位置データを作成する(ステップS281)。なお、集団から離れているユーザの位置データには、当該ユーザの現在位置の情報に加えて、集団の中心から当該ユーザの現在位置への方向と距離とを含む。CPU210は、表示用位置データ作成処理S170を終了する。
これによって、図8のステップS130〜ステップS134に示すように、通信端末100側では、集団に属しているユーザの現在位置を地図上に表示させることができる。そして、通信端末100側では、集団に属していないユーザの現在位置の方向を示す矢印と距離とを表示させることができる。
このように、本実施の形態においては、集団に属するユーザの現在位置を第1の表示形態として画面中央部分に地図上に表示しつつ、集団に属さないユーザの方向と距離とを示す情報を第2の表示形態として画面端部に表示するため、集団に属するユーザの現在位置をユーザが把握しやすくなるとともに、集団に属さないユーザの現在位置も把握することが可能になる。
<第3の実施の形態>
第1の実施の形態においては、図12に示したように、自分以外の通信端末100から構成される通信端末100のグループの中心からの距離が所定の閾値よりも遠いか否かを判断するものであった。しかしながら、本実施の形態においては、当該閾値を、自分以外の通信端末100から構成される通信端末100のグループの速度に応じて変化させるものである。
なお、以下では、本実施の形態にかかるサーバ200における表示用位置データ作成処理についてのみ説明する。他の構成は、第1の実施の形態のそれらと同様であるため、ここでは説明を繰り返さない。図15は、本実施の形態にかかる通信端末100における表示用位置データ作成処理を示すフローチャートである。
図15を参照して、まず、CPU210は、メモリ220の変数Nに位置情報を共有しているチームのユーザの人数を代入する(ステップS371)。CPU210は、メモリ220の変数nに1を代入する(ステップS372)。
CPU210は、現在位置情報データベース221を参照して、n番目以外のユーザの現在位置の中心(平均)を計算する(ステップS373)。CPU210は、現在位置情報データベース221を参照して、n番目以外のユーザの移動速度の平均値を計算する(ステップS374)。CPU210は、当該距離の平均値に応じて閾値を設定する(ステップS375)。なお、本実施の形態においては、閾値が、n番目以外のユーザの移動速度の平均値に正比例するものとする。ただし、n番目以外のユーザの移動速度の平均値が増加するにつれて、閾値が増加していけばよい。CPU210は、現在位置情報データベース221を参照して、n番目以外のユーザの現在位置の中心とn番目のユーザの現在位置との距離を計算する(ステップS376)。
CPU210は、変数nをインクリメントする(ステップS377)。CPU210は、変数nがNより大きいか否かを判断する(ステップS378)。CPU210は、変数nがN以下である場合(ステップS378においてNOである場合)、ステップS373からの処理を繰り返す。
CPU210は、変数nがNよりも大きい場合(ステップS378においてYESである場合)、自分以外の通信端末100のグループの現在位置の中心から自分までの距離が閾値を超えているユーザを特定する(ステップS380)。CPU210は、自分以外の通信端末100のグループの現在位置の中心から自分までの距離が閾値を超えているユーザの、現在位置情報データベース221のフラグを「0」に設定する。なお、他の通信端末100のフラグは全て「1」となっている。
CPU210は、中心からの距離が閾値を超えていない、すなわち集団に属しているユーザの位置データのグループと、中心からの距離が閾値を超えている、すなわち集団から離れているユーザの位置データとを含む、表示用位置データを作成する(ステップS381)。なお、集団から離れているユーザの位置データには、当該ユーザの現在位置の情報に加えて、集団の中心から当該ユーザの現在位置への方向と距離とを含む。CPU210は、表示用位置データ作成処理S170を終了する。
これによって、図8のステップS130〜ステップS134に示すように、通信端末100側では、集団に属しているユーザの現在位置を地図上に表示させることができる。そして、通信端末100側では、集団に属していないユーザの現在位置の方向を示す矢印と距離とを表示させることができる。
このように、本実施の形態においては、集団に属するユーザの現在位置を第1の表示形態として画面中央部分に地図上に表示しつつ、集団に属さないユーザの方向と距離とを示す情報を第2の表示形態として画面端部に表示するため、集団に属するユーザの現在位置をユーザが把握しやすくなるとともに、集団に属さないユーザの現在位置も把握することが可能になる。
<第4の実施の形態>
第3の実施の形態においては、図15に示したように、自分以外の通信端末100から構成される通信端末100のグループの中心からの距離が所定の閾値よりも遠いか否かを判断するものであった。そして特に、当該閾値を、自分以外の通信端末100から構成される通信端末100のグループの速度に応じて変化させるものである。しかしながら、本実施の形態においては、当該閾値を、自分以外の通信端末100から構成される通信端末100のグループの中心からの自分以外の通信端末100までの距離の標準偏差に応じて変化させるものである。
なお、以下では、本実施の形態にかかるサーバ200における表示用位置データ作成処理についてのみ説明する。他の構成は、第1の実施の形態のそれらと同様であるため、ここでは説明を繰り返さない。図16は、本実施の形態にかかる通信端末100における表示用位置データ作成処理を示すフローチャートである。
図16を参照して、まず、CPU210は、メモリ220の変数Nに位置情報を共有しているチームのユーザの人数を代入する(ステップS471)。CPU210は、メモリ220の変数nに1を代入する(ステップS472)。
CPU210は、現在位置情報データベース221を参照して、n番目以外のユーザの現在位置の中心(平均)を計算する(ステップS473)。CPU110は、現在位置情報データベース221を参照して、n番目以外のユーザの現在位置の中心(平均)からn番目以外のユーザの現在位置までの距離の標準偏差を計算する(ステップS474)。CPU110は、当該標準偏差に応じて閾値を設定する(ステップS475)。なお、本実施の形態においては、閾値が、距離の標準偏差に正比例するものとする。ただし、距離の標準偏差が増加するにつれて、閾値が増加していけばよい。CPU210は、現在位置情報データベース221を参照して、n番目以外のユーザの現在位置の中心とn番目のユーザの現在位置との距離を計算する(ステップS476)。
CPU210は、変数nをインクリメントする(ステップS477)。CPU210は、変数nがNより大きいか否かを判断する(ステップS478)。CPU210は、変数nがN以下である場合(ステップS478においてNOである場合)、ステップS473からの処理を繰り返す。
CPU210は、変数nがNよりも大きい場合(ステップS478においてYESである場合)、自分以外の通信端末100のグループの現在位置の中心から自分までの距離が閾値を超えているユーザを特定する(ステップS480)。CPU210は、自分以外の通信端末100のグループの現在位置の中心から自分までの距離が閾値を超えているユーザの、現在位置情報データベース221のフラグを「0」に設定する。なお、他の通信端末100のフラグは全て「1」となっている。
CPU210は、中心からの距離が閾値を超えていない、すなわち集団に属しているユーザの位置データのグループと、中心からの距離が閾値を超えている、すなわち集団から離れているユーザの位置データとを含む、表示用位置データを作成する(ステップS481)。なお、集団から離れているユーザの位置データには、当該ユーザの現在位置の情報に加えて、集団の中心から当該ユーザの現在位置への方向と距離とを含む。CPU210は、表示用位置データ作成処理S170を終了する。
これによって、図8のステップS130〜ステップS134に示すように、通信端末100側では、集団に属しているユーザの現在位置を地図上に表示させることができる。そして、通信端末100側では、集団に属していないユーザの現在位置の方向を示す矢印と距離とを表示させることができる。
このように、本実施の形態においては、集団に属するユーザの現在位置を第1の表示形態として画面中央部分に地図上に表示しつつ、集団に属さないユーザの方向と距離とを示す情報を第2の表示形態として画面端部に表示するため、集団に属するユーザの現在位置をユーザが把握しやすくなるとともに、集団に属さないユーザの現在位置も把握することが可能になる。
<第5の実施の形態>
第1の実施の形態においては、図12に示したように、自分以外の通信端末100から構成される通信端末100のグループの中心からの距離が所定の閾値よりも遠いか否かを判断するものであった。しかしながら、本実施の形態においては、自分以外の通信端末100から構成される通信端末100のグループの速度の平均値からの自分の通信端末100の速度差が所定の閾値よりも大きいか否かを判断するものである。
なお、以下では、本実施の形態にかかるサーバ200における表示用位置データ作成処理についてのみ説明する。他の構成は、第1の実施の形態のそれらと同様であるため、ここでは説明を繰り返さない。図17は、本実施の形態にかかる通信端末100における表示用位置データ作成処理を示すフローチャートである。
図17を参照して、まず、CPU210は、メモリ220の変数Nに位置情報を共有しているチームのユーザの人数を代入する(ステップS571)。CPU210は、メモリ220の変数nに1を代入する(ステップS572)。
CPU210は、現在位置情報データベース221を参照して、n番目以外のユーザの移動速度の平均値を計算する(ステップS573)。CPU110は、現在位置情報データベース221を参照して、n番目以外のユーザの移動速度の平均値からn番目のユーザの移動速度との速度差を計算する(ステップS576)。
CPU210は、変数nをインクリメントする(ステップS577)。CPU210は、変数nがNより大きいか否かを判断する(ステップS578)。CPU210は、変数nがN以下である場合(ステップS578においてNOである場合)、ステップS573からの処理を繰り返す。
CPU210は、変数nがNよりも大きい場合(ステップS578においてYESである場合)、速度の平均値からの速度差が一番大きいユーザを特定する(ステップS579)。CPU210は、速度の平均値からの速度差が一番大きいユーザの当該速度差が閾値を超えているか否かを判断する(ステップS580)。
CPU210は、速度の平均値からの速度差が一番大きいユーザの当該速度差が閾値を超えている場合(ステップS580においてYESである場合)、現在位置情報データベース221のフラグを「0」に設定する。なお、他の通信端末100のフラグは全て「1」となっている。CPU210は、速度が近い集団に属しているユーザの位置データのグループと、速度の平均値からの速度差が一番大きいユーザの位置データとを含む、表示用位置データを作成する(ステップS581)。なお、集団から離れているユーザの位置データには、当該ユーザの現在位置の情報に加えて、集団の中心から当該ユーザの現在位置への方向と距離とを含む。CPU210は、表示用位置データ作成処理S170を終了する。
CPU210は、速度の平均値からの速度差が一番大きいユーザの当該速度差が閾値を超えていない場合(ステップS580においてNOである場合)、すべのユーザが集団に属していると判断し、当該ユーザの位置データのグループを含む表示用位置データを作成する(ステップS582)。CPU210は、表示用位置データ作成処理S170を終了する。
これによって、図8のステップS130〜ステップS134に示すように、通信端末100側では、集団に属しているユーザの現在位置を地図上に表示させることができる。そして、通信端末100側では、集団に属していないユーザの現在位置の方向を示す矢印と距離とを表示させることができる。
このように、本実施の形態においては、集団に属するユーザの現在位置を第1の表示形態として画面中央部分に地図上に表示しつつ、集団に属さないユーザの方向と距離とを示す情報を第2の表示形態として画面端部に表示するため、集団に属するユーザの現在位置をユーザが把握しやすくなるとともに、集団に属さないユーザの現在位置も把握することが可能になる。
なお、本実施の形態に関しても、図14に示すように、チームに属する全てのユーザに関して、移動速度の平均値からの速度差が所定の閾値よりも大きいか否かを判断してもよい。さらに、図15に示すように、閾値を、自分以外の通信端末100から構成される通信端末100のグループの速度に応じて変化させてもよい。さらに、図16に示すように、閾値を、自分以外の通信端末100から構成される通信端末100のグループの速度の平均値からの自分以外の通信端末100の速度までの速度差の標準偏差に応じて変化させてもよい。
なお、本実施の形態の判断基準と他の実施の形態の判断基準と、複数の判断基準に基づいて集団に属するか否かを判断してもよい。たとえば、複数の判断基準(and条件)で集団に属すと判断された場合に集団に属すと判断してもよいし、いずれかの判断基準(or条件)で集団に属すと判断された場合に集団に属すと判断してもよい。
<第6の実施の形態>
第1の実施の形態においては、図12に示したように、自分以外の通信端末100から構成される通信端末100のグループの中心からの距離が所定の閾値よりも遠いか否かを判断するものであった。しかしながら、本実施の形態においては、自分以外の通信端末100から構成される通信端末100のグループの移動方向の平均値からの自分の通信端末100の移動方向の角度差が所定の閾値よりも大きいか否かを判断するものである。
なお、以下では、本実施の形態にかかるサーバ200における表示用位置データ作成処理についてのみ説明する。他の構成は、第1の実施の形態のそれらと同様であるため、ここでは説明を繰り返さない。図18は、本実施の形態にかかる通信端末100における表示用位置データ作成処理を示すフローチャートである。
図18を参照して、まず、CPU210は、メモリ220の変数Nに位置情報を共有しているチームのユーザの人数を代入する(ステップS671)。CPU210は、メモリ220の変数nに1を代入する(ステップS672)。
CPU210は、現在位置情報データベース221を参照して、n番目以外のユーザの移動方向の中央を計算する(ステップS673)。CPU110は、現在位置情報データベース221を参照して、n番目以外のユーザの移動方法の中央からn番目のユーザの移動方法との角度差を計算する(ステップS676)。
CPU210は、変数nをインクリメントする(ステップS677)。CPU210は、変数nがNより大きいか否かを判断する(ステップS678)。CPU210は、変数nがN以下である場合(ステップS678においてNOである場合)、ステップS673からの処理を繰り返す。
CPU210は、変数nがNよりも大きい場合(ステップS678においてYESである場合)、移動方向の平均からの角度差が一番大きいユーザを特定する(ステップS679)。CPU210は、移動方向の平均(中央)からの角度差が一番大きいユーザの当該角度差が閾値を超えているか否かを判断する(ステップS680)。
CPU210は、移動方向の平均からの角度差が一番大きいユーザの当該角度差が閾値を超えている場合(ステップS680においてYESである場合)、現在位置情報データベース221のフラグを「0」に設定する。なお、他の通信端末100のフラグは全て「1」となっている。CPU210は、移動方向が近い集団に属しているユーザの位置データのグループと、移動方向の平均からの角度差が一番大きいユーザの位置データとを含む、表示用位置データを作成する(ステップS681)。なお、集団から離れているユーザの位置データには、当該ユーザの現在位置の情報に加えて、集団の中心から当該ユーザの現在位置への方向と距離とを含む。CPU210は、表示用位置データ作成処理S170を終了する。
CPU210は、移動方向の平均からの角度差が一番大きいユーザの当該角度差が閾値を超えていない場合(ステップS680においてNOである場合)、すべのユーザが集団に属していると判断し、当該ユーザの位置データのグループを含む表示用位置データを作成する(ステップS682)。CPU210は、表示用位置データ作成処理S170を終了する。
これによって、図8のステップS130〜ステップS134に示すように、通信端末100側では、集団に属しているユーザの現在位置を地図上に表示させることができる。そして、通信端末100側では、集団に属していないユーザの現在位置の方向を示す矢印と距離とを表示させることができる。
このように、本実施の形態においては、集団に属するユーザの現在位置を第1の表示形態として画面中央部分に地図上に表示しつつ、集団に属さないユーザの方向と距離とを示す情報を第2の表示形態として画面端部に表示するため、集団に属するユーザの現在位置をユーザが把握しやすくなるとともに、集団に属さないユーザの現在位置も把握することが可能になる。
なお、本実施の形態に関しても、図14に示すように、チームに属する全てのユーザに関して、移動方向の平均からの角度差が所定の閾値よりも大きいか否かを判断してもよい。さらに、図15に示すように、閾値を、自分以外の通信端末100から構成される通信端末100のグループの速度に応じて変化させてもよい。なおこの場合は、速度が増加するにつれて、閾値を減少させることも有効である。さらに、図16に示すように、閾値を、自分以外の通信端末100から構成される通信端末100のグループの移動方向の平均値からの自分以外の通信端末100の移動方向までの角度差の標準偏差に応じて変化させてもよい。
なお、本実施の形態の判断基準と他の実施の形態の判断基準と、複数の判断基準に基づいて集団に属するか否かを判断してもよい。たとえば、複数の判断基準で集団に属すと判断された場合に集団に属すと判断してもよいし、いずれかの判断基準で集団に属すと判断された場合に集団に属すと判断してもよい。
<第7の実施の形態>
第1の実施の形態においては、図12に示したように、自分以外の通信端末100から構成される通信端末100のグループの中心からの距離が所定の閾値よりも遠いか否かを判断するものであった。しかしながら、本実施の形態においては、自分以外の通信端末100から構成される通信端末100のグループのGPS精度の平均値からの自分の通信端末100のGPS精度の差が所定の閾値よりも大きいか否かを判断するものである。ただし、自分以外の通信端末100から構成される通信端末100のグループのGPS精度の平均値を考慮せずに、単にGPS精度の低い通信端末100を集団から外れたものとみなしてもよい。
なお、以下では、本実施の形態にかかるサーバ200における表示用位置データ作成処理についてのみ説明する。他の構成は、第1の実施の形態のそれらと同様であるため、ここでは説明を繰り返さない。図19は、本実施の形態にかかる通信端末100における表示用位置データ作成処理を示すフローチャートである。
図19を参照して、まず、CPU210は、メモリ220の変数Nに位置情報を共有しているチームのユーザの人数を代入する(ステップS771)。CPU210は、メモリ220の変数nに1を代入する(ステップS772)。
CPU210は、現在位置情報データベース221を参照して、n番目以外のユーザの通信端末100のGPS精度の平均を計算する(ステップS773)。CPU110は、現在位置情報データベース221を参照して、n番目以外のユーザの通信端末100のGPS精度の平均からn番目のユーザの通信端末100のGPS精度との差を計算する(ステップS776)。
CPU210は、変数nをインクリメントする(ステップS777)。CPU210は、変数nがNより大きいか否かを判断する(ステップS778)。CPU210は、変数nがN以下である場合(ステップS778においてNOである場合)、ステップS773からの処理を繰り返す。
CPU210は、変数nがNよりも大きい場合(ステップS778においてYESである場合)、GPS精度の平均からの差が一番大きいGPS精度の通信端末100のユーザを特定する(ステップS779)。CPU210は、GPS精度の平均からの差が一番大きいユーザの当該差が閾値を超えているか否かを判断する(ステップS780)。
CPU210は、GPS精度の平均からの差が閾値を超えている場合(ステップS780においてYESである場合)、現在位置情報データベース221のフラグを「0」に設定する。なお、他の通信端末100のフラグは全て「1」となっている。CPU210は、GPS精度が近い集団に属しているユーザの位置データのグループと、GPS精度の平均からの差が一番大きいユーザの位置データとを含む、表示用位置データを作成する(ステップS781)。なお、集団から離れているユーザの位置データには、当該ユーザの現在位置の情報に加えて、集団の中心から当該ユーザの現在位置への方向と距離とを含む。CPU210は、表示用位置データ作成処理S170を終了する。
CPU210は、GPS精度の平均からの差が一番大きいユーザの当該差が閾値を超えていない場合(ステップS780においてNOである場合)、すべのユーザが集団に属していると判断し、当該ユーザの位置データのグループを含む表示用位置データを作成する(ステップS782)。CPU210は、表示用位置データ作成処理S170を終了する。
これによって、図8のステップS130〜ステップS134に示すように、通信端末100側では、集団に属しているユーザの現在位置を地図上に表示させることができる。そして、通信端末100側では、集団に属していないユーザの現在位置の方向を示す矢印と距離とを表示させることができる。
このように、本実施の形態においては、集団に属するユーザの現在位置を第1の表示形態として画面中央部分に地図上に表示しつつ、集団に属さないユーザの方向と距離とを示す情報を第2の表示形態として画面端部に表示するため、集団に属するユーザの現在位置をユーザが把握しやすくなるとともに、集団に属さないユーザの現在位置も把握することが可能になる。
なお、本実施の形態に関しても、図14に示すように、チームに属する全てのユーザに関して、GPS精度の平均からの差が所定の閾値よりも大きいか否かを判断してもよい。さらに、図15に示すように、閾値を、自分以外の通信端末100から構成される通信端末100のグループの速度に応じて変化させてもよい。なおこの場合は、速度が増加するにつれて、閾値を減少させることも有効である。さらに、図16に示すように、閾値を、自分以外の通信端末100から構成される通信端末100のグループのGPS精度の平均からの自分以外の通信端末100のGPS精度までの差の標準偏差に応じて変化させてもよい。
なお、本実施の形態の判断基準と他の実施の形態の判断基準と、複数の判断基準に基づいて集団に属するか否かを判断してもよい。たとえば、複数の判断基準で集団に属すと判断された場合に集団に属すと判断してもよいし、いずれかの判断基準で集団に属すと判断された場合に集団に属すと判断してもよい。
<第8の実施の形態>
第1〜第7の実施の形態においては、第2の表示形態として、集団に属さないユーザの現在位置の方向と距離とを表示するものであった。本実施の形態においては、第2の表示形態として、集団に属さないユーザの状況を画面端部の別の地図上に表示するものである。
なお、以下では、本実施の形態にかかる通信端末100での表示画面と通信端末100における位置データ取得表示処理とサーバ200における表示用位置データ作成処理の一部について説明するものとし、他の構成は第1から第7の実施の形態のそれらと同様であるため、ここでは説明を繰り返さない。なお、図20は、本実施の形態にかかる通信端末100における第1の表示画面を示すイメージ図である。図21は、本実施の形態にかかる通信端末100における第2の表示画面を示すイメージ図である。
まず、図12を参照して、CPU210は、集団に属しているユーザの位置データのグループと、集団から離れているユーザの位置データとを含む、表示用位置データを作成する(ステップS181)。集団から離れているユーザの位置データには、当該ユーザの現在位置が含まれる。
これによって、図8、図20、図21に示すように、通信端末100のCPU110は、サーバ200からの表示位置データに基づいて、タッチパネル150に、中央部分の地図上に、集団に属しているユーザの現在位置を示す情報を表示させる。そして、CPU110は、集団に属していないユーザの現在位置を示す情報として、画面のうちの、集団に属していないユーザがいる方向に別の地図と当該ユーザの現在位置とをタッチパネル150に表示させる。より詳細には、集団の南西方向にユーザがいる場合には、図20に示すように、CPU110は、タッチパネル150の画面の左下部に地図と現在位置を示すアイコンとをタッチパネル150に表示させる。集団の南東方向にユーザがいる場合には、図21に示すように、CPU110は、タッチパネル150の画面の右下部に地図と現在位置を示すアイコンとをタッチパネル150に表示させる。
このように、本実施の形態においては、集団に属するユーザの現在位置を第1の表示形態として画面中央部分に地図上に表示しつつ、集団に属さないユーザの現在位置を第2の表示形態としては画面端部の地図上に表示するため、集団に属するユーザの現在位置をユーザが把握しやすくなるとともに、集団に属さないユーザの現在位置も把握することが可能になる。
<第9の実施の形態>
第8の実施の形態においては、図20および図21に示したように、集団に属さないユーザの方向と距離とを示す情報を第2の表示形態として画面端部に表示するものであった。しかしながら、本実施の形態においては、集団に属さない通信端末100のユーザの現在位置に関する情報と、当該ユーザの置かれている状況とを画面端部に表示させるものである。
なお、以下では、本実施の形態にかかる通信端末100での表示画面と通信端末100における位置データ取得表示処理とサーバ200におけるデータベースと表示用位置データ作成処理の一部について説明するものとし、他の構成は第1から第8の実施の形態のそれらと同様であるため、ここでは説明を繰り返さない。なお、図22は、本実施の形態にかかる通信端末100における第1の表示画面を示すイメージ図である。図23は、本実施の形態にかかる通信端末100における第2の表示画面を示すイメージ図である。
まず、図12を参照して、CPU210は、集団に属しているユーザの位置データのグループと、集団から離れているユーザの位置データとを含む、表示用位置データを作成する(ステップS181)。なお、集団から離れているユーザの位置データには、当該ユーザの現在位置の情報と、集団の中心から当該ユーザの現在位置への方向と距離と、当該ユーザの予想される状況も含む。
これによって、図20、図22、図23に示すように、通信端末100のCPU110は、サーバ200からの表示位置データに基づいて、タッチパネル150に、中央部分の地図上に、集団に属しているユーザの現在位置を示す情報を表示させる。そして、CPU110は、集団に属していないユーザの情報として、集団に属していないユーザがいる方向にユーザの状況をタッチパネル150に表示させる。
たとえば、集団の南西方向にユーザがいる場合に、ユーザが休憩していると判断されたときは、図22に示すように、通信端末100の画面の左下に、ユーザの名称と休憩の可能性が高い旨を示す情報とが表示される。あるいは、ユーザに怪我などのトラブルが発生していると判断されたときは、図23に示すように、通信端末100の画面の左下に、ユーザの名称とトラブルが発生している可能性が高い旨を示す情報とが表示される。それ以外のときは、図2に示すように、通信端末100の画面の左下に、ユーザの名称と距離とが高い旨を示す情報とが表示される。
より詳細には、本実施の形態においては、サーバ200のメモリ220または他のデータベースが、現在位置情報データベース222と施設データベース223とを記憶する。なお、図24は、本実施の形態にかかる現在位置情報データベース222のデータ構造を示すイメージ図である。図25は、本実施の形態にかかる施設データベース223のデータ構造を示すイメージ図である。
図24を参照して、本実施の形態にかかる現在位置情報データベース222は、ユーザIDと、ニックネームと、ユーザIDに対応する通信端末100のアドレス、ユーザIDに対応する通信端末100の現在位置を示す情報と、通信端末100の現在の移動速度と、通信端末100が集団に属するか否かを示すフラグと、集団の中心または集団の端からの距離と、現在位置の集団からの方向と、現在位置情報の発信時刻と、GPS強度と、の対応関係を格納する。なお、図24に示す現在位置情報データベース221が、チーム毎に作成されるものであってもよいし、サーバ200が別途、取得モードを起動中のユーザと取得先の通信端末100を特定するためのユーザIDとの対応関係を示すデータベースを記憶してもよい。
図25を参照して、本実施の形態にかかる施設データベース223は、施設、たとえばコンビニやスーパーなどの店舗やトイレや展望台などの施設毎に、施設IDと、緯度と、経度と、の対応関係を格納する。
そして、本実施の形態においては、サーバ200のCPU210は、図12のステップS181、図14のステップS281、図15のステップS381、図16のステップS481、図17のステップS581、図18のステップS681、図19のステップS781において、集団に属さないユーザに関して以下の状況判断処理を実行する。図26は、本実施の形態にかかる状況判断処理の流れを示すフローチャートである。
図26を参照して、CPU210は、現在位置情報データベース222を参照して、集団に属さないユーザが停止しているか否かを判断する(ステップS902)。たとえば、CPU210は、5分以上現在位置が変化していない場合に、ユーザが停止していると判断する。
集団に属さないユーザが停止していないと判断した場合は(ステップS902にてNOの場合)、CPU210は、状況判断処理を終了して、表示用位置データ作成処理に戻る。この場合は、図2に示すように、通信端末100のCPU110は、タッチパネル150に、集団に属さないユーザの現在位置の方向とともに、ユーザの現在位置までの距離を表示させる。サーバ200のCPU210は、状況判断処理を終了して、表示用位置データ作成処理に戻る。
集団に属さないユーザが停止している場合(ステップS902にてYESである場合)、CPU210は、施設データベース223を参照して、ユーザの近傍、たとえば10mm以内に施設があるか否かを判断する(ステップS904)。ユーザの近傍に施設がない場合(ステップS904にてNOの場合)、CPU210は、ユーザにトラブルが発生している可能性が高い旨の情報を、集団に属さないユーザに関する情報に含める(ステップS906)。
サーバ200は、図11のステップS190において、集団に属さないユーザの現在位置を示す情報とともに、ユーザがトラブルに会っている可能性が高い旨の情報を、通信端末100に提供する。これによって、図23に示すように、通信端末100のCPU110は、タッチパネル150に、集団に属さないユーザの現在位置の方向とともに、トラブルが発生している可能性が高い旨の情報を表示させることができる。サーバ200のCPU210は、状況判断処理を終了して、表示用位置データ作成処理に戻る。
ユーザの近傍に施設がある場合(ステップS904にてYESである場合)、CPU210は、現在位置情報データベース222を参照して、通信端末100のGPS強度が閾値未満であるか否かを判断する(ステップS908)。通信端末100のGPS強度が閾値以上である場合(ステップS908にてNOの場合)、CPU210は、ユーザにトラブルが発生している可能性が高い旨の情報を、集団に属さないユーザに関する情報に含める(ステップS910)。
サーバ200は、図11のステップS190において、集団に属さないユーザの現在位置を示す情報とともに、ユーザがトラブルに会っている可能性が高い旨の情報を、通信端末100に提供する。これによって、図23に示すように、通信端末100のCPU110は、タッチパネル150に、集団に属さないユーザの現在位置の方向とともに、トラブルが発生している可能性が高い旨の情報を表示させる。サーバ200のCPU210は、状況判断処理を終了して、表示用位置データ作成処理に戻る。
通信端末100のGPS強度が閾値未満である場合(ステップS908にてYESである場合)、CPU210は、ユーザが休憩している可能性が高い旨の情報を、集団に属さないユーザに関する情報に含める(ステップS912)。
サーバ200は、図11のステップS190において、集団に属さないユーザの現在位置を示す情報とともに、ユーザが休憩している可能性が高い旨の情報を、通信端末100に提供する。これによって、図22に示すように、通信端末100のCPU110は、タッチパネル150に、集団に属さないユーザの現在位置の方向とともに、ユーザが休憩している可能性が高い旨の情報を表示させることができる。サーバ200のCPU210は、状況判断処理を終了して、表示用位置データ作成処理に戻る。
これによって、同じチームのユーザが、仲間が集団を離脱した際に、仲間の状況を把握し易くなる。
<第10の実施の形態>
第9の実施の形態においては、図22および図23に示したように、集団に属さない通信端末100のユーザの状況をサーバが予想して通信端末100の画面端部に表示させるものであった。本実施の形態においては、さらに、集団に属さない通信端末100がユーザの状況の入力を受け付けて、当該確定された状況を他の通信端末100の画面端部に表示させるものである。
なお、以下では、本実施の形態にかかる通信端末100での表示画面と通信端末100における位置データ取得表示処理とサーバ200におけるデータベースと表示用位置データ作成処理の一部について説明するものとし、他の構成は第9の実施の形態のそれらと同様であるため、ここでは説明を繰り返さない。なお、図27は、本実施の形態にかかる発信モード中の通信端末100における表示画面の推移の例を示すイメージ図である。図28は、本実施の形態にかかる取得モード中の通信端末100における表示画面の推移の例を示すイメージ図である。図29は、本実施の形態にかかるサーバ200のメモリ220の現在位置情報データベース224のデータ構造を示すイメージ図である。
本実施の形態においては、図27の(a)から図27の(b)に示すように、ユーザが通信端末100を介して自分の状況をサーバ200にアップロードすることによって、図28の(a)から図28の(b)に示すように、他の通信端末100では、状況の予想に関する情報の表示が確定された状況の情報の表示に切り替わる。
より詳細には、本実施の形態においては、図29に示すように、本実施の形態にかかる現在位置情報データベース224は、ユーザIDと、ニックネームと、ユーザIDに対応する通信端末100のアドレス、ユーザIDに対応する通信端末100の現在位置を示す情報と、通信端末100の現在の移動速度と、通信端末100が集団に属するか否かを示すフラグと、集団の中心または集団の端からの距離と、現在位置の集団からの方向と、現在位置情報の発信時刻と、GPS強度と、集団から外れた原因と、の対応関係を格納する。なお、図29に示す現在位置情報データベース224は、チーム毎に作成されるものであってもよいし、サーバ200が別途、取得モードを起動中のユーザと取得先の通信端末100を特定するためのユーザIDとの対応関係を示すデータベースを記憶してもよい。
そして、集団に属さなくなったユーザの通信端末100のCPU110は、図8のステップS130においてサーバ200から受信した表示用位置データに基づいて、自身が集団に属さなくなったことを認識する。このとき、既に、サーバ200は、図26に示す状況判断処理を実行しており、他の通信端末100は図28の(a)に示すような状況の予想結果を示す情報を表示している。
集団から離れた通信端末100のCPU110は、図27の(a)に示すように、タッチパネル150を介して、状況を他のユーザに通知するか否かの命令を受け付ける。CPU110は、通知する旨の命令を受け付けた場合は、図27の(b)に示すように、たとえば、「休憩」「パンク」「怪我」などの状況の選択を受け付ける。CPU110は、通信インターフェイス160を介して、受け付けた状況をサーバ200に送信する。
これによって、サーバ200のCPU210は、現在位置情報データベース224を更新する。サーバ200のCPU210は、図12に示すように、集団に属しているユーザの位置データのグループと、集団から離れているユーザの位置データとを含む、表示用位置データを作成する(ステップS181)。なお、集団から離れているユーザの位置データには、集団の中心から当該ユーザの現在位置への方向と距離だけでなく、当該ユーザの確定した状況も含む。
これによって、図28(b)に示すように、通信端末100のCPU110は、サーバ200からの表示位置データに基づいて、タッチパネル150に、中央部分に、集団に属しているユーザの現在位置を示す情報を表示させる。そして、CPU110は、集団に属していないユーザの情報として、集団に属していないユーザがいる方向にユーザの確定した状況をタッチパネル150に表示させる。
なお、通信端末100のCPU110は、通知しない旨の命令を受け付けた場合は、図27の(c)の画面に戻る。なお、本実施の形態においては、集団を離れた通信端末100は、自身の現在位置を地図上に表示するものである。この場合も、サーバ200のCPU210は、図12に示すように、集団に属しているユーザの位置データのグループと、集団から離れているユーザの位置データとを含む、表示用位置データを作成する(ステップS181)。ただし、この場合は、集団から離れているユーザの位置データは、集団の中心から当該ユーザの現在位置への方向と距離と、当該ユーザの状況の予想とを含む。
そして、図28(a)に示すように、通信端末100のCPU110は、サーバ200からの表示位置データに基づいて、タッチパネル150に、中央部分に、集団に属しているユーザの現在位置を示す情報を表示させる。そして、CPU110は、集団に属していないユーザの情報として、集団に属していないユーザがいる方向にユーザの状況の予想を引き続きタッチパネル150に表示させる。
これによって、同じチームのユーザが、仲間が集団を離脱した際に、仲間の状況を把握し易くなる。
<第11の実施の形態>
第9および第10の実施の形態においては、サーバ200が、ユーザの状況を判断するものであった。しかしながら、サーバ200が、状況の判断に必要な情報、たとえば停止時間に関する情報、近傍に位置する施設の現在位置に関する情報、GPS強度に関する情報など、を通信端末100に送信してもよい。そして、通信端末100のCPU110が、集団を外れた他のユーザの状況を判断し、判断結果をタッチパネル150に表示させるものであってもよい。
<第12の実施の形態>
また、第9および第10の実施の形態においては、サーバ200が、ユーザの状況を判断するものであった。しかしながら、サーバ200が、状況の判断に必要な情報、たとえば停止時間に関する情報、施設の現在位置に関する情報、GPS強度に関する情報など、を通信端末100に送信してもよい。そして、通信端末100のCPU110は、状況の判断に必要な情報自体、たとえば停止時間に関する情報、近傍に位置する施設に関する情報、GPS強度に関する情報など、をタッチパネル150に表示させるものであってもよい。これよって、状況の判断に必要な情報からユーザが、集団を外れた他のユーザの状況を判断することができる。
なお、通信端末100のCPU110は、集団を外れた他のユーザの状況も判断し、当該判断結果も合わせてタッチパネル150に表示させてもよい。
<その他の応用例>
本発明は、システム或いは装置にプログラムを供給することによって達成される場合にも適用できることはいうまでもない。そして、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記憶媒体(あるいはメモリ)を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の効果を享受することが可能となる。
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わる他の記憶媒体に書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。