(57)【特許請求の範囲】
【請求項１】
移動体の位置を示すアイコン画像を画面表示する処理をコンピュータに実行させるプログラムであって、前記コンピュータに、
複数の前記移動体についてその位置を記述した位置データを受信する受信ステップであって、前記位置データは上位ビットから下位ビットに向かうにしたがって前記移動体のより詳細な位置を記述するように構成されている、受信ステップ、
各前記位置データ間において最上位ビットから数えて共通している共通ビット桁数を基準として、各前記位置データに対応する各前記移動体を位置的にグループ化するグループ化ステップ、
前記グループ化ステップにおいて同一のグループに属すると判定された各前記移動体に対して単一の前記アイコン画像を割り当てた上で各前記移動体の位置に対応する各前記アイコン画像を画面上に表示する表示ステップ、
を実行させることを特徴とするアイコン表示プログラム。
【請求項２】
前記グループ化ステップにおいては、前記コンピュータに、
複数の前記位置データ間において前記共通ビット桁数が判定閾値以上である場合はその位置データに対応する各前記移動体は同一のグループに属すると判定させ、
前記グループ化ステップにおいてはさらに、前記コンピュータに、
前記アイコン画像が互いに重なり合うことなく前記画面上に配置することができるように、前記判定閾値を算出させる
ことを特徴とする請求項１記載のアイコン表示プログラム。
【請求項３】
前記グループ化ステップにおいては、前記コンピュータに、
前記画面のスクリーンサイズを取得するステップ、
前記画面上における前記アイコン画像のピクセルサイズを取得するステップ、
前記スクリーンサイズに対する前記ピクセルサイズの比を求めることにより、互いに重なり合うことなく前記画面上に配置することができる前記アイコン画像の最大個数を特定するステップ、
各前記移動体が前記最大個数以下のグループにグループ化されるように前記判定閾値を定めるステップ、
を実行させることを特徴とする請求項２記載のアイコン表示プログラム。
【請求項４】
前記位置データは、
前記移動体の２次元座標系における位置を記述するように構成されており、
前記グループ化ステップにおいては、前記コンピュータに、
前記画面の幅方向において互いに重なり合うことなく前記画面上に配置することができる前記アイコン画像の個数と、前記画面の高さ方向において互いに重なり合うことなく前記画面上に配置することができる前記アイコン画像の個数とのうちいずれか少ない方を前記最大個数として採用させる
ことを特徴とする請求項３記載のアイコン表示プログラム。
【請求項５】
前記アイコン表示プログラムは、前記コンピュータに、
前記グループ化によって得られるグループ総数の目標数を取得するステップ、
前記グループ化ステップによって得られたグループ数が前記目標数よりも多い場合は、前記判定閾値を減らした上で前記グループ化ステップと前記表示ステップを再実施することを繰り返すことにより、前記グループ総数を前記目標数に近づけるステップ、
前記グループ化ステップによって得られたグループ数が前記目標数よりも少ない場合は、前記判定閾値を増やした上で前記グループ化ステップと前記表示ステップを再実施することを繰り返すことにより、前記グループ総数を前記目標数に近づけるステップ、
を実行させることを特徴とする請求項１から４のいずれか１項記載のアイコン表示プログラム。
【請求項６】
前記位置データは、ジオハッシュデータとして記述されている
ことを特徴とする請求項１から５のいずれか１項記載のアイコン表示プログラム。
【請求項７】
移動体の位置を示すアイコン画像を画面表示する装置であって、
複数の前記移動体についてその位置を記述した位置データを受信する受信部であって、前記位置データは上位ビットから下位ビットに向かうにしたがって前記移動体のより詳細な位置を記述するように構成されている、受信部、
各前記位置データ間において最上位ビットから数えて共通している共通ビット桁数を基準として、各前記位置データに対応する各前記移動体を位置的にグループ化するグループ化部、
前記グループ化部が同一のグループに属すると判定した各前記移動体に対して単一の前記アイコン画像を割り当てた上で各前記移動体の位置に対応する各前記アイコン画像を画面上に表示する表示部、
を備えることを特徴とするアイコン表示装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動体の位置を示すアイコン画像を画面表示する技術に関するものである。
【背景技術】
【０００２】
近年、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）信号を受信する機能を装備した可搬機器により、人・車両・船舶・航空機などの移動体の緯度経度から構成される位置情報を得ることができる。例えば自動車のプローブ、船舶のＡＩＳ（Ａｕｔｏｍａｔｉｃ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  Ｓｙｓｔｅｍ＝船舶自動識別装置）などの装置が例として挙げられる。
【０００３】
下記特許文献１は、移動体の位置情報を記述するデータ形式として、ジオハッシュを用いている。同文献においては、ジオハッシュが地図上の特定の点ではなく矩形領域を示すものであるため緯度経度と比較して精度が劣ることを課題とし、これを解決する技術を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−０４５３１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
移動体の位置情報をコンピュータディスプレイなどの画面上に表示するとき、各移動体の位置を表すアイコン画像を用いて位置情報を視覚的に表示する場合がある。一般に画像表示は処理負荷が高いため、移動体の個数が多くなるとこれにともなって画面上のアイコン画像数も多くなり、アイコン表示処理が画面表示のボトルネックとなる。また、画面の縮尺範囲が拡大するとその範囲内に含まれる移動体の数も増えるので、これにともなってアイコン画像が増えて処理負荷が増す。
【０００６】
アイコン画像を表示する処理負荷を軽減する手法として、近傍に位置する複数の位置情報をグループ化して単一のアイコン画像を割り当てることが考えられる。これにより表示するアイコン数を減らし、描画速度を改善することが見込まれる。ただし、従前の処理に加えて新たにグループ化処理を実施する必要があるため、その処理速度によっては十分な改善効果が得られない。
【０００７】
本発明は、上記のような課題に鑑みてなされたものであり、移動体の位置情報を効率的にグループ化することにより、移動体の位置を示すアイコン画像を表示するための処理負荷を効果的に削減することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係るアイコン表示プログラムは、上位ビットから下位ビットに向かってより詳細な位置を表すように構成された位置データを用いて移動体の位置を記述し、各位置データ間で共通している上位ビットの桁数に基づき位置データをグループ化する。
【発明の効果】
【０００９】
本発明に係るアイコン表示プログラムによれば、移動体の位置情報を効率的にグループ化し、移動体の位置を示すアイコン画像を表示するための負荷を抑制することができる。
【図面の簡単な説明】
【００１０】
【図１Ａ】緯度を表すハッシュ値について説明する図である。
【図１Ｂ】緯度を表すハッシュ値について説明する図である。
【図１Ｃ】緯度を表すハッシュ値について説明する図である。
【図２Ａ】緯度ハッシュ値と経度ハッシュ値を併せて構成する過程を示す図である。
【図２Ｂ】緯度ハッシュ値と経度ハッシュ値を併せて構成する過程を示す図である。
【図２Ｃ】緯度ハッシュ値と経度ハッシュ値を併せて構成する過程を示す図である。
【図３】緯度経度座標をジオハッシュ値へ変換する過程を示す図である。
【図４】ジオハッシュの各桁と座標値との間の対応関係を示す表である。
【図５】実施形態１に係るアイコン表示装置１０の構成図である。
【図６】位置データベース１２１の構成とデータ例を示す図である。
【図７】アイコンデータベース１２２の構成とデータ例を示す図である。
【図８】比較的狭い地図領域において、四隅の緯度経度座標をジオハッシュに変換した結果を示す図である。
【図９】グループテーブル９０の構成とデータ例を示す図である。
【図１０】描画部１５による描画結果を例示する図である。
【図１１】図８よりも広い地図領域において、四隅の緯度経度座標をジオハッシュに変換した結果を示す図である。
【図１２】グループテーブル９０の別データ例を示す図である。
【図１３】描画部１５による描画結果を例示する図である。
【図１４】グループ化部１３の動作を説明するフローチャートである。
【発明を実施するための形態】
【００１１】
＜ジオハッシュについての説明＞
以下に説明する本発明の実施形態においては、移動体の位置を記述する位置データの形式として、特許文献１において用いられているジオハッシュを用いる。以下ではまずジオハッシュの特徴について説明し、その後に本発明の実施形態について説明する。
【００１２】
地図上の座標を表す際に、矩形領域を用いる場合がある。従来、地図上の矩形領域を表現するためには、例えば矩形領域の対角２点の緯度経度、中心点座標と縦横距離、中心点と１端点、などのように３〜４の数値の組み合わせによって当該矩形領域を表現するのが一般的である。
【００１３】
ジオハッシュは、地図上の矩形領域を示すデータ形式であり、数文字程度の英数字で表記される。文字数を増やすほど、より狭い矩形領域を表現することとなり、表現する座標の精度が高くなる。すなわちジオハッシュの上位ビットは、当該ジオハッシュ値が示す座標を含むより広範囲の領域を表している。
【００１４】
従来の座標形式を用いる場合、複数の座標値をグループ化する処理においては、スクリーン座標系における座標間距離を計算し、その距離が所定閾値以下である場合は同一グループに属するものと判定する。この処理は表示する縮尺範囲に含まれている全ての２点間距離を計算する必要があるため、グループ化処理の負担が大きい。
【００１５】
位置データとしてジオハッシュを用いる場合、複数の座標値をグループ化する処理においては、ジオハッシュの上位ビットが共通であるか否かによって、同一グループに属するか否か（すなわち座標値が互いに近傍であるか否か）を判定することができる。この手法は２点間距離を計算する必要がないため、グループ化処理を高速に実施することができると考えられる。さらにジオハッシュ値そのものは事前に計算することができるので、ジオハッシュ値を求めるための処理負荷は問題とならない。
【００１６】
本発明は、ジオハッシュの上記特徴を利用して、移動体の位置データを効率的にグループ化する。ジオハッシュと同様に、上位ビットから下位ビット（あるいはその反対方向）に向かってより詳細な位置を記述するように構成された位置データであれば、上位ビットが共通するか否かによって座標値が互いに近傍であるか否かを判定することができると考えられる。したがってそのような位置データ形式であれば、ジオハッシュに代えて用いることもできる。以下では説明の便宜上、ジオハッシュを用いることを前提とする。
【００１７】
以下に説明する実施形態においてはジオハッシュを用いるため、２次元座標系の位置データを取り扱うことを前提とする。ただしジオハッシュと同様に上位ビットから下位ビット（あるいはその反対方向）に向かってより詳細な位置を記述するように構成された位置データであれば、例えば１次元座標（すなわち距離）を表すデータや３次元座標を表すデータを取り扱うこともできる。
【００１８】
図１Ａ〜図１Ｃは、緯度を表すハッシュ値について説明する図である。図１Ａは、最初のハッシュ値と緯度の関係を示す。ハッシュ値”０”は緯度−９０°〜０°の範囲を指し、”１”は緯度０°〜９０°を指す。したがって位置１０の緯度ハッシュ値は”１”である。図１Ｂは、２番目のハッシュ値と緯度の関係を示す。ハッシュ値”０”は緯度０°〜４５°、”１”は緯度４５°〜９０°を指す。したがって位置１０の緯度ハッシュ値は”１０”である。図１Ｃは３番目のハッシュ値と緯度の関係を示す。ハッシュ値”０”は緯度０°〜２２．５°、”１”は緯度２２．５°〜４５°を指す。したがって位置１０の緯度ハッシュ値は”１００”である。
【００１９】
図２Ａ〜図２Ｃは、緯度ハッシュ値と経度ハッシュ値を併せて構成する過程を示す図である。図２Ａは、座標空間を経度方向に２分し、それぞれ経度ハッシュ値”０”と”１”を割り当てた状態を示す。図２Ｂは、経度ハッシュ値”１”の領域を緯度方向に２分し、それぞれ緯度ハッシュ値”０”と”１”を割り当てた状態を示す。緯度ハッシュ値は最初の経度ハッシュ値に続いて追加するので、それぞれの領域のハッシュ値は”１１”および”１０”となる。図２Ｃは、ハッシュ値”１１”の領域を経度方向に２分し、それぞれ経度ハッシュ値”０”と”１”を割り当てた状態を示す。以下同様にして経度ハッシュ値と緯度ハッシュ値を交互に割り当て、下位ビットになるほどより詳細な位置を表すように、ハッシュ値を構成する。
【００２０】
図３は、緯度経度座標をジオハッシュ値へ変換する過程を示す図である。ｐｄｅｃｉｍａｌは、緯度３５．６１００５６、経度１３９．７４８６９４の１０進緯度経度座標値である。ｐｄｅｃｉｍａｌは、図２で説明したようにジオハッシュ値ｐｈａｓｈに変換される。ｐｈａｓｈ’は、ｐｈａｓｈの奇数桁を経度ハッシュ値、偶数桁を緯度ハッシュ値として交互に再配置したビット列である。ｐｈａｓｈ’を５桁毎に区切って３２進数表現であるｂａｓｅ−３２に変換した文字列ｐ（ＧｅｏＨａｓｈ）がジオハッシュである。図３に示す処理を逆に辿ることにより、ジオハッシュを１０進緯度経度座標に逆変換することができる。
【００２１】
図４は、ジオハッシュの各桁と座標値との間の対応関係を示す表である。ここでは緯度経度座標（３５．６１００５６, １３９．７４８６９４）を表すジオハッシュを例示した。図４に示すように、ジオハッシュは各桁が矩形領域を表し、下位ビットになるほどその矩形サイズが小さくなる。したがって、２つのジオハッシュを上位ビットから順に比較して共通する桁数が多いほど、その２つのジオハッシュは互いにより近傍の座標を表していることになる。
【００２２】
＜実施の形態１＞
図５は、本実施形態１に係るアイコン表示装置１０の構成図である。アイコン表示装置１０は、移動体の位置を示すアイコン画像を画面表示する装置であり、位置データ入力部１１、データベース部１２、グループ化部１３、表示条件入力部１４、描画部１５、出力部１６を備える。
【００２３】
位置データ入力部１１は、位置データ受信部１１１とジオハッシュ付与部１１２を備える。位置データ受信部１１１は、ＧＰＳ等によって測位した移動体（例えば人、船舶、航空機、車両）の位置を記述した位置データを受信する。この位置データは移動体の送信時座標を記述している。ジオハッシュ付与部１１２は、受信した位置データをジオハッシュに変換し、位置データベース１２１に格納する。位置データ入力部１１の処理は、グループ化部１３や描画部１５の処理とは切り離して独立に実施することができる。位置データ入力部１１は、あらかじめジオハッシュに変換した位置データを受信することもできる。この場合、ジオハッシュ付与部１１２は必要ない。
【００２４】
データベース部１２は、位置データベース１２１、アイコンデータベース１２２、地図データベース１２３を含む。位置データベース１２１は、移動体のジオハッシュを格納する。アイコンデータベース１２２は、描画部１５が移動体の位置を示すアイコン画像を表示する際に用いるアイコン画像を格納する。地図データベース１２３は、描画部１５が描画する背景地図を格納している。
【００２５】
グループ化部１３は、ジオハッシュ処理部１３１とグループ計算部１３２を備える。ジオハッシュ処理部１３１は、ジオハッシュを緯度経度座標に変換し、またはその逆変換を実施する。グループ計算部１３２は、位置データベース１２１が格納しているジオハッシュをグループ化し、位置データベース１２１が保持するグループテーブルに格納する。グループ化処理およびグループテーブルの詳細については後述する。
【００２６】
表示条件入力部１４は、描画部１５が表示する表示地図範囲とスクリーン座標をユーザが指定するためのインターフェースである。
【００２７】
描画部１５は、地図描画部１５１とアイコン描画部１５２を備える。地図描画部１５１は、表示条件入力部１４を介して指定された地図範囲に対応する地図を地図データベース１２３から取得して描画する。アイコン描画部１５２は、位置データベース１２１が格納しているグループテーブル（グループ化部１３によるグループ化結果を格納している）を参照し、アイコンデータベース１２２が格納しているアイコン画像を各グループに対して割り当てて描画する。出力部１６は、描画部１５による描画結果を画面表示する。
【００２８】
位置データ入力部１１、グループ化部１３、描画部１５は、これらの機能を実現する回路デバイスなどのハードウェアを用いて構成することもできるし、これらの機能を実装したソフトウェアをＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などの演算装置が実行することによって構成することもできる。データベース部１２は、ハードディスク装置などの記憶装置を用いて構成することができる。表示条件入力部１４は、適当な操作インターフェースによって構成することができる。出力部１６は、ディスプレイデバイスなどの画面表示デバイスを用いて構成することができる。
【００２９】
図６は、位置データベース１２１の構成とデータ例を示す図である。ここではグループ化していない位置データを格納するテーブルを示す。本テーブルは、移動体ＩＤ１２１１、申告日時１２１２、緯度１２１３および経度１２１４、方向１２１５、ジオハッシュ１２１６、アイコンＩＤ１２１７、名称１２１８を有する。主キーは移動体ＩＤ１２１１と申告日時１２１２である。
【００３０】
移動体ＩＤ１２１１は、移動体を一意に識別するＩＤである。申告日時１２１２は、移動体が位置データを発信した日時である。緯度１２１３および経度１２１４は、位置データが記述している座標値である。方向１２１５は、北をゼロとし右回りの進行方位を示す。ジオハッシュ１２１６は、緯度１２１３および経度１２１４をジオハッシュに変換したものである。アイコンＩＤ１２１７は、当該移動体を画面表示する際に割り当てるアイコン画像を特定するためのＩＤである。名称１２１８は、当該移動体の名称である。
【００３１】
図７は、アイコンデータベース１２２の構成とデータ例を示す図である。アイコンデータベース１２２は、アイコンＩＤ１２２１、幅１２２２、高さ１２２３、幅オフセット１２２４、高さオフセット１２２５、グループアイコンＩＤ１２２６、アイコンデータ１２２７を有する。主キーはアイコンＩＤ１２２１である。
【００３２】
アイコンＩＤ１２２１は、各アイコン画像データを一意に識別するＩＤである。幅１２２２と高さ１２２３は、それぞれアイコン画像のピクセルサイズである。幅オフセット１２２４と高さオフセット１２２５は、アイコン画像の左上端部を原点とするアイコン画像の中心点座標であり、当該アイコン画像に対応する位置データの座標値に相当する。グループアイコンＩＤ１２２６は、当該アイコン画像をグループ化する場合において用いるアイコン画像のアイコンＩＤ１２２１を指定する。グループアイコン画像をさらにグループ化することはないため、グループアイコン画像の本フィールドはＮＵＬＬである。アイコンデータ１２２７は、アイコン画像データである。
【００３３】
図８は、比較的狭い地図領域において、四隅の緯度経度座標をジオハッシュに変換した結果を示す図である。図８に示す例においては、四隅座標のジオハッシュ間の共通部分は”１１１０１１０１００００１１１００１１０１１０００００１０００”であり、共通桁数は３１である。
【００３４】
図９は、グループテーブル９０の構成とデータ例を示す図である。グループテーブル９０は、グループ化部１３が位置データベース１２１内に格納されている位置データをグループ化した結果を格納するテーブルである。ここでは、図８に示す比較的狭い地図領域において、図６の位置データをグループ化した結果得られるデータ例を示した。
【００３５】
グループテーブル９０は、グループＩＤ９１、緯度９２および経度９３、方向９４、アイコンＩＤ９５、名称９６、移動体ＩＤ９７を有する。
【００３６】
グループＩＤ９１は、複数のジオハッシュの共通上位桁を切り出し、Ｂａｓｅ−３２で表現したものである。緯度９２と経度９３と方向９４は、グループ化されない位置データについては元の緯度、経度、方向をそのまま保持し、グループ化される位置データについてはグループＩＤ９１をジオハッシュとして逆変換した緯度、経度を保持し、方向９４はゼロとする。アイコンＩＤ９５は、グループ化されない位置データについては対応するアイコンＩＤ１２２１を保持し、グループ化される位置データについては対応するグループアイコンＩＤ１２２６を保持する。名称９６は、グループ化されない位置データについては対応する名称１２１８を代入し、グループ化される位置データについてはＮＵＬＬを保持する。移動体ＩＤ９７は、グループ化されない位置データについては対応する移動体ＩＤ１２１１を保持し、グループ化される位置データについてはＮＵＬＬを保持する。
【００３７】
図１０は、描画部１５による描画結果を例示する図である。ここでは図８に示す比較的狭い地図領域において、図９のグループテーブルを画面表示した例を示す。地図領域は、スクリーン座標系と地図座標系いずれかの座標系で表現することができる。図１０に示す例においては、スクリーン座標系のスクリーン幅を６００ピクセル、スクリーン高さを４８０ピクセルとし、原点を左上とする各四隅の座標を定義した。同様に地図座標系のスクリーン幅とスクリーン高さを０．００３１２５°とし、原点を左上とする各四隅の座標を定義した。アイコン画像１００１〜１００３は、それぞれ図９の１〜３行目のレコードに対応する。
【００３８】
図１１は、図８よりも広い地図領域において、四隅の緯度経度座標をジオハッシュに変換した結果を示す図である。図８に示す例においては、四隅座標のジオハッシュ間の共通部分は”１１１０１１０１００００１１１００１１０“であり、共通桁数は２０である。
【００３９】
図１２は、グループテーブル９０の別データ例を示す図である。ここでは、図１１に示す比較的広い地図領域において、図６の位置データをグループ化した結果得られるデータ例を示した。地図領域を広くするとスクリーン上において近接する移動体が増えるので、アイコン画像はグループ化され易くなる。図１２に示すデータ例においては、図９のデータ例とは異なり、１行目のレコードはグループ化されているので、方向９４、名称９６、移動体ＩＤ９７は上記規則にしたがってそれぞれ０°、ＮＵＬＬ、ＮＵＬＬになっている。またアイコンＩＤ９５はグループアイコン画像を示す”２”（図７の２行目のレコード）になっている。
【００４０】
図１３は、描画部１５による描画結果を例示する図である。ここでは図１１に示す比較的狭い地図領域において、図１２のグループテーブルを画面表示した例を示す。スクリーン幅とスクリーン高さは０．１°である。アイコン画像１３０１〜１３０２は、それぞれ図１２の１〜２行目のレコードに対応する。
【００４１】
＜処理概要の説明＞
図１４は、グループ化部１３の動作を説明するフローチャートである。以下、図１４の各ステップについて説明する。
【００４２】
（図１４：ステップＳ１４０１）
グループ化部１３は、以下の４つの変数を初期化する。（ａ）ｃ＿ｈａｓｈ：描画部１５が描画する地図範囲内において共通するハッシュ値を格納する変数、（ｂ）ｃ＿ｄｉｇｉｔ：描画部１５が描画する地図範囲において共通するハッシュ値の２進表現の桁数を格納する変数、（ｃ）ｇ＿ｄｉｇｉｔ：位置データが同一のグループに属するか否かを判定する際に用いる共通桁数の閾値を格納する変数、（ｄ）ｇ＿ｔａｂｌｅ：グループテーブル９０。
【００４３】
（図１４：ステップＳ１４０２）
ジオハッシュ処理部１３１は、描画部１５が描画する地図範囲の四隅の位置データをジオハッシュに変換する。ジオハッシュ処理部１３１は、各ジオハッシュを２進数に変換し、最上位ビットから数えて共通する部分をｃ＿ｈａｓｈに格納する。ジオハッシュ処理部１３１は、ｃ＿ｈａｓｈに格納されたジオハッシュの上位桁共通部分の桁数をｃ＿ｄｉｇｉｔに格納する。
【００４４】
（図１４：ステップＳ１４０２：補足）
図８〜図１０で説明したデータ例においては、ｃ＿ｈａｓｈは“１１１０１１０１００００１１１００１１０１１０００００１０００”となり、ｃ＿ｄｉｇｉｔは３１となる。図１１〜図１３で説明したデータ例においては、ｃ＿ｈａｓｈは”１１１０１１０１００００１１１００１１０”となり、ｃ＿ｄｉｇｉｔは２０となる。
【００４５】
（図１４：ステップＳ１４０３〜Ｓ１４０６）
グループ計算部１３２は、描画部１５が地図を描画するスクリーン幅／アイコン幅を求めて変数ｒａｔｉｏ＿ｘに格納し、スクリーン高さ／アイコン高さを求めて変数ｒａｔｉｏ＿ｙに格納する（Ｓ１４０３）。グループ計算部１３２は、ｒａｔｉｏ＿ｘとｒａｔｉｏ＿ｙを比較する（Ｓ１４０４）。ｒａｔｉｏ＿ｘのほうが小さい場合はその２進数桁数をｇ＿ｄｉｇｉｔに格納し（Ｓ１４０５）、ｒａｔｉｏ＿ｙのほうが小さい場合はその２進数桁数をｇ＿ｄｉｇｉｔに格納する（Ｓ１４０６）。ここでは例えばｇ＿ｄｉｇｉｔ＝４になったものとする。
【００４６】
（図１４：ステップＳ１４０３〜Ｓ１４０６：補足その１）
これらステップは、アイコン画像を地図上に隙間なく配置したとき、最大何個のアイコン画像を配置することができるかを求めるものである。すなわち、位置データをグループ化した結果としてグループアイコン画像が互いに重なり合わない（または重なり合う部分がごく僅か）程度の粒度でグループ化を実施することが最も効率的であると考えられるので、これらステップにおいてグループの粒度を求めてｇ＿ｄｉｇｉｔに格納し、以後のステップにおいてこれを利用することとした。
【００４７】
（図１４：ステップＳ１４０３〜Ｓ１４０６：補足その２）
例えばｒａｔｉｏ＿ｘ＝ｒａｔｉｏ＿ｙ＝６であったと仮定する。この場合、地図を縦横それぞれ６個の矩形領域に分割するようにグループ化を実施することが最も効率的であると考えられる。６個のグループを表現するためには３ビット必要であるが、後述するようにジオハッシュの上位３ビットを用いてグループ化を実施すると、最大８個のグループが生じ、グループアイコン画像が互いに重なり合う可能性がある。そこでこれらステップにおいては、ｒａｔｉｏ＿ｘやｒａｔｉｏ＿ｙの２進桁数から１減算した値をｇ＿ｄｉｇｉｔとして採用することとした。
【００４８】
（図１４：ステップＳ１４０７）
グループ計算部１３２は、位置データベース１２１が格納しているレコードのうち申告日時１２１２が最も新しいレコード（合計Ｎレコードと仮定する）それぞれについて、以下のステップを実施する。
【００４９】
（図１４：ステップＳ１４０８〜Ｓ１４０９）
グループ計算部１３２は、位置データベース１２１から取得したレコードを変数ｒｏｗに格納する（Ｓ１４０８）。グループ計算部１３２は、ｒｏｗが保持している座標（緯度１２１３と経度１２１４）が地図範囲内であるか否かを判定する（Ｓ１４０９）。範囲外であればステップＳ１４０７へ戻って次のレコードを処理し、範囲内であればステップＳ１４１０へ進む。例えば図６の移動体ＩＤ１２１１＝“２３４５６７１”は地図範囲外であるため本ステップの対象外となる。
【００５０】
（図１４：ステップＳ１４１０〜Ｓ１４１２）
グループ計算部１３２は、ｒｏｗが保持しているジオハッシュ１２１６を２進数表現に変換し、上位（ｃ＿ｄｉｇｉｔ＋２＊ｇ＿ｄｉｇｉｔ）桁を抽出することによりグループＩＤを生成する（Ｓ１４１０）。グループ計算部１３２は、生成したグループＩＤがｇ＿ｔａｂｌｅ内に存在するか否かを判定する（Ｓ１４１１）。存在しない場合は新たなレコードをｇ＿ｔａｂｌｅに挿入し（Ｓ１４１２）、存在する場合はステップＳ１４１３へ進む。
【００５１】
（図１４：ステップＳ１４１０：補足）
ｃ＿ｄｉｇｉｔは描画部１５が描画する地図範囲内において共通する上位ビットであるため、同範囲内に存在する位置データの上位ｃ＿ｄｉｇｉｔビットは必ず共通する。またジオハッシュは経度ビットと緯度ビットを交互に配置するため、ｇ＿ｄｉｇｉｔの値は２倍する必要がある。したがって本ステップにおいては、ｃ＿ｄｉｇｉｔ＋２＊ｇ＿ｄｉｇｉｔをグループＩＤとすることにした。
【００５２】
（図１４：ステップＳ１４１２：補足）
本ステップは、単一の位置データによって構成される新たなグループを生成することに相当する。したがってグループ計算部１３２は、ｒｏｗが保持している緯度１２１３、経度１２１４、方向１２１５、アイコンＩＤ１２１７、名称１２１８、移動体ＩＤ１２１１をｇ＿ｔａｂｌｅへそのまま格納する。
【００５３】
（図１４：ステップＳ１４１３）
グループ計算部１３２は、生成したグループＩＤに対応するアイコンＩＤ９５がグループアイコンであるか否かを確認する。具体的には、アイコンＩＤ９５をキーにしてアイコンデータベース１２２を参照し、グループアイコンＩＤ１２２６がＮＵＬＬであればそのアイコンＩＤ９５はグループアイコン画像であることになる。グループアイコンでなければステップＳ１４１４へ進み、グループアイコンであればステップＳ１４０７へ戻って次のレコードを処理する。
【００５４】
（図１４：ステップＳ１４１３：補足）
ｇ＿ｔａｂｌｅ内に既に同一のグループＩＤが存在し、かつそのグループＩＤのアイコンＩＤ９５がグループアイコンである場合（本ステップにおけるＮｏの場合）、当該グループＩＤは既にグループ化されているため、新たな処理は必要でない。したがってこの場合はステップＳ１４０７へ戻る。ｇ＿ｔａｂｌｅ内に既に同一のグループＩＤが存在し、かつそのグループＩＤのアイコンＩＤ９５がグループアイコンではない場合（本ステップにおけるＹｅｓの場合）、当該グループＩＤはグループ化されておらず単一の移動体によって構成されているため、ステップＳ１４１０で生成したグループＩＤを当該グループ内に所属させる必要がある。したがってこの場合はステップＳ１４１４に進んでその処理を実施する。
【００５５】
（図１４：ステップＳ１４１４）
グループ計算部１３２は、グループＩＤをジオハッシュとして緯度経度に逆変換した値をそれぞれ緯度９２と経度９３に格納し、方向９４は０とし、名称９６と移動体ＩＤ９７はＮＵＬＬとする。グループ計算部１３２は、先に存在していたレコードのアイコンＩＤ９５をキーにしてアイコンデータベース１２２を参照し、対応するグループアイコンＩＤ１２２６の値をアイコンＩＤ９５に格納する。すなわち、本ステップを実施する前においては単一の位置データのみによって構成されていたレコードが、本ステップによって複数の位置データからなるグループに置き換えられることになる。
【００５６】
＜実施の形態１：まとめ＞
以上のように、本実施形態１に係るアイコン表示装置１０は、ジオハッシュの上位ビットが共通するか否かに基づいて位置データをグループ化し、同一のグループには同一のアイコン画像を割り当てる。これにより、地図上に表示する移動体のアイコン画像を効率的に絞り込み、位置データをグループ化する処理負担を抑制しつつ描画処理速度を向上させることができる。
【００５７】
また本実施形態１に係るアイコン表示装置１０は、ｒａｔｉｏ＿ｘまたはｒａｔｉｏ＿ｙに基づきグループの粒度ｇ＿ｄｉｇｉｔを自動的に決定する。これにより、ユーザがグループ総数などのパラメータを指定することなく、自動的に最適なグループ数を定めることができる。
【００５８】
これに対し本実施形態１において、例えば地図上のグループ総数をあらかじめユーザが表示条件入力部１４経由で指定したい場合も考えられる。この場合は、図１４のフローチャートを終了する直前にグループ総数をカウントし、これが目標数を下回った場合はｇ_ｄｉｇｉｔを増やして図１４を再実施し、目標数を上回った場合はｇ_ｄｉｇｉｔを減らして図１４を再実施してもよい。ただし繰り返し処理が多く発生するため、高速化の観点からは望ましくない。
【００５９】
＜実施の形態２＞
位置データ入力部１１、グループ化部１３、描画部１５をソフトウェアによって構成する場合は、これらソフトウェアはコンピュータ上で動作するスタンドアロンアプリケーションなどの形態で実装することもできるし、Ｗｅｂブラウザ上で動作するアドオンプログラムやスクリプトプログラムなどの形態で実装することもできる。
【００６０】
Ｗｅｂブラウザ上で動作するプログラムとして上記各機能部を実装した場合、位置データ受信部１１１はジオハッシュをＨＴＴＰリクエストによって受信することができる。アイコンデータベース１２２と地図データベース１２３も同様にＨＴＴＰリクエストによってネットワーク経由で取得することができる。位置データベース１２１はＷｅｂブラウザを実行するコンピュータのローカルメモリなどに格納することができる。
【符号の説明】
【００６１】
１０：アイコン表示装置、１１：位置データ入力部、１１１：位置データ受信部、１１２：ジオハッシュ付与部、１２：データベース部、１２１：位置データベース、１２２：アイコンデータベース、１２３：地図データベース、１３：グループ化部、１３１：ジオハッシュ処理部、１３２：グループ計算部、１４：表示条件入力部、１５：描画部、１５１：地図描画部、１５２：アイコン描画部、１６：出力部。
【図１Ａ】
0006055758.tif 000002
【図１Ｂ】
0006055758.tif 000003
【図１Ｃ】
0006055758.tif 000004
【図２Ａ】
0006055758.tif 000005
【図２Ｂ】
0006055758.tif 000006
【図２Ｃ】
0006055758.tif 000007
【図３】
0006055758.tif 000008
【図４】
0006055758.tif 000009
【図５】
0006055758.tif 000010
【図６】
0006055758.tif 000011
【図７】
0006055758.tif 000012
【図８】
0006055758.tif 000013
【図９】
0006055758.tif 000014
【図１０】
0006055758.tif 000015
【図１１】
0006055758.tif 000016
【図１２】
0006055758.tif 000017
【図１３】
0006055758.tif 000018
【図１４】
0006055758.tif 000019