以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
<第1の実施の形態>
<ネットワークシステムの全体構成>
まず、本実施の形態にかかるネットワークシステム1の全体構成と動作概要とについて説明する。図1は、本実施の形態にかかるネットワークシステム1の全体構成を示すイメージ図である。
図1を参照して、ネットワークシステム1の全体構成について簡単に説明する。ネットワークシステム1は、主に、複数の通信端末100と、サーバ200を含む。複数の通信端末100は、スマートフォン、タブレット、ノートパソコン、カーナビなどの通信機能を有する装置である。サーバ200は、複数の通信端末100のそれぞれとデータ通信することができる。
そして、本実施の形態においては、複数の通信端末100のうちの少なくとも2台(図1における100A,100Bなど)は、衛星測位システムGNSS(Global Navigation Satellite System)などの位置取得機能を利用することによって自身の現在位置を取得することができる。そのような通信端末100は、自分の現在位置をサーバ200に送信することができる。
また、複数の通信端末100は、ディスプレイを利用して文字や画像を表示することができる。そのような通信端末100は、サーバ200からのデータに基づいて、上記の位置取得機能を有する通信端末100の位置を表示することができる。
<ネットワークシステムの動作概要>
次に、本実施の形態にかかるネットワークシステム1の動作概要について説明する。図2は、本実施の形態にかかるネットワークシステム1の動作概要を示すイメージ図である。なお、以下では、複数の通信端末100のユーザが、互いに、自転車レースなどのチームのメンバーである場合について説明する。ただし、複数の通信端末100のユーザは、日常生活を送っている家族であってもよいし、大型商業施設に買い物に来ているグループでも良いし、遊園地などに遊びに来ているグループであってもよい。
まず、予め、各チームに属する複数のメンバーは、各々がサーバ200から自分の通信端末100に位置取得用のアプリケーションプログラムをダウンロードする(図2のステップS002)。ただし、位置取得用のアプリケーションプログラムは、サーバ200以外のサーバから供給されるものであってもよい。
なお、以下では、位置取得用のアプリケーションプログラムは、短縮して位置取得プログラムともいう。また、位置取得用のアプリケーションプログラムは、短縮して位置取得アプリともいう。そして、各メンバーは、位置取得プログラムを起動させる(図2のステップS004)。また、各メンバーは、利用規約を確認する(図2のステップS006)。
そして、レースの開始前に、あるいはメンバーが別行動をする際に、各メンバーは、他のメンバーの通信端末100または自分の通信端末100に位置情報を発信する発信モードか、他のメンバーの通信端末100または自分の通信端末100から位置情報を取得して表示する取得モードか、を選択する(図2のステップS008)。
メンバーがステップS008にて発信モードを選択した場合、通信端末100の位置取得プログラムは、メンバーからニックネームの入力を受け付ける(図2のステップS010)。位置取得プログラムは、メンバーからユーザIDの取得命令を受け付けて、サーバ200にユーザIDを要求する。位置取得プログラムは、サーバ200からユーザIDを取得して、当該ユーザIDをディスプレイに表示させる。
ここで、位置取得プログラムは、ユーザIDを他の通信端末100に伝える命令も受け付ける。たとえば、位置取得プログラムは、ユーザからの当該命令を受け付けて、メール送受信プログラムを立ち上げる。位置取得プログラムは、ユーザから指定された他のメンバーの通信端末100に、取得したユーザIDを送信する(ステップS012)。
そして、位置取得プログラムは、位置取得および位置データ送信を開始するための命令を待ち受ける。たとえば、レースの開始直前などに、位置取得プログラムは、当該開始命令を受け付ける。位置取得プログラムは、位置取得機能を利用して、通信端末100の現在位置を取得し始める。位置取得プログラムは、当該現在位置をサーバを介して他のメンバーの通信端末100に送信し始める(図2のステップS014)。
一方、メンバーがステップS008にて取得(表示)モードを選択した場合、通信端末100の位置取得プログラムは、メンバーから現在位置を取得したい通信端末100のユーザIDの入力を受け付ける(図2のステップS016)。なお、位置取得プログラムは、電子メールを利用してユーザIDを取得してもよい。位置取得プログラムは、他の通信端末100の現在位置情報を受信すると、地図上に当該他の通信端末100の現在位置を表示する(図2のステップS018)。なお、位置取得プログラムは、各種のイベントに関する情報も表示させる。
なお、第10の実施の形態として後述するように、メンバーはステップS008にてスタッフモードを選択できてもよい(図2のステップS020)。この場合は、通信端末100の位置取得プログラムは、メンバーからスタッフIDの入力を受け付ける。そして、位置取得プログラムは、位置取得を開始するための命令を待ち受ける。レースの開始直前などに、位置取得プログラムは、当該開始命令を受け付ける。位置取得プログラムは、位置取得機能を利用して、通信端末100の現在位置を取得し始める。位置取得プログラムは、当該現在位置をサーバに送信する。これによって、運営者はブラウザなどを介してスタッフの現在位置を確認することができる。
なお、本実施の形態にかかる位置取得プログラムは、発信モードと取得モードとを同時に実行させることもできる。たとえば、通信端末100は、発信モードとして自分の位置情報を発信しながら、取得モードとしてサーバ200から受信した他の通信端末100または自身の通信端末100の現在位置を取得して地図上に表示することができる。
このように、本実施の形態にかかる位置取得プログラムは、発信モードと取得モードとを有しているため、自分の位置情報を送信する場合と他人の位置情報を取得する場合におけるプラットフォームを共通にすることができる。その結果、ユーザの利便性および/またはサービス側の利便性を向上させることができる。以下では、このような機能を実現するためのネットワークシステム1について詳細に説明する。
<通信端末100のハードウェア構成>
まず、通信端末100のハードウェア構成の一態様について説明する。図3は、本実施の形態にかかる通信端末100のハードウェア構成を表わすブロック図である。
図3を参照して、通信端末100は、主たる構成要素として、CPU110と、メモリ120と、タッチパネル150(ディスプレイ130とポインティングデバイス140)と、通信インターフェイス160と、位置取得部170とを含む。
CPU110は、メモリ120あるいは外部の記憶媒体に記憶されているプログラムを実行することによって、通信端末100の各部を制御する。すなわち、CPU110は、メモリ120に格納されているプログラムを実行することによって、各種の処理、たとえば図4、図6などに記載の各ステップを実行する。
メモリ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は、外部の衛星と信号をやり取りする。CPU110は、位置取得部170が取得した信号に基づいて、通信端末100の現在位置、すなわち現在の緯度と経度とを取得する。
<通信端末100のCPU110の処理>
次に、本実施の形態にかかる通信端末100におけるCPU110が位置取得プログラムに従って、実行する処理について説明する。図4〜図8は、本実施の形態にかかる通信端末100における表示画面を示すイメージ図である。
図4(a)を参照して、CPU110は、通信端末100の位置を計測して位置情報をサーバ200に送信するための発信モード指定するための命令、および/または、サーバ200から他の通信端末100の位置情報を取得する取得モード、を指定するための命令、をユーザから受け付ける。
ユーザが通信端末100のタッチパネル150あるいはスイッチを介して発信モードを選択した場合、図4の(b)に示すように、CPU110は、ユーザからのニックネームの入力を受け付ける。
図5の(a)を参照して、CPU110は、タッチパネル150あるいはスイッチを介して、ユーザからニックネームの入力を受け付ける。
図5の(b)を参照して、CPU110は、タッチパネル150あるいはスイッチを介して、ユーザからユーザIDの取得命令を受け付ける。CPU110は、通信インターフェイス160を介して、サーバ200にニックネームを送信することによって、サーバ200からユーザIDを受信する。CPU110は、タッチパネル150あるいはディスプレイにユーザIDを表示させる。
このとき、CPU110は、他の通信端末100に当該ユーザIDを通知するための命令を受け付けるためのソフトウェアボタンを、タッチパネル150に表示させる。ユーザが通信端末100に、他の通信端末100に当該ユーザIDを通知するための命令を入力すると、図5の(c)に示すように、CPU110は、メーラーを起動して、ユーザIDを送信する通信端末100のアドレスの入力を待ち受ける。CPU110は、アドレス帳からのアドレスあるいは直接入力されたアドレスに基づいて、ユーザIDを当該アドレスの端末へ送信する。
さらに、図5の(c)に示すように、CPU110は、位置取得機能を利用した通信端末100の現在位置の取得処理を開始するための命令を受け付けるためのソフトウェアボタンを、タッチパネル150に表示させる。ユーザが通信端末100に、現在位置の取得処理を開始するための命令を入力すると、CPU110は、位置取得機能を利用して、通信端末100の現在位置の取得処理を開始する。なお、通信端末100の現在位置の取得処理については後述する。
図6の(a)を参照して、CPU110は、通信端末100の現在位置の取得処理中は、タッチパネル150に現在位置の取得および送信を停止するための「発信停止」ボタンを表示する。ユーザが発信停止命令を入力すると、CPU110は現在位置の取得および発信を停止する。
なお、本実施の形態においては、図6(b)に示すように、CPU110は、ユーザIDを取得してから所定期間、たとえば24時間、48時間など、が経過するとユーザIDを無効にする。すなわち、ユーザIDの取得から所定期間を経過すると、通信端末100の位置取得プログラムは現在位置の取得処理を終了する。
一方、図4に戻って、ユーザが通信端末100のタッチパネル150あるいはスイッチを介して取得(表示)モードを選択した場合、図4の(c)に示すように、CPU110は、ユーザからの現在位置の表示をしたい通信端末100に関するユーザIDの入力を受け付ける。
図7の(a)を参照して、本実施の形態においては、CPU110は、タッチパネル150に通信端末100に関するユーザIDの受け付け画面を表示させる。なお、他の通信端末100からメールなどによってユーザIDが送付されてきた場合には、CPU110は、自動的にユーザIDが入力された画面をタッチパネル150に表示させる。
ユーザが、現在位置の表示をしたい通信端末100に関するユーザIDを入力して検索ボタンを押すと、あるいは現在位置の表示をしたい通信端末100からの受信メールに基づいてユーザIDが入力されてユーザが検索ボタンを押すと、CPU110は、通信インターフェイス160を介してサーバ200にユーザIDを送信する。
図7(b)を参照して、サーバ200は、ユーザIDに対応するニックネームを通信端末100に送信する。CPU110は、タッチパネル150に現在位置を表示したい通信端末100に関わるニックネームを表示させる。これによって、通信端末100のユーザは、現在位置を取得しようとしている通信端末100が所望のユーザのものであるか確認することができる。
このとき、CPU110は、指定された通信端末100の現在位置の表示を開始するための命令を受け付けるためのソフトウェアボタンをタッチパネル150に表示させる。指定された通信端末100の現在位置の表示を開始するための命令を受け付けると、CPU110は、通信インターフェイス160を介して、サーバ200から通信端末100の現在位置情報を取得し始める。すなわち、図8を参照して、CPU110は、サーバ200あるいは他のデータベースあるいは自身の位置取得プログラムから取得できる地図データに基づいて、タッチパネル150に、ユーザによって指定された通信端末100の現在位置を地図上に表示させる。
なお、発信モードにおいて位置情報を発信している状態において、ユーザが、図7(a)に示す画面に自身の通信端末100に関するユーザIDを入力すると、あるいは自身の通信端末100からの受信メールに基づいてユーザIDが入力されると、タッチパネル150には自身の通信端末100の現在位置が地図上に表示されることになる。
<通信端末100における位置データ送信処理>
次に、本実施の形態にかかる通信端末100における位置データ送信処理について説明する。図9は、本実施の形態にかかる通信端末100における位置データ送信処理を示すフローチャートである。
図9を参照して、通信端末100のCPU110は、まずタイマーをリセットする(ステップS102)。CPU110は、メモリ120から位置データの更新間隔を取得する(ステップS104)。
CPU110は、タイマーの値が更新間隔を超えているか否かを判断する(ステップS106)。タイマーの値が更新間隔を超えていない場合(ステップS106においてNOである場合)、ステップS106の処理を繰り返す。
CPU110は、タイマーの値が更新間隔を超えている場合(ステップS106においてYESである場合)、位置取得部170を利用して、通信端末100の現在位置、速度、方向などを取得する(ステップS108)。CPU110は、現在位置、速度、方向などに基づいて現在位置を示すデータを作成する(ステップS110)。CPU110は、通信インターフェイス160を利用することによって、位置データD111をサーバ200に送信する(ステップS112)。CPU110は、ステップS110からの処理を繰り返す。
<通信端末100における位置取得表示処理>
次に、本実施の形態にかかる通信端末100における位置データ取得表示処理について説明する。図10は、本実施の形態にかかる通信端末100における位置データ送信処理を示すフローチャートである。
図10を参照して、通信端末100のCPU110は、まずタイマーをリセットする(ステップS122)。CPU110は、メモリ120から地図の更新間隔を取得する(ステップS124)。
CPU110は、タイマーの値が更新間隔を超えているか否かを判断する(ステップS126)。タイマーの値が更新間隔を超えていない場合(ステップS126においてNOである場合)、ステップS126の処理を繰り返す。
CPU110は、タイマーの値が更新間隔を超えている場合(ステップS126においてYESである場合)、通信インターフェイス160を介して、サーバ200に位置データを要求する(ステップS128)。CPU110は、通信インターフェイス160を介して、サーバ200から位置データを受信する(ステップS130)。CPU110は、取得した位置データと、当該位置データの近傍の地図データとに基づいて、タッチパネル150に通信端末100の現在位置を地図上に表示させる(ステップS132)。
<サーバ200のハードウェア構成>
次に、サーバ200のハードウェア構成の一態様について説明する。図11は、本実施の形態にかかるサーバ200のハードウェア構成を表わすブロック図である。
図11を参照して、サーバ200は、主たる構成要素として、CPU210と、メモリ220と、通信インターフェイス260とを含む。
CPU210は、メモリ220あるいは外部の記憶媒体に記憶されているプログラムを実行することによって、サーバ200の各部を制御する。すなわち、CPU210は、メモリ220に格納されているプログラムを実行することによって、各種の処理、たとえば後述する様々な処理を実行する。
メモリ220は、各種のRAM、各種のROM、フラッシュメモリーなどによって実現される。なお、メモリ120は、インターフェイスを介して利用される、USB(登録商標)メモリ、CD、DVD、メモリカード、ハードディスク、ICカード、光カード、マスクROM、EPROM、EEPROMなどの記憶媒体などによっても実現される。
メモリ220は、CPU210によって実行されるプログラムや、CPU210によるプログラムの実行により生成されたデータ、入出力部を介して入力されたデータ、複数の通信端末100から受信したデータ、後述する各種のデータベース、地図を表示するための地図データ、レースに使用されるピッチの位置および/またはエリアを示す緯度・経度情報などを記憶する。たとえば、メモリ220は、現在位置情報データベース221を記憶する。
ここで、図12は、本実施の形態にかかる現在位置情報データベース221を示すイメージ図である。図12を参照して、現在位置情報データベース221は、ユーザIDと、ニックネームと、ユーザIDに対応する通信端末100の現在位置を示す情報と、ユーザIDに対応する通信端末100のアドレスとの対応関係を格納する。
図11に戻って、通信インターフェイス260は、アンテナやコネクタによって実現される。通信インターフェイス260は、有線通信あるいは無線通信によって他の装置との間でデータをやり取りする。CPU210は、通信インターフェイス260を介して、通信端末100の位置データ、制御命令、画像データ、テキストデータなどを通信端末100などの他の装置から受信する。また、CPU210は、通信インターフェイス260を介して、チーム毎の走者の位置を表示するためのデータ、その他のテキストデータ、その他の画像データなどを、複数の通信端末100などの他の装置に送信する。
<サーバ200における位置データ取得送信処理>
次に、本実施の形態にかかるサーバ200における位置データ送信処理について説明する。図13は、本実施の形態にかかる通信端末100における位置データ送信処理を示すフローチャートである。
図13を参照して、サーバ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から位置データを読み出す(ステップS166)。CPU210は、通信インターフェイス260を介して、通信端末100に位置データを送信する(ステップS170)。CPU210は、通信インターフェイス260を介して、通信端末100からの次のデータを待ち受ける。
受信データに位置データの要求が含まれていない場合(ステップS162にてNOである場合)、CPU210は、受信データから、他の命令や情報を取得して、各種の処理を実行する(ステップS172)。CPU210は、通信インターフェイス260を介して、通信端末100からの次のデータを待ち受ける。
本実施の形態にかかる位置取得プログラムは、発信モードと取得モードとを有しているため、自分の位置情報を送信する場合と他人の位置情報を取得する場合におけるプラットフォームを共通にすることができる。その結果、ユーザの利便性および/またはサービス側の利便性を向上させることができる。
<第2の実施の形態>
第1の実施の形態においては、位置取得モードの通信端末100の各々のタッチパネル150には、1つの通信端末の現在位置が表示されるものであった。本実施の形態においては、図14に示すように、位置取得モードの通信端末100の各々のタッチパネル150に複数の通信端末100の現在位置が表示される。なお、図14は、本実施の形態にかかる通信端末100における表示画面を示す第1のイメージ図である。
なお、本実施の形態にかかるネットワークシステム1の全体構成、ネットワークシステム1の動作概要、各装置のハードウェア構成、通信端末100における位置データ送信処理などは、第1の実施の形態のそれと同様であるため、ここでは説明を繰り返さない。換言すれば、以下では、第1の実施の形態と大きく異なる部分のみについて説明するものとする。
<通信端末100のCPU110の処理>
次に、本実施の形態にかかる通信端末100におけるCPU110が位置取得プログラムに従って、実行する処理について説明する。ただし、発信モードにおけるCPU110の処理は、第1の実施の形態のそれと同様であるため、ここでは説明を繰り返さない。
図4を参照して、ユーザが通信端末100のタッチパネル150あるいはスイッチを介して取得(表示)モードを選択した場合、図4の(c)、正確には図15に示すように、CPU110は、ユーザから、現在位置の表示をしたい複数の通信端末100に関するユーザIDの入力を受け付ける。なお、図15は、本実施の形態にかかる通信端末100における表示画面を示す第2のイメージ図である。
図15の(a)を参照して、本実施の形態においては、CPU110は、タッチパネル150に、複数の通信端末100に関するユーザIDの受け付け画面を表示させる。なお、他の通信端末100からメールなどによってユーザIDが送付されてきた場合には、CPU110は、自動的にユーザIDを入力欄に入力する。
ユーザが、現在位置の表示をしたい通信端末100に関するユーザIDを入力して検索ボタンを押すと、あるいは現在位置の表示をしたい通信端末100からの受信メールに基づいてユーザIDが入力された状態でユーザが検索ボタンを押すと、CPU110は、通信インターフェイス160を介してサーバ200にユーザIDを送信する。
図15の(b)を参照して、サーバ200は、ユーザIDに対応するニックネームを通信端末100に送信する。CPU110は、タッチパネル150に現在位置を表示したい通信端末100に関わるニックネームを表示させる。これによって、通信端末100のユーザは、現在位置を取得しようとしている通信端末100が所望のユーザのものであるか確認することができる。
さらに、ユーザが、現在位置の表示をしたい他の通信端末100に関するユーザIDを入力して検索ボタンを押すと、あるいは現在位置の表示をしたい通信端末100からの受信メールに基づいてユーザIDが入力された状態でユーザが検索ボタンを押すと、CPU110は、通信インターフェイス160を介してサーバ200にユーザIDを送信する。
図15の(c)を参照して、サーバ200は、他の通信端末100に関するユーザIDに対応するニックネームを通信端末100に送信する。CPU110は、タッチパネル150に現在位置を表示したい他の通信端末100に関わるニックネームを表示させる。これによって、通信端末100のユーザは、現在位置を取得しようとしている他の通信端末100が所望のユーザのものであるか確認することができる。
このとき、CPU110は、指定された1または複数の通信端末100の現在位置の表示を開始するための命令を受け付けるためのソフトウェアボタンをタッチパネル150に表示させる。指定された1または複数の通信端末100の現在位置の表示を開始するための命令を受け付けると、CPU110は、通信インターフェイス160を介して、サーバ200から1または複数の通信端末100の現在位置情報を取得し始める。すなわち、CPU110は、サーバ200あるいは他のデータベースあるいは自身の位置取得プログラムから取得できる地図データに基づいて、図14に示すように、タッチパネル150に、ユーザによって指定された複数の通信端末100の現在位置を地図上に表示させる。
なお、本実施の形態においても、発信モードにおいて位置情報を発信しながら、図15(a)に示す状態において、ユーザが自身の通信端末100に関するユーザIDを入力すると、あるいは自身の通信端末100からの受信メールに基づいてユーザIDが入力されると、タッチパネル150には他の通信端末100の現在位置とともに自身の通信端末100の現在位置が地図上に表示されることになる。
<サーバ200における位置データ取得送信処理>
本実施の形態にかかるサーバ200における位置データ送信処理について説明する。ただし、本実施の形態にかかるサーバ200における位置データ送信処理は、図12に示す第1の実施の形態と比較して、ステップS166とステップS170とにおいて異なるので、その他のステップSに関する説明は繰り返さない。
すなわち、本実施の形態においては、CPU210は、位置データを要求された複数の通信端末100のIDに基づいて、位置情報データベース221から複数の位置データを読み出す(ステップS166)。CPU210は、通信インターフェイス260を介して、通信端末100に複数の位置データを送信する(ステップS170)。CPU210は、通信インターフェイス260を介して、通信端末100からの次のデータを待ち受ける。
<第3の実施の形態>
第1の実施の形態においては、位置取得モードの通信端末100の各々のタッチパネル150には、1つの通信端末の現在位置が表示される。第2の実施の形態においては、位置取得モードの通信端末100の各々のタッチパネル150には、1または複数の通信端末の現在位置が表示される。本実施の形態においては、無料の位置取得プログラムか有料の位置取得プログラムかに応じて、1つの通信端末100の現在位置のみが表示可能であるか、複数の通信端末100の現在位置が表示可能であるかが異なるものである。
図16は、本実施の形態にかかる、無料の位置取得プログラムか有料の位置取得プログラムかに応じて異なるサービス内容を示す表である。図16を参照して、通信端末100のCPU110あるいはサーバ200のCPU210は、無料の位置取得プログラムの利用時は、発信モードの1つの通信端末100のみの現在位置を位置取得モードの通信端末100のタッチパネル150に表示する。そして、通信端末100のCPU110は、サービス側が決定した間隔で、位置取得機能を利用した位置情報の取得を実行する。また、イベントに関する情報の表示が、サービス側によって強制的に実行される。
一方、通信端末100のCPU110あるいはサーバ200のCPU210は、有料の位置取得プログラムの利用時は、ユーザの指定に従って1または複数の発信モードの通信端末100の現在位置を位置取得モードの通信端末100のタッチパネル150に表示する。そして、通信端末100のCPU110は、ユーザの設定に基づいて、位置取得機能を利用した位置情報の取得の間隔を変更することができる。また、イベントに関する情報を表示するか否かも、ユーザが自由に設定することができる。
ここで、位置情報の取得の間隔を変更に関する処理について詳述する。図17は、本実施の形態にかかる通信端末100における表示画面を示す第1のイメージ図である。図18は、本実施の形態にかかる通信端末100における表示画面を示す第2のイメージ図である。
図17に示すように、通信端末100のCPU110は、ユーザからの命令に基づいて、タッチパネル150に設定用ウインドウを表示させる。ユーザが、設定というボタンを選択すると、CPU110は、図18に示すような位置データの取得間隔を設定するためのウインドウを表示させる。CPU110は、ユーザに設定された位置データの取得間隔に従って、位置取得機能を利用して現在位置を取得する。
<第4の実施の形態>
第2の実施形態においては、図14に示すように、位置取得モードの通信端末100の各々のタッチパネル150に複数の通信端末100の現在位置が表示されるものであった。本実施の形態においては、通信端末100は、指定された複数の通信端末100の現在位置がちょうど全て表示される程度の縮尺の地図をタッチパネル150に表示させる。
なお、本実施の形態にかかるネットワークシステム1の全体構成、ネットワークシステム1の動作概要、各装置のハードウェア構成、通信端末100における位置データ送信処理、サーバ200における位置データ取得送信処理などは、第1の実施の形態のそれと同様であるため、ここでは説明を繰り返さない。換言すれば、以下では、第1の実施の形態と異なる部分として、通信端末100における位置取得表示処理の一部について説明する。
図10を参照して、CPU110は、通信インターフェイス160を介して、サーバ200から1または複数の通信端末100の位置データを受信する(ステップS130)。CPU110は、取得した複数の通信端末100の位置データに基づいて、地図の縮尺を計算する。たとえば、CPU110は、複数の通信端末100間の距離を計算し、東西方向の距離が最も遠い通信端末100間の東西方向の距離と、南北方向の距離が最も遠い通信端末100間の南北方向の距離と、に基づいて、地図の縮尺を計算する。
そして、図19に示すように、CPU110は、取得した複数の通信端末100の位置データと、決定された縮尺の地図データとに基づいて、タッチパネル150に1または複数の通信端末100の現在位置を地図上に表示させる(ステップS132)。なお、他のステップは、第1〜第3の実施の形態のそれらと同様であるため、ここでは説明を繰り返さない。
<第5の実施の形態>
第2の実施形態においては、図14に示すように、位置取得モードの通信端末100の各々のタッチパネル150に複数の通信端末100の現在位置が表示されるものであった。本実施の形態においては、通信端末100は、表示エリアの設定を受け付けるものであって、特に、表示すべきエリアや会場などを指定するための命令をユーザから受け付けるものである。なお、単に、通信端末100は、タッチパネル150を介してユーザから、地図の位置を示す緯度・経度の指定と縮尺の指定とを受け付けるものであってもよい。
なお、本実施の形態にかかるネットワークシステム1の全体構成、ネットワークシステム1の動作概要、各装置のハードウェア構成、通信端末100における位置データ送信処理、サーバ200における位置データ取得送信処理などは、第1の実施の形態のそれと同様であるため、ここでは説明を繰り返さない。換言すれば、以下では、第1の実施の形態と異なる部分として、通信端末100のCPU110の処理の一部について説明する。
図20は、本実施の形態にかかる通信端末100における表示画面を示すイメージ図である。図20(a)を参照して、本実施の形態においても、CPU110は、通信端末100の位置を計測して位置情報をサーバ200に送信するための発信モードと、サーバ200から他の通信端末100の位置情報を取得する取得モードと、を指定するための命令をユーザから受け付ける。
しかしながら、本実施の形態においては、CPU110は、発信モードを指定するためのボタンと、取得モードを指定するためのボタンだけでなく、さらに、エリアの選択命令を受け付けるためのプルダウンメニューをもタッチパネル150に表示させる。そして、ユーザは、エリアを選択した状態で、タッチパネル150あるいはスイッチを介して発信モードを選択したり、取得モードを選択したりする。これによって、CPU110は、サーバ200からの通信端末100の位置データと、選択されたエリアの地図データとに基づいて、通信端末100の現在位置を当該選択されたエリアの地図上に表示する。その後の処理は、第1〜第4の実施の形態と同様であるため、ここでは説明を繰り返さない。
選択可能なエリアとしては、たとえば、テーマパーク、遊園地、大きな商業施設、観光地、レース会場、都道府県、市町村などが挙げられる。そして、通信端末100のCPU110は、予め、あるいは定期的に、あるいは位置取得プログラムの起動時に、通信インターフェイス160を介して、サーバ200から、選択可能なエリアのリストを取得することが好ましい。
その他、第1の実施の形態と異なる部分として、通信端末100における位置取得表示処理の一部について説明する。図10を参照して、CPU110は、通信インターフェイス160を介して、サーバ200から1または複数の通信端末100の位置データを受信する(ステップS130)。CPU110は、取得した複数の通信端末100の位置データと、選択されたエリアの地図データとに基づいて、タッチパネル150に1または複数の通信端末100の現在位置を地図上に表示させる(ステップS132)。なお、他のステップは、第1〜第4の実施の形態のそれらと同様であるため、ここでは説明を繰り返さない。
これによって、ユーザが、地図の範囲を指定することなく、現在利用中の施設のどの当たりに、他のメンバーや自分自身が位置するのかを把握し易くなる。
<第6の実施の形態>
第2の実施形態においては、図14に示すように、位置取得モードの通信端末100の各々のタッチパネル150に複数の通信端末100の現在位置が表示されるものであった。本実施の形態においては、通信端末100は、図15に示す画面において、最初(一番上の入力欄)に指定された通信端末100の現在位置が地図の中心に表示されるように、地図と1または複数の通信端末100の現在位置とをタッチパネル150に表示させる。
換言すれば、図15に示す取得モードのID入力欄の一番上の欄に、自分の通信端末100の発信モードの開始時に取得した自分のユーザIDを入力することによって、自分の通信端末100の現在位置を地図の中心に表示させることができる。
なお、本実施の形態にかかるネットワークシステム1の全体構成、ネットワークシステム1の動作概要、各装置のハードウェア構成、通信端末100における位置データ送信処理、サーバ200における位置データ取得送信処理などは、第1の実施の形態のそれと同様であるため、ここでは説明を繰り返さない。換言すれば、以下では、第1の実施の形態と異なる部分として、通信端末100における位置取得表示処理の一部について説明する。
図10を参照して、CPU110は、通信インターフェイス160を介して、サーバ200から1または複数の通信端末100の位置データを受信する(ステップS130)。CPU110は、最初に指定された通信端末100の位置データに基づいて地図の中心を決定する。そして、図21に示すように、CPU110は、タッチパネル150に、1または複数の通信端末100の現在位置を、最初に指定された通信端末100の位置を中心にした地図上に表示させる(ステップS132)。なお、他のステップは、第1〜第3の実施の形態のそれらと同様であるため、ここでは説明を繰り返さない。
ただし、最初に指定された通信端末100と他の通信端末100との位置データに基づいて、地図の縮尺を計算してもよい。たとえば、CPU110は、最初に指定された通信端末100から他の通信端末100間の距離を計算し、東西方向の距離が最も遠い通信端末100間の東西方向の距離と、南北方向の距離が最も遠い通信端末100間の南北方向の距離と、に基づいて、地図の縮尺を計算してもよい。
また、地図の中心には、最初に指定された通信端末100が表示される形態には限られない。たとえば、図15に示すIDの入力画面に、地図の中心に表示すべき通信端末100を選択するためのラジオボタンを表示させてもよい。あるいは、自分の通信端末100の発信モードのIDを入力しなくても、位置取得モードを実行している自分の通信端末100の現在位置が自動的に地図の中央に表示されるように、地図の表示エリアを決定してもよい。
<第7の実施の形態>
第2の実施形態においては、図14に示すように、位置取得モードの通信端末100の各々のタッチパネル150に複数の通信端末100の現在位置が表示されるものであった。本実施の形態においては、通信端末100は、所定期間以上、現在位置が更新されてない通信端末100の位置の表示形態が、他の通信端末100の位置の表示形態と異なるように制御される。
なお、本実施の形態にかかるネットワークシステム1の全体構成、ネットワークシステム1の動作概要、各装置のハードウェア構成、通信端末100における位置データ送信処理、サーバ200における位置データ取得送信処理などは、第1の実施の形態のそれと同様であるため、ここでは説明を繰り返さない。換言すれば、以下では、第1の実施の形態と異なる部分として、通信端末100における位置取得表示処理の一部について説明する。
図10を参照して、CPU110は、通信インターフェイス160を介して、サーバ200から1または複数の通信端末100の位置データを受信する(ステップS130)。本実施の形態においては、CPU110は、複数の通信端末100毎に、最新の位置データの取得時刻をメモリ120に記憶する。
CPU110は、図22に示すように、タッチパネル150に、地図を表示させるとともに、現在位置の更新が所定期間未満に行われた通信端末100の現在位置を通常の第1の表示形態で表示させ、現在位置の更新が所定期間以上に行われていない通信端末100の現在位置を第1の表示形態とは異なる第2の表示形態で表示させる(ステップS132)。なお、他のステップは、第1〜第3の実施の形態のそれらと同様であるため、ここでは説明を繰り返さない。
これによって、ユーザは、第2の表示形態で表示されている他のメンバーがいた場合、当該他のメンバーが現在は表示されている位置にいないかもしれないという予想をすることができる。
<第8の実施の形態>
第1〜7の実施の形態においては、通信端末100は、位置取得機能によって定期的に現在位置を測定するものであった。特に、第3の実施の形態における有料サービスに関しては、ユーザの設定によって現在位置の測定間隔を決定できるものであった。本実施の形態においては、通信端末100は、電池残量に基づいて、位置取得による現在位置測定の間隔を変更する。
なお、本実施の形態にかかるネットワークシステム1の全体構成、ネットワークシステム1の動作概要、各装置のハードウェア構成、通信端末100における位置データ取得表示処理、サーバ200における位置データ取得送信処理などは、第1の実施の形態のそれと同様であるため、ここでは説明を繰り返さない。以下では、第1の実施の形態と異なる部分として、通信端末100における位置データ送信処理の一部について説明する。
図23は、本実施の形態にかかる通信端末100における位置データ送信処理を示すフローチャートである。図23を参照して、通信端末100のCPU110は、まずタイマーをリセットする(ステップS802)。
そして、本実施の形態においては、通信端末100のCPU110は、電池残量を取得する処理を実行する(ステップS803)。そして、CPU110は、電池残量が多い場合には、位置取得による現在位置測定の間隔を短めに設定する。逆に、CPU110は、電池残量が少ない場合には、位置取得による現在位置測定の間隔を短めに設定する(ステップS804)。
具体例としては、CPU110は、電池残量が半分(第1の所定値)以上である場合には、位置取得による現在位置測定の間隔を通常の設定時間、たとえば30秒に設定する。CPU110は、電池残量が半分未満かつ1/4(第2の所定値)以上である場合には、位置取得による現在位置測定の間隔を通常の設定時間の倍、たとえば60秒に設定する。なお、CPU110は、電池残量が1/4未満である場合には、位置取得による現在位置測定の間隔を通常の設定時間の4倍、たとえば2分に設定する。
CPU110は、タイマーの値が設定された更新間隔を超えているか否かを判断する(ステップS806)。タイマーの値が更新間隔を超えていない場合(ステップS806においてNOである場合)、ステップS806の処理を繰り返す。
CPU110は、タイマーの値が更新間隔を超えている場合(ステップS806においてYESである場合)、位置取得部170を利用して、通信端末100の現在位置、速度、方向などを取得する(ステップS808)。CPU110は、現在位置、速度、方向などに基づいて現在位置を示すデータを作成する(ステップS810)。CPU110は、通信インターフェイス160を利用することによって、位置データD111をサーバ200に送信する(ステップS812)。CPU110は、ステップS802からの処理を繰り返す。
<第9の実施の形態>
第1〜7の実施の形態においては、通信端末100は、位置取得機能によって定期的に現在位置を測定するものであった。特に、第3の実施の形態における有料サービスに関しては、ユーザの設定によって現在位置の測定間隔を決定できるものであった。本実施の形態においては、通信端末100は、速度に基づいて、位置取得による現在位置測定の間隔を変更する。
なお、本実施の形態にかかるネットワークシステム1の全体構成、ネットワークシステム1の動作概要、各装置のハードウェア構成、通信端末100における位置データ取得表示処理、サーバ200における位置データ取得送信処理などは、第1の実施の形態のそれと同様であるため、ここでは説明を繰り返さない。以下では、第1の実施の形態と異なる部分として、通信端末100における位置データ送信処理の一部について説明する。
図24は、本実施の形態にかかる通信端末100における位置データ送信処理を示すフローチャートである。図24を参照して、通信端末100のCPU110は、まずタイマーをリセットする(ステップS902)。
そして、本実施の形態においては、通信端末100のCPU110は、通信端末100の移動速度を取得する処理を実行する(ステップS903)。たとえば、CPU110は、最新の2つの自身の位置データに基づいて、通信端末100の速度を計算する。そして、CPU110は、通信端末100の速度が速い場合には、位置取得による現在位置測定の間隔を短めに設定する。逆に、CPU110は、速度が遅い場合には、位置取得による現在位置測定の間隔を短めに設定する(ステップS904)。
具体例としては、CPU110は、速度が10km/h(第1の所定値)未満である場合には、位置取得による現在位置測定の間隔通常を30秒に設定する。CPU110は、速度が10km/h以上50km/h(第2の所定値)未満である場合には、位置取得による現在位置測定の間隔を15秒に設定する。なお、CPU110は、速度が50km/h以上である場合には、位置取得による現在位置測定の間隔を10秒に設定する。
CPU110は、タイマーの値が設定された更新間隔を超えているか否かを判断する(ステップS906)。タイマーの値が更新間隔を超えていない場合(ステップS906においてNOである場合)、ステップS906の処理を繰り返す。
CPU110は、タイマーの値が更新間隔を超えている場合(ステップS906においてYESである場合)、位置取得部170を利用して、通信端末100の現在位置、速度、方向などを取得する(ステップS908)。CPU110は、現在位置、速度、方向などに基づいて現在位置を示すデータを作成する(ステップS910)。CPU110は、通信インターフェイス160を利用することによって、位置データD111をサーバ200に送信する(ステップS912)。CPU110は、ステップS902からの処理を繰り返す。
<第10の実施の形態>
第1〜9の実施の形態においては、ユーザが、発信モードに指定するための命令と、取得モードに指定するための命令とを入力できるものであった。本実施の形態においては、図2に示したように、ユーザは、スタッフモードも指定することができる。
なお、本実施の形態にかかるネットワークシステム1の全体構成、ネットワークシステム1の動作概要、各装置のハードウェア構成、通信端末100における位置データ送信処理、通信端末100における位置データ取得表示処理、サーバ200における位置データ取得送信処理などは、第1の実施の形態のそれと同様であるため、ここでは説明を繰り返さない。以下では、第1〜9の実施の形態において説明していない部分について説明する。
図17に示すように、通信端末100のCPU110は、ユーザからの命令に基づいて、タッチパネル150に設定用ウインドウを表示させる。ユーザが、設定用ウインドウからスタッフモードというボタンを選択すると、CPU110は、図25に示すようなスタッフモードの設定処理に移行する。なお、図25は、本実施の形態にかかる通信端末100における表示画面を示すイメージ図である。
図25(a)を参照して、CPU110は、タッチパネル150を介して、ユーザからスタッフIDの入力を受け付ける。ユーザが「確認」ボタンを押すと、CPU110は、通信インターフェイス160を介して、サーバ200にスタッフIDを送信する。
サーバ200には、予め、運営者、たとえばレースの開催者や遊園地の管理者などから、スタッフIDとユーザ名との対応関係が入力されている。サーバ200のCPU210は、通信インターフェイス260を介して、通信端末100からスタッフIDを受信して、通信端末100にスタッフIDに対応するユーザ名を送信する。
図25(b)を参照して、CPU110は、サーバ200から受信したユーザ名をタッチパネル150に表示させる。これによって、通信端末100のユーザであるスタッフは、スタッフIDを入力を間違えていないか否かを確認することができる。
さらに、このとき、CPU110は、位置取得機能を利用した通信端末100の現在位置の取得処理を開始するための命令を受け付けるためのソフトウェアボタンを、タッチパネル150に表示させる。ユーザが通信端末100に、現在位置の取得処理を開始するための命令を入力すると、CPU110は、位置取得機能を利用して、通信端末100の現在位置の取得処理を開始する。なお、通信端末100の現在位置の取得処理については第1の実施の形態のそれと同様であるため、ここでは説明を繰り返さない。
これによって、サーバ200は、多数のスタッフの現在位置を取得することができる。そして、レースの開催者や遊園地の管理者は、パーソナルコンピュータやタブレットやスマートフォンなどの通信端末100から、専用のアプリケーションプログラムかインターネットブラウザを利用することによって、サーバ200にアクセスして、多数のスタッフの現在位置を把握することができる。
<その他の応用例>
本発明は、システム或いは装置にプログラムを供給することによって達成される場合にも適用できることはいうまでもない。そして、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記憶媒体(あるいはメモリ)を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の効果を享受することが可能となる。
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わる他の記憶媒体に書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
<上記の複数の実施の形態のまとめ>
上記の第1〜第10の実施の形態においては、サーバ200と通信するための通信インターフェイス160と位置取得機能170とディスプレイ130とプロセッサ110とを有する機器のための位置取得プログラム121が提供される。位置取得プログラム121は、プロセッサ110に、位置取得機能170を利用することによって現在位置を取得して、通信インターフェイス160を介してサーバ200に当該現在位置を送信するステップと、通信インターフェイス160を介してサーバ200から少なくとも1つの他の機器100の現在位置を受信して、ディスプレイ130に少なくとも1つの他の機器の現在位置を表示させるステップとを実行させる。
上記の第1〜第10の実施の形態においては、位置取得プログラム121は、プロセッサ110に、現在位置を送信するステップを実行させる前に、サーバ200にメンバー登録する際にサーバ200から識別情報を受信するステップと、識別情報を他の機器100に送信するステップとを実行させる。位置取得プログラム121は、プロセッサ110に、少なくとも1つの他の機器100の現在位置を表示させるステップを実行させる前に、少なくとも1つの他の機器100の識別情報を受信するステップと、受信した少なくとも1つの識別情報を利用することによって他の機器100の現在位置の取得を開始するステップとを実行させる。
上記の第4の実施の形態においては、少なくとも1つの他の機器100の現在位置を表示させるステップは、ディスプレイ130に少なくとも1つの他の機器100の現在位置が全て表示されるように地図の縮尺を調整するステップを含む。
上記の第5の実施の形態においては、少なくとも1つの他の機器100の現在位置を表示させるステップは、ディスプレイ130に、設定されたエリアの地図上に、少なくとも1つの他の機器100の現在位置を表示させるステップを含む。
上記の第5の実施の形態においては、位置取得プログラム121は、少なくとも1つの他の機器100の現在位置を表示させるステップを実行させる前に、プロセッサ110に、複数種類のエリアから、1つのエリアを選択する命令を受け付けるステップを実行させる。
上記の第6の実施の形態においては、少なくとも1つの他の機器100の現在位置を表示させるステップは、ディスプレイ130に、機器100のいずれかの位置を中心にした地図上に、少なくとも1つの他の機器100の現在位置を表示させるステップを含む。
上記の第7の実施の形態においては、少なくとも1つの他の機器100の現在位置を表示させるステップは、所定の期間、少なくとも1つの他の機器100のいずれかの現在位置が正常に更新されなかった場合、正常に更新されなかった少なくとも1つの他の機器100のいずれかの現在位置を、正常に更新された少なくとも1つの他の機器100のいずれかの現在位置の表示態様と異なる表示態様でディスプレイ130に表示させるステップを含む。
上記の第1〜第10の実施の形態においては、サーバ200と通信するための通信インターフェイス160と、位置取得機能170と、ディスプレイ130と、プロセッサ110と備える通信端末100が提供される。プロセッサ110は、位置取得機能170を利用することによって現在位置を取得して、通信インターフェイス160を介してサーバ200に当該現在位置を送信し、通信インターフェイス160を介してサーバ200から少なくとも1つの他の機器100の現在位置を受信して、ディスプレイ130に少なくとも1つの他の機器100の現在位置を表示させる。
上記の第1〜第10の実施の形態においては、第1の通信端末100と、第2の通信端末100と、サーバ200とを備えるネットワークシステム1が提供される。第1の通信端末100は、位置取得機能170を利用することによって現在位置を取得して、サーバ200に当該現在位置を送信する。サーバ200は、第1または第2の通信端末100の要求に基づいて、第1の通信端末100の現在位置を第1または第2の通信端末100に送信する。第1または第2の通信端末100は、第1の通信端末100の現在位置をディスプレイ130に表示する。
上記の第1〜第10の実施の形態においては、第1の通信端末100と、第2の通信端末100と、サーバ200とを含むネットワークシステム1における位置取得方法が提供される。位置取得方法は、第1の通信端末100が、定期的に、位置取得機能170を利用することによって現在位置を取得して、サーバ200に当該現在位置を送信するステップと、サーバ200が、第1または第2の通信端末100の要求に基づいて、第1の通信端末100の現在位置を第1または第2の通信端末100に送信するステップと、第1または第2の通信端末100が、第1の通信端末100の現在位置をディスプレイ130に表示するステップとを備える。
上記の第1〜第10の実施の形態においては、第1および第2の通信端末100と通信するための通信インターフェイス260と、プロセッサ210とを備えるサーバが提供される。プロセッサ210は、通信インターフェイス260を介して、第1の通信端末100から現在位置を受信し、第1または第2の通信端末100の要求に基づいて、通信インターフェイス260を介して、第1の通信端末100の現在位置を第1または第2の通信端末100に送信する。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。