(58)【調査した分野】(Int.Cl.,DB名)
前記決定モジュールは、前記変更方向をランダムに決定し、前記変更距離を前記第2の半径から前記第1の半径までの範囲内でランダムに決定する請求項1記載のサーバ。
【発明を実施するための形態】
【0010】
図1は、本発明の一実施形態に係るサーバ10を含むシステム1のハードウェア構成を概略的に示すブロック図である。
図1に示すように、一実施形態におけるサーバ10は、一般的なコンピュータとして構成される端末装置30とインターネット等の通信網20を介して通信可能に接続されており、この端末装置30に対して地図画像を出力することができる。なお、サーバ10には端末装置30以外の図示しない端末装置も通信可能に接続され得る。また、サーバ10は、端末装置30を操作するユーザに対して様々なインターネットサービスを提供することができ、複数の端末装置30を操作する複数のユーザ間の様々なコミュニケーションを実現するプラットフォームサービスを提供することができる。こうしたサーバ10が提供する様々なサービスにおいて、ユーザに対応するユーザ要素が配置された地図画像が端末装置30に対して出力され得る。
【0011】
サーバ10は、図示のとおり、CPU(プロセッサ)11と、メインメモリ12と、ユーザI/F13と、通信I/F14と、外部メモリ15と、ディスクドライブ16とを含み、これらの各構成要素がバス17を介して互いに電気的に接続されている。CPU11は、外部メモリ15からオペレーティングシステムや各種サービスの提供を制御するための制御用プログラム等の様々なプログラムをメインメモリ12にロードし、ロードしたプログラムに含まれる命令を実行する。メインメモリ12は、CPU11が実行するプログラムを格納するために用いられ、例えば、DRAMによって構成される。
【0012】
ユーザI/F13は、例えば、オペレータの入力を受け付けるキーボードやマウス等の情報入力装置と、CPU11の演算結果を出力する液晶ディスプレイ等の情報出力装置とを含む。通信I/F14は、ハードウェア、ファームウェア、又はTCP/IPドライバやPPPドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装され、通信網20を介して端末装置30と通信可能に構成される。
【0013】
外部メモリ15は、例えば磁気ディスクドライブで構成され、各種サービスの提供を制御するための制御用プログラム等の様々なプログラムが記憶される。また、外部メモリ15には、各種サービスの提供において用いられる各種データも記憶され得る。外部メモリ15に記憶され得る各種データは、サーバ10と通信可能に接続されるサーバ10とは物理的に別体のデータベースサーバに格納されてもよい。ディスクドライブ16は、CD−ROM、DVD−ROM、DVD−R等の各種の記憶メディアに格納されたデータを読み込み、又は、これらの記憶メディアにデータを書き込む。
【0014】
一実施形態において、サーバ10は、階層構造の複数のウェブページから成るウェブサイトを管理するウェブサーバである。端末装置30は、ウェブページを表示するためのHTMLデータをサーバ10から取得し、取得したHTMLデータを解析して、当該ウェブページを端末装置30のユーザに提示することができる。外部メモリ15には、このウェブページを表示するためのHTMLデータも記憶される。HTMLデータは、HTML等のマークアップ言語で記述されたHTML文書から成り、このHTML文書には、様々な画像が関連付けられる。また、HTML文書には、ActionScriptやJavaScript(登録商標)等のスクリプト言語等で記述されたプログラムが埋め込まれ得る。
【0015】
外部メモリ15には、端末装置30においてブラウザソフトウェア以外の実行環境上で実行される各種アプリケーションも格納され得る。この各種アプリケーションには、各種プログラムや当該プログラム実行時に参照される画像データ等の各種データを含めることができる。プログラムは、例えば、Objective−C、Java(登録商標)等のオブジェクト指向プログラミング言語で作成される。作成されたプログラムは、各種データとともに、アプリケーションソフトウェアとして外部メモリ15に記憶される。外部メモリ15に記憶されたアプリケーションソフトウェアは、配信要求に応じて端末装置30に配信される。サーバ10から配信されたアプリケーションソフトウェアは、端末装置30において、CPU31の制御に従って通信I/F34を介して受信され、外部メモリ35に送信されて記憶される。このアプリケーションソフトウェアは、ユーザによる端末装置30の操作に応じて起動され、端末装置30に実装されたNgCore(商標)やAndroid(商標)等のプラットフォーム上で実行される。サーバ10は、端末装置30で実行されているアプリケーションに対して各種サービスの提供に必要な各種データを提供する。また、サーバ10は、端末装置30から送信される各種データをユーザごとに記憶することで、ユーザごとに各種サービスの提供を管理することができる。
【0016】
このように、サーバ10は、各種サービスを提供するウェブサイトを管理し、当該ウェブサイトを構成するウェブページを端末装置30からの要求に応じて配信することにより、各種サービスを提供することができる。また、サーバ10は、このようなブラウザベースのサービスとは代替的に、又は、ブラウザベースのサービスに加えて、端末装置30で実行されるアプリケーションとの通信に基づいて各種サービスを提供することができる。サーバ10は、いずれの態様でサービスを提供するにしても、各ユーザを識別する識別情報ごとに各種サービスの提供に必要なデータを記憶することができる。詳細な説明は省略するが、サーバ10は、サービスの提供開始時のユーザの認証処理やサービスの提供に応じて発生する課金処理を行う機能を有することもできる。サーバ10のウェブサイト又はアプリケーションによって実現される各種サービスの種類は、本明細書において明示されたものに限られない。
【0017】
端末装置30は、一実施形態において、サーバ10から取得したウェブサイトのウェブページをウェブブラウザ上で表示すると共にアプリケーションを実行するためのアプリケーション実行環境を実装した任意の情報処理装置であり、スマートフォン、タブレット端末、及びゲーム専用端末等が含まれ得る。
【0018】
端末装置30は、図示のとおり、CPU(プロセッサ)31と、メインメモリ32と、ユーザI/F33と、通信I/F34と、外部メモリ35と、GPS受信機37とを含み、これらの各構成要素がバス36を介して互いに電気的に接続されている。
【0019】
CPU31は、外部メモリ35からオペレーティングシステム等の様々なプログラムをメインメモリ32にロードし、ロードしたプログラムに含まれる命令を実行する。メインメモリ32は、CPU31が実行するプログラムを格納するために用いられ、例えば、DRAMによって構成される。
【0020】
ユーザI/F33は、ユーザの入力を受け付ける情報入力装置と、CPU31の演算結果を出力する情報出力装置であり、タッチパネルを備える液晶ディスプレイなどの表示装置を含む。
【0021】
通信I/F34は、ハードウェア、ファームウェア、又は、TCP/IPドライバやPPPドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装され、通信網20を介してサーバ10と通信可能に構成される。
【0022】
外部メモリ35は、例えば磁気ディスクドライブやフラッシュメモリ等により構成され、オペレーティングシステム等の様々なプログラムを記憶する。また、外部メモリ35は、サーバ10から通信I/F34を介してアプリケーションを受信した場合には、この受信したアプリケーションを記憶する。
【0023】
GPS受信機37は、図示しないGPS衛星からの電波を受信して端末装置30(GPS受信機37)の地理的位置に関する位置情報を取得可能な一般的なGPSにおける受信機として構成されている。
【0024】
このようなアーキテクチャを有する端末装置30は、例えば、HTML形式のファイル(HTMLデータ)を解釈して画面表示するためのブラウザソフトウェアを備えており、このブラウザソフトウェアの機能によりサーバ10から取得したHTMLデータを解釈して、受信したHTMLデータに対応するウェブページを表示することができる。また、端末装置30は、ブラウザソフトウェアに組み込まれるプラグインソフト(例えば、アドビシステムズ社から提供されているFlash Player)を備えており、HTMLデータに埋め込まれたSWF形式のファイルをサーバ10から取得し、当該SWF形式のファイルをブラウザソフトウェア及びプラグインソフトを用いて実行することができる。また、端末装置30は、サーバ10から取得したアプリケーションを実行することができる。
【0025】
次に、一実施形態におけるサーバ10のCPU11によって実行される地図画像出力用プログラム50について説明する。
図2は、一実施形態における地図画像出力用プログラム50のモジュール構成を示すブロック図である。地図画像出力用プログラム50は、図示するように、1又は複数のユーザの現在地(対応する地理的位置)に少なくとも基づいて地図画像にユーザ要素を配置する1又は複数のユーザを特定するユーザ特定モジュール52と、特定された1又は複数のユーザの現在地を変更するための変更方向及び変更距離を決定する決定モジュール53と、決定された変更方法及び変更距離に従って変更された現在地に対応する地図画像上の位置にユーザ要素を配置する配置モジュール54と、ユーザ要素が配置された地図画像を端末装置30に対して出力する出力モジュール55と、を備える。
【0026】
次に、こうして構成された一実施形態におけるサーバ10の動作について説明する。
図3は、サーバ10によって実行される地図画像出力処理の一例を示すフロー図である。この処理は、サーバ10によって、ユーザに対応するユーザ要素が配置された地図画像を用いた様々なサービスを端末装置30に対して提供する際に実行され、具体的には、例えば、こうした地図画像の出力要求(更新要求を含む)がなされたときに実行される。なお、こうした地図画像の出力要求は、端末装置30によってなされる場合の他、サーバ10における他の処理(例えば、地図画像出力用プログラム50以外の他のプログラムを実行することによって実現される他の処理)によってなされ得る。
【0027】
地図画像出力処理では、まず、図示するように、各ユーザの現在地に基づいて、地図画像にユーザ要素を配置するユーザを特定する(ステップS112)。具体的には、各ユーザの現在地に基づいて、出力要求のなされた地図画像に対応する地理的範囲内に所在するユーザを抽出し、この抽出したユーザを、地図画像にユーザ要素を配置するユーザとして特定する。各ユーザの現在地は、例えば、GPS受信機37等によって取得された地理的位置を端末装置30から定期的に取得し、この取得した地理的位置を端末装置30を操作するユーザ毎に記憶することによって管理することができる。こうした各ユーザの現在地は、サーバ10によって管理するようにしても良いし、サーバ10が通信可能な他のサーバ等によって管理するようにしても良い。一実施形態においては、地図画像に対応する地理的範囲内に所在するユーザを抽出する際には、この地図画像を用いたサービスの登録ユーザとして管理されているユーザの中から抽出する。また、ユーザ毎に、地図画像へのユーザ要素の配置の許否(即ち、地図画像への自身の現在地の表示の許否)を設定できるようにし、地図画像へのユーザ要素の配置を許可しているユーザの中からユーザを抽出するようにしても良い。
【0028】
次に、地図画像にユーザ要素を配置する際に用いる現在地を変更するための変更方法及び変更距離を決定する(ステップS114)。変更方法及び変更距離の決定は、様々なルールを適用して行うことができる。
図4は、一実施形態における変更方向及び変更距離を決定するルールを説明するための図である。図示するように、一実施形態では、変更後の現在地(図中、白抜きの三角形74で示す)が、変更前の現在地(図中、黒で塗りつぶされた三角形72で示す)を中心とした円環状領域76の範囲内となるように、変更方向及び変更距離が決定される。この円環状領域76は、変更前の現在地を中心として第1の半径を有する第1の円状領域のうち、同じく変更前の現在地を中心として第1の半径より小さい第2の半径を有する第2の円状領域を除く領域として特定される。変更方向及び変更距離は、例えば、X軸方向の移動距離(図中、点線矢印77で示す)とY軸方向の移動距離(図中、点線矢印77で示す)とによって特定することができる。なお、変更方向及び変更距離を、その他の方法で特定しても良く、例えば、変更方向自体を角度等で特定し、変更距離を変更後の現在地までの直線距離で特定するようにしても良い。このように、一実施形態では、変更後の現在地が円環状領域76の範囲内となるように、変更方向及び変更距離(例えば、X軸方向及びY軸方向それぞれの移動距離)がランダムに決定される。変更方向及び変更距離のランダムな決定は、公知のアルゴリズムを用いて生成した擬似乱数を変数とする演算式等を用いて行うことができる。
【0029】
こうして現在地の変更方向及び変更距離を決定すると、次に、決定された変更方向及び変更距離に従って変更された現在地に対応する地図画像上の位置にユーザ要素を配置する(ステップS116)。具体的には、一実施形態においては、サーバ10において、地図画像にユーザ要素を配置するユーザの変更後の現在地を記憶しておき、この記憶した変更後の現在地に基づいて地図画像上にユーザ要素を配置する。なお、変更後の現在地の管理は行わず、地図画像上にユーザ要素を配置する際に、変更後の現在地に対応する地図画像上の位置にユーザ要素が配置されるよう、その都度、必要な演算処理を行う(例えば、変更後の現在地を演算すると共に、演算した現在地に対応する地図画像上の位置を演算する等)ようにしても良い。
【0030】
そして、ユーザ要素が配置された地図画像を端末装置30に対して出力して(ステップS118)、この地図画像出力処理を終了する。
図5は、一実施形態のサーバ10によって出力されるユーザ要素が配置された地図画像60の一例を示す。この例では、図示するように、地図画像60上に、ユーザに対応するユーザ要素としてのユーザアイコン62、64及び66が配置されている。ユーザアイコン62はこの地図画像60が出力された端末装置30を操作するユーザに対応するユーザ要素であり、ユーザアイコン64及び66は、端末装置30を操作するユーザ以外の他のユーザに対応するユーザ要素である。即ち、
図5の例では、端末装置30を操作するユーザの現在地を中心として地図画像60に対応する地理的範囲内に所在する他のユーザの現在地が、ユーザアイコン64及び66とによって示されている。なお、地図画像上に配置するユーザ要素には、アイコン等の画像の他、テキスト等も含まれ得る。
【0031】
上述したように、ユーザ要素としてのユーザアイコンの地図画像60上の位置は、決定された変更方向及び変更距離に従って変更された現在地に対応する位置となっている。
図6は、地図画像60上におけるユーザ要素の位置とユーザの実際の現在地との関係を示す。図示するように、ユーザアイコン62、64及び66のうち、端末装置30を操作するユーザ以外の他のユーザに対応するユーザ要素であるユーザアイコン64及び66は、変更前の現在地から左上方向に、円環状領域76を構成する外側の円及び内側の円の径方向中央付近へと変更された現在地に対応する地図画像60上の位置に配置されている。一実施形態においては、端末装置30を操作するユーザに対応するユーザアイコン62は、変更前の現在地に対応する地図画像60上の位置にそのまま配置されている。これは、地図画像60が出力される端末装置30を操作するユーザは自身の実際の現在地を知っているため、このユーザに対応するユーザアイコン62の地図画像60上の位置を、他のユーザに対応するユーザアイコン64及び66と同様に変更後の現在地に対応する位置としてしまうと、ユーザアイコン62の移動方向及び移動距離、並びに、他のユーザに対応するユーザアイコン64及び66の地図画像60上の位置に基づいて、地図画像60が出力される端末装置30を操作するユーザは、他のユーザの現在地を容易に推測することができてしまうためである。
【0032】
図7は、地図画像出力処理の実行に応じて
図5に例示した地図画像60が端末装置30に対して出力された後、一定時間経過後に同じ地理的範囲を含む地図画像60の出力要求がなされ、再度、地図画像出力処理を実行して端末装置30に対して出力された地図画像60上におけるユーザ要素の位置とユーザの実際の現在地との関係を示す。この例では、ユーザアイコン64に対応するユーザの現在地は、
図5に例示した地図画像60を出力したときと同じであるが、地図画像出力処理のステップS114において決定される変更方向及び変更距離は、上述したように、円環状領域76の範囲内でランダムに決定されるから、
図5に例示した地図画像60を出力したときとは異なる地図画像60上の位置にユーザアイコン64が配置されている。このように、例えば、地図画像60を出力する都度、上述した変更方向及び変更距離がランダムに決定されるから、同じ地理的範囲を含む地図画像60が繰り返し出力されても、実際の現在地は推測され難い。
【0033】
ここで、一実施形態の地図画像出力処理では、ステップS114において決定された変更方向及び変更距離を他のユーザの全てに適用したが、変更方向及び変更距離をユーザ毎に決定するようにしても良い。
図8は、他の実施形態におけるサーバ10によって出力される地図画像60上におけるユーザ要素の位置とユーザの実際の現在地との関係を示す。図示するように、他の実施形態では、ユーザアイコン64は、変更前の現在地から左下方向に外側の円付近の位置まで移動した地図画像60上の位置に配置され、ユーザアイコン66は、変更前の現在地から上方向に内側の円付近の位置まで移動した地図画像60上の位置に配置されている。このように、ユーザ毎に変更方向及び変更距離を決定することにより、実際の現在地がより一層推測され難くなる。
【0034】
また、一実施形態において、変更された現在地が特定の地理的領域の範囲内とならないようにすることもできる。即ち、通常はユーザが所在しないと考えられる海や河川等の地理的領域に対応する地図画像上の位置にユーザ要素が配置されると、ユーザが違和感を感じてしまう恐れがある。そこで、変更された現在地が特定の地理的領域の範囲内とならないように、海や河川等をユーザ要素を配置しない特定の地理的領域として予め記憶しておき、変更された現在地がこの特定の地理的領域の範囲内となる場合には、現在地の変更方向及び変更距離を決定するステップ(ステップS114)を再度実行したり、ユーザの変更後の現在地を特定の地理的領域の範囲外となるように所定の距離だけ移動させるようにすることもできる。この場合、こうした処理に対応するモジュールを地図画像出力用プログラム50が更に備えるようにすることもできる。これによって、変更された現在地に基づいてユーザ要素を地図画像上に表示した際に、ユーザが違和感を感じてしまうのを抑制することができる。
【0035】
このようにユーザに対応するユーザ要素を配置した地図画像を用いたサービスとしては、例えば、ユーザ間で行われる様々なコミュニケーションを提供するサービスを挙げることができる。この場合、例えば、コミュニケーションを行う候補となる他のユーザに対応するユーザ要素を地図画像上に配置し、この地図画像上に配置されたユーザ要素を選択することによって、コミュニケーションを行う他のユーザを選択できるようにすることができる。こうすれば、他のユーザを選択する際に、正確な現在地を知ることはできないものの、大まかに現在地を知ることはできるから、この大まかな現在地の情報をコミュニケーションの契機とすることができる。
【0036】
以上説明した一実施形態におけるサーバ10では、地図画像の出力要求に応じて、ユーザの現在地(ユーザに対応する地理的位置)を変更するための変更方向及び変更距離を決定し、この決定された変更方法及び変更距離に従って変更された現在地に対応する地図画像上の位置にユーザ要素を配置して出力する。従って、地図画像上に配置されるユーザ要素は、実際の現在地が、地図画像の出力要求の都度、異なる変更方向及び変更距離に変更された現在地に対応する地図画像上の位置となるから、地図画像が出力される端末装置30を操作するユーザが他のユーザの正確な現在地を推測し難くなる。即ち、ユーザのプライバシーに配慮してユーザに対応する位置を地図画像上に表示することができる。
【0037】
また、一実施形態におけるサーバ10では、現在地の変更方向及び変更距離は、変更後の現在地が、変更前の現在地を中心として第1の半径を有する第1の円状領域のうち、同じく変更前の現在地を中心として第1の半径より小さい第2の半径を有する第2の円状領域を除く領域として特定される円環状領域76の範囲内となるように決定される。従って、変更後の現在地は第2の円状領域の範囲内となるから、変更前の現在地から著しく遠い位置となるのを防止することができる。また、変更後の現在地は、第1の円状領域の範囲外となるから、変更前の現在地に著しく近い位置となるのを防止することができる。また、変更方向及び変更距離の両方を決定して現在地を変更するから、変更方向のみを決定して変更距離は固定とする場合、及び、変更距離のみを決定して変更方向は固定とする場合と比較して、他のユーザの正確な現在地をより一層推測し難くすることができる。なお、上述した第1の半径及び第2の半径の具体的な値は、こうした地図画像を用いたサービスの特性等に基づいて適当な値を設定することができる。
【0038】
一実施形態では、現在地の変更方向及び変更距離を、変更後の現在地が円環状領域76の範囲内となるように決定したが、円環状領域76とは異なる他の領域の範囲内となるように決定するようにしてもよい。例えば、変更後の現在地が(第1の円状領域を含む)第2の円状領域の範囲内となるように変更方向及び変更距離を決定するようにしても構わない。また、領域の形状も円環状及び円状に限定されず、例えば、変更後の現在地が、変更前の現在地を基準としてX軸方向とY軸方向に所定の距離を有する矩形状領域の範囲内となるように変更方向及び変更距離を決定するようにすることもできる。さらに、こうした領域を特定することなく、様々な計算式等を用いた様々な変更方向及び変更距離の決定方法を適用し得る。
【0039】
一実施形態では、地図画像の出力要求の都度、地図画像出力処理において現在地の変更方向及び変更距離を決定するようにしたが、必ずしも地図画像の出力要求の都度、毎回、変更方向及び変更距離を決定する(即ち、変更方向及び変更距離を変更する)必要はない。例えば、同一のセッション内においては、地図画像の出力要求(更新要求)が所定回数ある毎に、変更方向及び変更距離を決定するようにしても良い。
【0040】
一実施形態では、ユーザに対応する地理的位置として各ユーザの現在地を例示したが、これに限られず、各ユーザの居住地及び勤務地等、その他の地理的位置を地図画像上で示す様々な実施形態を適用し得る。この場合、GPS受信機37等によって取得された地理的位置でなくとも、ユーザが手入力した住所等の情報によって特定される地理的位置を変更方向及び変更距離に従って変更し、変更後の地理的位置に対応する地図画像上の位置にユーザ要素を配置するようにすることもできる。
【0041】
本明細書で説明された処理及び手順は、実施形態中で明示的に説明されたもの以外にも、ソフトウェア、ハードウェアまたはこれらの任意の組み合わせによって実現される。より具体的には、本明細書で説明される処理及び手順は、集積回路、揮発性メモリ、不揮発性メモリ、磁気ディスク、光ストレージ等の媒体に、当該処理に相当するロジックを実装することによって実現される。また、本明細書で説明される処理及び手順は、それらの処理・手順をコンピュータプログラムとして実装し、各種のコンピュータに実行させることが可能である。
【0042】
本明細書中で説明される処理及び手順が単一の装置、ソフトウェア、コンポーネント、モジュールによって実行される旨が説明されたとしても、そのような処理または手順は複数の装置、複数のソフトウェア、複数のコンポーネント、及び/又は複数のモジュールによって実行され得る。また、本明細書中で説明されるデータ、テーブル、又はデータベースが単一のメモリに格納される旨説明されたとしても、そのようなデータ、テーブル、又はデータベースは、単一の装置に備えられた複数のメモリまたは複数の装置に分散して配置された複数のメモリに分散して格納され得る。さらに、本明細書において説明されるソフトウェアおよびハードウェアの要素は、それらをより少ない構成要素に統合して、またはより多い構成要素に分解することによって実現することも可能である。
【0043】
本明細書において、発明の構成要素が単数もしくは複数のいずれか一方として説明された場合、又は、単数もしくは複数のいずれとも限定せずに説明された場合であっても、文脈上別に解すべき場合を除き、当該構成要素は単数又は複数のいずれであってもよい。