"処理対象領域を所定ビット長に応じたブロックに分割認識し、入力された座標データが示す位置が基準位置から離れるのに応じて基準データと比較したビット値の相違数が徐々に増加する傾向で、前記座標データに対応する所定ビット長の付加データを生成する付加データ生成手段と、前記生成された付加データを、記憶手段に格納された所定ビット長のデータに連結して前記所定ビット長の2倍のビット長のデータを生成し、該生成したデータを前記記憶手段に格納する連結処理手段と、前記連結処理手段により前記記憶手段に格納されたデータのビット長を前記所定ビット長に指定して前記付加データ生成手段に付加データを生成させ、次いで前記連結処理手段にデータを連結して記憶手段に格納させることを繰り返し行う制御手段と、を備える座標コード化装置。請求項1に記載の座標コード化装置であって、前記付加データ生成手段は、前記ブロックに関して一つおきにビット値の相違数が増加するように、前記付加データを生成する手段である、座標コード化装置。請求項2に記載の座標コード化装置であって、前記付加データ生成手段は、次式に基づいて付加データを生成する手段であり、付加データ=~{2n/4-1<<floork/2-n/4}、式中、nは前記所定ビット長であり、~はnot演算子反転であり、<<は左方向への論理シフト演算子であり、floorは切り捨てを意味する関数であり、kは処理対象領域を所定ビット長に応じたブロックに分割認識した際に、入力された座標データがどのブロックに属するかを示す値である、座標コード化装置。処理対象領域を所定ビット長に応じたブロックに分割認識し、入力された座標データが示す位置が基準位置から離れるのに応じて基準データと比較したビット値の相違数が徐々に増加する傾向で、前記座標データに対応する所定ビット長の付加データを生成する処理と、前記生成された付加データを、記憶手段に格納された所定ビット長のデータに連結して前記所定ビット長の2倍のビット長のデータを生成し、該生成したデータを前記記憶手段に格納する処理と、前記連結処理手段により前記記憶手段に格納されたデータのビット長を前記所定ビット長に指定して前記付加データ生成手段に付加データを生成させ、次いで前記連結処理手段にデータを連結して記憶手段に格納させることを繰り返し行う処理と、をコンピュータが実行する座標コード化方法。処理対象領域を所定ビット長に応じたブロックに分割認識し、入力された座標データが示す位置が基準位置から離れるのに応じて基準データと比較したビット値の相違数が徐々に増加する傾向で、前記座標データに対応する所定ビット長の付加データを生成する処理と、前記生成された付加データを、記憶手段に格納された所定ビット長のデータに連結して前記所定ビット長の2倍のビット長のデータを生成し、該生成したデータを前記記憶手段に格納する処理と、前記連結処理手段により前記記憶手段に格納されたデータのビット長を前記所定ビット長に指定して前記付加データ生成手段に付加データを生成させ、次いで前記連結処理手段にデータを連結して記憶手段に格納させることを繰り返し行う処理と、をコンピュータに実行させるプログラム。地理的な座標と距離保存性を満たすコードとが対応付けられたマップデータを格納した記憶手段と、入力された複数の座標データを検索キーとして前記マップデータを検索し、該複数の座標データに対応する複数のコードを取得するデータ検索手段と、該データ検索手段により取得された複数のコードを比較して前記複数の座標データ間の距離を算出する距離算出手段と、を備える距離算出装置。入力された複数の座標データを検索キーとして、地理的な座標と距離保存性を満たすコードとが対応付けられたマップデータを検索し、該複数の座標データに対応する複数のコードを取得する処理と、該取得された複数のコードを比較して前記複数の座標データ間の距離を算出する処理と、をコンピュータが実行する距離算出方法。入力された複数の座標データを検索キーとして、地理的な座標と距離保存性を満たすコードとが対応付けられたマップデータを検索し、該複数の座標データに対応する複数のコードを取得する処理と、該取得された複数のコードを比較して前記複数の座標データ間の距離を算出する処理と、をコンピュータに実行させるプログラム。しかしながら、ジオハッシュ技術は、コードや合成ビット列と座標とが一対一で対応している唯一性を満たすものの、距離保存性を満たさないという問題を孕んでいる。距離保存性を満たさないとは、二点に付与されたコードや合成ビット列に関するいかなる距離の定義も、二点間の距離を保存しないことを意味する。ここで、ブロック距離とは、コードの精度に応じて対象領域をブロックに分割し、座標がいずれのブロックに該当するかで地図及び座標を表現する場合において、二点が何ブロック離れているかを示す値である。すなわち、ブロックとは、この種のコード化技術において座標そのものと同一視できる概念である。図4は、ジオハッシュにおけるブロック距離BDと、ジオハッシュに距離保存性が無いことを説明するための説明図である。本図では、経度が3ビット、緯度が2ビットの精度でコードが付与されている。また、前述の逆変換の都合から、合成ビット列を、上段部分を経度に割り当て、下段部分を緯度に割り当てた二段のデータとして表現している。図示するように、二ブロックにそれぞれ付与された合成ビット列において、対応するビット値が異なる数図中、ハミング距離HDと表記したは、必ずしも二ブロック間のブロック距離と一致しない。また、この結果、二ブロック間におけるコードの擬似的な距離例えばrとsなら1、rとuなら3も、ブロック距離BDを表すものとならない。特に地球面にジオハッシュを適用した場合、赤道や子午線、日付変更線付近等でハミング距離HDとブロック距離BDの関係が大きく変化してしまうことが知られている。距離保存性が無いと、二点の二ブロック分のコードないし合成ビット列を与えられたとしても、即座にブロック距離を導出できないことになる。この結果、コードないし合成ビット列から座標を逆算した上で、別途演算式を立てて距離を演算する必要が生じ、処理負担増や処理遅延を招くおそれがある。本発明はこのような課題を解決するためのものであり、距離保存性を満たすデータを生成することが可能な座標コード化装置等を提供することを、主たる目的とする。上記目的を達成するための第1の態様は、処理対象領域を所定ビット長に応じたブロックに分割認識し、入力された座標データが示す位置が基準位置から離れるのに応じて基準データと比較したビット値の相違数が徐々に増加する傾向で、前記座標データに対応する所定ビット長の付加データを生成する付加データ生成手段と、前記生成された付加データを、記憶手段に格納された所定ビット長のデータに連結して前記所定ビット長の2倍のビット長のデータを生成し、該生成したデータを前記記憶手段に格納する連結処理手段と、前記連結処理手段により前記記憶手段に格納されたデータのビット長を前記所定ビット長に指定して前記付加データ生成手段に付加データを生成させ、次いで前記連結処理手段にデータを連結して記憶手段に格納させることを繰り返し行う制御手段と、を備える座標コード化装置である。本発明によれば、距離保存性を満たすデータを生成することが可能な座標コード化装置等を提供することができる。以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。<第1実施例>以下、図面を参照し、本発明の第1実施例に係る距離算出装置1、距離算出方法、及びプログラムについて説明する。[ハードウエア構成]図5は、本発明の第1実施例に係る距離算出装置1のハードウエア構成例である。距離算出装置1は、例えば、CPUCentralProcessingUnit10と、ドライブ装置12と、補助記憶装置16と、メモリ装置18と、インタフェース装置20と、入力装置22と、ディスプレイ装置24と、を備える情報処理装置である。これらの構成要素は、バスやシリアル回線等を介して接続されている。CPU10は、例えば、プログラムカウンタや命令デコーダ、各種演算器、LSULoadStoreUnit、汎用レジスタ等を有するプロセッサである。ドライブ装置12は、記憶媒体14からプログラムやデータを読み込み可能な装置である。プログラムを記録した記録媒体14がドライブ装置12に装着されると、プログラムが記録媒体14からドライブ装置12を介して補助記憶装置16にインストールされる。記録媒体14は、例えば、CD-ROM、DVDディスク、USBメモリ等の可搬型の記録媒体である。また、補助記憶装置16は、例えば、HDDHardDiskDriveやフラッシュメモリである。プログラムのインストールは、上記のように記憶媒体14を用いる他、インタフェース装置20がネットワークを介して他のコンピュータよりダウンロードし、補助記憶装置16にインストールすることによって行うこともできる。ネットワークは、インターネット、LANLocalAreaNetwork、携帯電話の電波網等である。また、プログラムは、情報処理装置の出荷時に、予め補助記憶装置16やROMReadOnlyMemory等に格納されていてもよい。このようにしてインストール又は予め格納されたプログラムをCPU10が実行することにより、図1に示す態様の情報処理装置が、本実施例の距離算出装置1として機能することができる。メモリ装置18は、例えば、RAMRandomAccessMemoryやEEPROMElectricallyErasableandProgrammableReadOnlyMemoryである。インタフェース装置20は、上記ネットワークとの接続等を制御する。入力装置22は、例えば、キーボードやマウス、タッチパッド、タッチパネル、マイク等である。また、ディスプレイ装置24は、例えば、LCDLiquidCrystalDisplayやCRTCathodeRayTube等の表示装置である。距離算出装置1は、ディスプレイ装置24の他、プリンタ、スピーカ等の他の種類の出力装置を備えてもよい。[機能構成]図6は、本発明の第1実施例に係る距離算出装置1の機能構成例である。距離算出装置1は、合成ビット列マップ生成部30と、データ検索処理部32と、距離算出部34と、を備える。これらの機能ブロックは、補助記憶装置16等に格納されたプログラムソフトウエアをCPU10が実行することにより機能する。なお、これらの機能ブロックが明確に分離したプログラムによって実現される必要はなく、サブルーチンや関数として他のプログラムによって呼び出されるものであってもよい。また、機能ブロックの一部が、ICIntegratedCircuitやFPGAFieldProgrammableGateArray等のハードウエア手段であっても構わない。合成ビット列マップ生成部30は、後述するように、所望のビット長の合成ビット列マップ36を生成して補助記憶装置16やメモリ装置18に格納する。データ検索処理部32は、補助記憶装置16やメモリ装置18、ROM等に格納された合成ビット列マップ36を用いて、入力装置22により入力された二点の座標データに対応する合成ビット列を出力する。入力されるデータには、上記座標データの他、精度を表す指標となる座標精度Nが含まれる。座標データは、例えば処理対象が平面である場合は、x軸とy軸が直交する座標系におけるx座標とy座標の組み合わせで表され、処理対象が球面である場合は、経度v及び緯度wで表される。本発明は、平面と球面のいずれに対しても適用可能であり、双方に対して適用される原理は基本的に同じである。図7は、ビット長が2、4と与えられた場合に、唯一性と距離保存性を満たす合成ビット列の配置合成ビット列マップ362、364を示す図である。また、図8は、ビット長が8と与えられた場合に、唯一性と距離保存性を満たす合成ビット列マップ368を示す図である。本実施例においても、合成ビット列を、上段部分を経度に割り当て、下段部分を緯度に割り当てた二段のデータとして表現する。なお、本図及び以下の説明では、合成ビット列の各ビット値は0か1の二値をとり得るものとする。図中、直線で区画される矩形領域が、平面に対して適用可能な領域Apであり、破線で区画される矩形領域が、球面に対して適用可能な領域Asである。領域Apは、基準位置である00000000が左上、左下、右上、右下のうちいずれかの隅に位置し、領域Asは、基準位置である00000000が上端又は下端左右は不問に位置するように、合成ビット列マップ36から切り出される。なお、これとは逆に、基準位置が、11111111で表されるものとしてもよい。更に、基準位置が01101101で表されると共に、最も遠いブロックが10010010で表されてもよく、基準位置には任意のビット列を割り当ててよい。図7、8に示すように、領域Apにおいて、合成ビット列は全て異なっており唯一性を満たす、任意の二ブロック間でブロック距離BDとハミング距離HDは一致している距離保存性を満たす。ハミング距離HDとは、前述のように、二ブロックにそれぞれ付与された合成ビット列において、対応するビット値が異なる数、すなわち反転ビット数である。また、領域Asにおいても唯一性と距離保存性を満たすのであるが、日付変更線=左右の端部をまたがって繋がるブロック間でもブロック距離BDとハミング距離HDが一致する点が領域Apと異なる。[合成ビット列マップ36の生成]以下、図7、8で示した合成ビット列マップ36の生成方法について説明する。図9は、合成ビット列マップ36を生成するための処理の流れを示すフローチャートである。本フローは、合成ビット列マップ生成部30により実行される。まず、合成ビット列マップ生成部30は、最短ビット長であるビット長=2の初期データを生成してメモリ装置18等に格納するS100。以下、図7、8で示したように領域が分割され、それぞれにビット列が割り当てられたデータ構造を、グリッドと称する。図10は、ビット長=2の初期グリッドと、各ブロックの左上隅のブロックからのハミング距離を示す図である。図10から明らかなように、初期グリッドにおいて、ブロック距離BDとハミング距離HDは一致している。次に、合成ビット列マップ生成部30は、入力グリッド内のビット列を2倍にしたデータ領域を確保すると共に、元々のデータをデータ領域内に埋め込み、それ以外の部分をブランクデータとしたデータ構造を生成してメモリ装置18等に格納するS102。以下、このようなグリッドデータを、プレイスホルダグリッド37と称する。なお、始めて本ステップを実行する場合は、入力グリッド=初期グリッドとなる。図11は、図10の初期グリッドから生成される、ビット長=4のプレイスホルダグリッド374を例示した図である。図中、ブランクデータをで表現した。プレイスホルダグリッド37におけるブランクデータの配置は、図示するように上段部分と下段部分のそれぞれの後半部分下位ビットと定めてもよいし、上段部分と下段部分における他の部分前半部分、中央部分等と定めてもよい。なお、合成ビット列における上段部分は経度を表し、下段部分は緯度を表すのであるから、上段部分と下段部分に配分されるブランクデータは同数であることが望ましい経度と緯度で精度が異なる場合はこの限りでない。合成ビット列が上段部分と下段部分を分けない場合、合成ビット列の末尾等の任意の位置に追加してもよい。例えば、合成ビット列01の部分をブランクデータとしてもよいし、01の部分をブランクデータとしてもよいし、01の部分をブランクデータとしてもよい。次に、合成ビット列マップ生成部30は、プレイスホルダグリッド37を、同一の合成ビット列が2×2の行列をなすように、縦横がそれぞれ2倍の大きさに拡張してメモリ装置18等に格納するS104。図12は、2倍の大きさに拡張されたビット長=4のプレイスホルダグリッド374を例示した図である。次に、合成ビット列マップ生成部30は、プレイスホルダグリッド37のビット長に対応するマスクデータ38を生成してメモリ装置18等に格納するS106。マスクデータ38は、例えば、グリッドの中央部分に0が多く配置され、周辺部分に1が多く配置されるような一定の規則で生成される。逆に、グリッドの中央部分に1が多く配置され、周辺部分に0が多く配置されるようにしてもよい。また、前述のように、中央部分に任意のデータが配置され、周辺部分に当該任意のデータからの反転ビット数が多くなるようなデータが配置されてもよい。この結果、あるブロックと基準位置例えば中央付近のブロックとの間のブロック距離が大きくなるほど、当該基準位置のブロックに格納された合成ビット列と比較して、ビット値の相違数反転ビット数が増加する傾向を示すことになる。図13は、このような規則によって生成されるビット長=4のマスクデータ384を例示した図である。合成ビット列マップ生成部30は、マスクデータ38を生成すると、これをプレイスホルダグリッド37のブランクデータ部分に代入して合成ビット列マップ36を生成し、メモリ装置18等に格納するS108。図14は、プレイスホルダグリッド374とマスクデータ384から合成ビット列マップ364が生成される様子を示す図である。図示するように、生成された合成ビット列マップ364から切り出された領域Ap、Asは、唯一性と距離保存性を満たしている。次に、合成ビット列マップ生成部30は、生成した合成ビット列マップのビット長nが2N以上であるか否かを判定するS110。座標精度Nは、H-L/2N以上離れている2地点を区別することを保証するという意味を有する指標値である。また、座標精度Nは、S102~S108の領域分割処理を何回行うかを指定する値でもある。ビット長nが2N未満であれば、直近に生成した合成ビット列マップ36を入力グリッドに指定してS102に戻る。合成ビット列マップ生成部30は、このような処理を、ビット長nが2N以上となるまで繰り返し実行する。図15は、ビット長=4の合成ビット列マップ364からビット長=8のプレイスホルダグリッド378が生成される様子を示す図である。そして、図16は、ビット長=8のプレイスホルダグリッド378とビット長=8のマスクデータ388から、ビット長=8の合成ビット列マップ368が生成される様子を示す図である。このような処理によって、唯一性と距離保存性を満たす、所望のビット長の合成ビット列マップ36を生成することができる。合成ビット列マップ36は、例えば、座標データ、すなわち地理的な座標に対応付けられて格納される。合成ビット列マップ36が地理的な座標に対応付けられた様子については、後述する第2実施例の図23を援用する。図中、縦横の[-300~500]が地理的な座標を示している。データ検索処理部32は、入力装置22により入力された二点の座標データに対応するブロックを合成ビット列マップ36上で検索し、当該二つのブロックに格納された合成ビット列を出力する。距離算出部34は、データ検索処理部32が出力した二つの合成ビット列間の反転ビット数をカウントし、反転ビット数に応じたブロック距離を二点間の距離として出力する。合成ビット列マップ36が唯一性と距離保存性を満たすことにより、反転ビット数をカウントするという簡易な処理によって二点間の距離を算出することができる。なお、合成ビット列マップ36は、予め補助記憶装置16やROM等に格納されているものを用いてもよい。この場合、合成ビット列マップ生成部30は必須の構成でない。[まとめ]以上説明した本実施例の距離算出装置1によれば、唯一性と距離保存性を満たす合成ビット列マップ36を用いて複数の座標に対応する合成ビット列を抽出し、反転ビット数をカウントすることによって、複数の座標間の距離を簡易に算出することができる。<第2実施例>以下、図面を参照し、本発明の第2実施例に係る座標コード化装置2、座標コード化方法、及びプログラムについて説明する。[ハードウエア構成]については、第1実施例と共通するため、図5を参照すると共に同一の符号を援用し、各構成要素についての説明を省略する。[機能構成]図17は、本発明の第2実施例に係る座標コード化装置2の機能構成例である。座標コード化装置2は、マスター制御部40と、付加データ生成部42と、連結処理部44と、変換処理部46と、を備える。これらの機能ブロックは、補助記憶装置16等に格納されたプログラムソフトウエアをCPU10が実行することにより機能する。なお、これらの機能ブロックが明確に分離したプログラムによって実現される必要はなく、サブルーチンや関数として他のプログラムによって呼び出されるものであってもよい。また、機能ブロックの一部が、ICやFPGA等のハードウエア手段であっても構わない。マスター制御部40は、入力装置22により入力された座標データに対応する合成ビット列を出力するように、付加データ生成部42及び連結処理部44を制御する。入力されるデータには、上記座標データの他、精度を表す指標となる座標精度Nが含まれる。座標データは、第1実施例と同様、例えば処理対象が平面である場合は、x軸とy軸が直交する座標系におけるx座標とy座標の組み合わせで表され、処理対象が球面である場合は、経度v及び緯度wで表される。本発明は、平面と球面のいずれに対しても適用可能であり、双方に対して適用される原理は基本的に同じである。[座標データから合成ビット列を導出する処理]付加データ生成部42は、第1実施例で説明したマスクデータ38を生成する処理に準じた処理を行う。また、連結処理部44は、第1実施例で説明したプレイスホルダグリッド37を用意してマスクデータ38を格納し、合成ビット列マップ36を生成する処理に準じた処理を行う。但し、いずれの機能ブロックも、具体的に第1実施例のようなマップデータグリッドを生成せずに、以下に説明するアルゴリズムによって座標データをビット列に変換する。これらの機能ブロックの具体的な処理については、図21、22のフローに則して説明する。図18は、平面を処理対象とする場合に、座標コード化装置2によって実行される処理の概要を示すフローチャートである。ここでは、入力される座標データをx,y、出力される合成ビット列をs、x座標の下限値をLx,上限値をHx、y座標の下限値をLy,上限値をHy、座標精度をNとする。ここで、x座標の下限値Lxや上限値Hxは、第1実施例で説明した領域Apの外縁と一致するか、それよりも内側となるように、予め定めておく。同様に、y座標の下限値Lyや上限値Hyは、第1実施例で説明した領域Apの外縁と一致するか、それよりも内側となるように、予め定めておく。まず、座標コード化装置2は、下限値Lxと上限値Hxの間の座標xをビット列に変換し、sxを出力するS200。次に、座標コード化装置2は、下限値Lyと上限値Hyの間の座標yをビット列に変換し、syを出力するS202。ここで、座標x,yのいずれかが下限値と上限値の間から逸脱している場合は、エラー出力等を行うものとする。次に、座標コード化装置2は、sxを偶数ビットとし、syを奇数ビットとする合成ビット列sを生成して出力するS204。図19は、ビット列sxとsyから合成ビット列sを生成する様子を示す図である。なお、合成ビット列の生成規則については、これに限らず、第1実施例で説明したように種々の規則を採用してよい。また、図20は、球面を処理対象とする場合に、座標コード化装置2によって実行される処理の概要を示すフローチャートである。ここでは、入力される座標データをv,w、出力される合成ビット列をs、経度vの下限値を-180,上限値を180、緯度wの下限値を-90,上限値を90、座標精度をNとする。ここで、x座標の下限値Lxや上限値Hxは、第1実施例で説明した領域Asの外縁と一致するか、それよりも内側となるように、予め定めておく。同様に、y座標の下限値Lyや上限値Hyは、第1実施例で説明した領域Asの外縁と一致するか、それよりも内側となるように、予め定めておく。まず、座標コード化装置2は、下限値-180と上限値180の間の座標vをビット列に変換し、svを出力するS300。次に、座標コード化装置2は、下限値-90と上限値90の間の座標wをビット列に変換し、swを出力するS302。ここで、座標v,wのいずれかが下限値と上限値の間から逸脱している場合は、エラー出力等を行うものとする。次に、座標コード化装置2は、svを偶数ビットとし、swを奇数ビットとする合成ビット列sを生成して出力するS304。合成ビットの生成については、図19を参照することとし、説明を省略する。詳細説明以下、図18のS200及びS202、並びに図20のS300及びS302における座標をビット列に変換する処理について、より詳細に説明する。まず、横方向の座標x又はvをビット列に変換する処理について説明する。図21は、座標コード化装置2により実行される、座標x又はvをビット列に変換する処理の流れを示すサブフローである。図18のS200、並びに図20のS300では、本図で示す処理に準じた処理が行われる。ここでは、座標xをビット列sxに変換する処理についてのみ説明するが、座標vをビット列svに変換する処理についても同様である。まず、マスター制御部40は、合成ビット列sの初期ビット長nを2と定義しS400、座標xが区間[Lx,Mに含まれるかどうかを判定するS402。ここで、LxやHxは、領域ApやAsを切り出す前の合成ビット列マップ36の外縁唯一性を満たす領域の外縁を示しており、Mは、LxとHxの中間点{LxHx/2}である。座標xが区間[Lx,Mに含まれる場合は、ビット列sxの初期値を0とするS404。一方、座標xが区間[M,Hx]に含まれる場合は、ビット列sxの初期値を1とするS406。次に、マスター制御部40は、ビット長nが2N以上であるか否かを判定するS408。座標精度Nは、H-L/2N以上離れている2地点を区別することを保証するという意味を有する指標値である。また、座標精度Nは、S410~S416のループ処理を何回行うかを指定する値でもある。ビット長nが2N未満である場合は、付加データ生成部42が、ビット長nを2倍しS410、区間[Lx,Hx]をn等分した区間群のうち、座標xが属する区間の番号をiと定義するS412。ここで、iは、1≦i≦nを満たし、例えば左側の区間から順に1、2、3、...、nとカウントされる。そして、次式1で表される付加データbe,iを算出するS414。なお、付加データbe,iの添え字eは、evenすなわち偶数ビット=二段の合成ビット列の内、上段のビット列を表している。式中、~はnot演算子反転であり、<<は左方向への論理シフト演算子であり、floorは切り捨てを意味する関数である。be,i=~{2n/4-1<<floori/2-n/4}...1ここで、付加データbe,iを算出する処理は、第1実施例で説明したビット長nのマスクデータ38から、横方向の位置がiで表されるブロックに格納されたビット列の上段部分を取り出す処理と等価である。第1実施例では全体のマスクデータ38を生成した後に該当箇所のビット列を取り出すものとして説明したが、第2実施例では該当箇所のビット列を直接的に算出することができる。付加データbe,iが算出されると、連結処理部44が、付加データbe,iをビット列sxに連結して新たなビット列sxとしてメモリ装置18等に格納するS416。そして、再度S408の判定を行う。マスター制御部40は、S408においてビット長nが2N以上であると判定した場合は、その時点でメモリ装置18等に格納されているビット列sxを出力してS418本フローを終了する。次に、縦方向の座標y又はwをビット列に変換する処理について説明する。図22は、座標コード化装置2により実行される、座標y又はwをビット列に変換する処理の流れを示すサブフローである。図18のS202、並びに図20のS302では、本図で示す処理に準じた処理が行われる。ここでは、座標yをビット列syに変換する処理についてのみ説明するが、座標wをビット列swに変換する処理についても同様である。まず、マスター制御部40は、合成ビット列sの初期ビット長nを2と定義しS500、座標yが区間[Ly,Mに含まれるかどうかを判定するS502。ここで、Mは、LyとHyの中間点{LyHy/2}である。なお、LyやHyは、領域ApやAsを切り出す前の合成ビット列マップ36の外縁を示している。座標yが区間[Ly,Mに含まれる場合は、ビット列syの初期値を0とするS504。一方、座標yが区間[M,Hy]に含まれる場合は、ビット列syの初期値を1とするS506。次に、マスター制御部40は、ビット長nが2N以上であるか否かを判定するS508。座標精度Nは、H-L/2N以上離れている2地点を区別することを保証するという意味を有する指標値である。また、座標精度Nは、S510~S516のループ処理を何回行うかを指定する値でもある。ビット長nが2N未満である場合は、付加データ生成部42が、ビット長nを2倍しS510、区間[Ly,Hy]をn等分した区間群のうち、座標yが属する区間の番号をiと定義するS512。ここで、iは、1≦i≦nを満たし、例えば下側の区間から順に1、2、3、...、nとカウントされる。そして、次式2で表される付加データbo,iを算出するS514。なお、付加データbo,iの添え字oは、oddすなわち奇数ビット=二段の合成ビット列の内、下段のビット列を表している。式中、~はnot演算子反転であり、<<は論理シフト演算子である。bo,i=~{2n/4-1<<floorj/2-n/4}...2ここで、付加データbo,iを算出する処理は、第1実施例で説明したビット長nのマスクデータ38から、縦方向の位置がjで表されるブロックに格納されたビット列の下段部分を取り出す処理と等価である。第1実施例では全体のマスクデータ38を生成した後に該当箇所のビット列を取り出す処理として説明したが、第2実施例では該当箇所のビット列を直接的に算出することができる。付加データbo,iが算出されると、連結処理部44が、付加データbo,iをビット列syに連結して新たなビット列syとしてメモリ装置18等に格納するS516。マスター制御部40は、S508においてビット長nが2N以上であると判定した場合は、その時点でメモリ装置18等に格納されているビット列syを出力してS518本フローを終了する。ここで、付加データ生成部42により算出される付加データの性質について補足する。付加データは、第1実施例におけるマスクデータ38と同じ性質を有しており図13、16を参照、マスクデータ38は、上式1、2を用いて生成することができる。換言すると、付加データ生成部42が付加データを生成する処理は、マスクデータ38を生成した上で所望のブロックからマスクデータを取り出す処理と同じ意義を有している。付加データbe,i、bo,iのビット長は、それぞれビット長nの1/4となり、これらを合成して二段とした合成付加データのビット長は、ビット長nの1/2となる。また、例えば、付加データbe,i上段は、水平方向に関して中央の2列分のブロックはすべてのビットが0となり、中央より右のブロックでは、一ブロックおきに、下位ビットから順に0から1に置き換えられ、右端ですべてのビットが1となる。中央より左のブロックでは、一ブロックおきに、上位ビットから0から1に置き換えられ、右端ですべてのビットが1となる。また、付加データbo,i下段は、垂直方向に関して中央の2列分のブロックはすべてのビットが0となり、中央より下のブロックでは、一ブロックおきに、下位ビットから順に0から1に置き換えられ、下端ですべてのビットが1となる。中央より上のブロックでは、一ブロックおきに、上位ビットから0から1に置き換えられ、上端ですべてのビットが1となる。なお、前述したように、付加データにおける0と1の関係は、逆でも構わないし、必ずしも中央付近のブロックに0又は1を偏在させる必要は無い。また、連結処理部44がデータを連結する処理は、拡大後のプレイスホルダグリッド37にマスクデータ38を代入する処理と同じ意義を有している。一見すると、第2実施例ではプレイスホルダグリッド37の拡大処理に相当する処理は行っていないように見えるが、実際には、付加データの算出時に前回のビット列と比較して精度を2倍にしている関係で、拡大処理と代入処理がまとめて行われている。これらより、付加データが変化しないブロック間では連結対象のビット列sx又はsyのビット値が変化し、付加データが変化するブロック間では連結対象のビット列sx又はsyが変化しないという関係が得られる。これらの結果、1ブロック毎にビット値が変化する傾向で合成ビット列sが決定されることになる。このような関係については、第1実施例で示した図14を参照することにより、理解することができる。図14におけるaで示すブロック間では、マスクデータ384の内容は変化しないが、プレイスホルダグリッド374の内容は変化する。逆に、図14におけるbで示すブロック間では、マスクデータ384の内容は変化するが、プレイスホルダグリッド374の内容は変化しない。マスクデータ38と同様の性質を有する付加データは、プレイスホルダグリッド37と同様の性質を有する連結対象のビット列との間で、同様の関係が成立している。従って、1ブロック毎にビット値が変化する傾向で合成ビット列sを決定することができる。こうしてビット列sx、syが生成されると、これを合成して合成ビット列sを得ることになる図18のS204、並びに図20のS304。このように得られた合成ビット列sをそのままコードとして出力してもよいし、変換処理部46がbase32等を用いてテキストデータに変換して出力してもよい。いずれの場合も、唯一性と距離保存性を満たすコードを出力することができる。従って、二点の座標データに基づき出力されたコードを利用して、第1実施例と同様に距離を簡易に算出することができる。なお、合成ビット列sをアルゴリズムによって算出することを説明したが、予め合成ビット列マップ36を作成又はインストールして補助記憶装置16等に格納しておき、これを入力された座標データに適用して合成ビット列sを出力してもよい。更に付言すると、第1実施例で説明した合成ビット列マップ36を生成する処理は、幾何的な領域分割に限らず、第2実施例に係るフローを領域内に存在し得る全ての座標データについて網羅的に行い、結果を格納することによっても行うことができる。前述したように、公知のジオハッシュ等のように距離保存性が無いマップを用いた場合、二点のコードないし合成ビット列を与えられたとしても、即座にブロック距離を導出できない。この結果、コードないし合成ビット列から座標を逆算して距離を演算する必要が生じ、処理負担増や処理遅延を招くおそれがある。これに対し、座標コード化装置2では、唯一性と距離保存性を満たす合成ビット列を生成するため、これを用いて、簡易な処理によって二点間の距離を算出することができる。[動作例]以下、本実施例の座標コード化装置2の動作例を示す。図23は、合成ビット列sが決定される様子を、合成ビット列マップ36に則して模式的に示す図である。本図は、対象領域が平面であるものとする、また、領域Apの左上隅のブロックの座標を0,0、右下隅の座標を500,500とする単位は[m]等、任意に決定される。このとき、座標データ350,150に対応する合成ビット列sを、座標精度N=3で取得する。ここで、合成ビット列マップ36の唯一性を満たす領域は、x:[-300,500]、y:[-300,500]で表されるため、Lx=-300、Hx=500、Ly=-300、Hy=500である。まず、x=350から図21のフローに基づき偶数ビット列sxを生成する。S400において合成ビット列の初期ビット長nが2と定義され、座標x=350が区間[100,500]に含まれるため、ビット列sxの初期値が1となるS402~S406。S408においては、n=2<23であるためS410に進む。S410においてnが2倍されて4となり、S412においてx=350は区間[-300,500]を4等分した区間群の左から4番目に当たるため、i=4と定義される。この結果、S414において付加データbe,4は、次式3で示すように、1となる1を1ビット論理シフトすると0、これの反転は1である。be,4=~{24/4-1<<floor4/2-4/4}=~1<<1=1...3そして、S416において、付加データbe,4=1をビット列sx=1に連結して新たなビット列sx=11が生成され、S408に戻る。S408においては、n=4<23であるためS410に進む。S410においてnが2倍されて8となり、S412においてx=350は区間[-300,500]を8等分した区間群の左から7番目に当たるため、i=7と定義される。この結果、S414において付加データbe,7は、次式4で示すように、01となる3すなわち11を1ビット論理シフトすると10、これの反転は01である。be,7=~{28/4-1<<floor7/2-8/4}=~3<<1=01...4そして、S416において、付加データbe,7=01をビット列sx=11に連結して新たなビット列sx=1101が生成され、S408に戻る。S408においては、n=8≧23であるため、S418に進み、ビット列sx=1101が出力される。次に、y=150から図22のフローに基づき奇数ビット列syを生成する。S500において合成ビット列の初期ビット長nが2と定義され、座標y=150が区間[100,500]に含まれるため、ビット列syの初期値が1となるS502~S506。S508においては、n=2<23であるためS510に進む。S510においてnが2倍されて4となり、S512においてy=150は区間[-300,500]を4等分した区間群の上から3番目に当たるため、j=3と定義される。この結果、S514において付加データbo,3は、次式5で示すように、0となる。bo,3=~{24/4-1<<floor3/2-4/4}=~1<<0=0...5そして、S516において、付加データbo,3=0をビット列sy=1に連結して新たなビット列sy=10が生成され、S508に戻る。S508においては、n=4<23であるためS510に進む。S510においてnが2倍されて8となり、S512においてy=150は区間[-300,500]を8等分した区間群の上から5番目に当たるため、j=5と定義される。この結果、S514において付加データbo,5は、次式6で示すように、00となる。bo,5=~{28/4-1<<floor5/2-8/4}=~3<<0=00...6そして、S516において、付加データbo,5=00をビット列sx=10に連結して新たなビット列sy=1000が生成され、S508に戻る。S508においては、n=8≧23であるため、S518に進み、ビット列sy=1000が出力される。この結果、ビット列sxとビット列syから交互に1ビットずつ上位ビットから読み出した合成ビット列s=11100010二段で表すとすれば、上段1101、下段1000が座標データ350,150について得られる。また、同様の処理を座標データ50,50に対して行うと、合成ビット列s=00000000二段で表すとすれば、上段0000、下段0000となる。また、座標データ250,250に対して行うと、合成ビット列s=11000011二段で表すとすれば、上段1001、下段1001となる。以下、座標データ350,150を座標A、座標データ50,50を座標B、座標データ250,250を座標Cとする。これらについて得られた合成ビット列sは、座標精度N=3であるため、合成ビット列マップ36の外縁{500--300}を23で除算した結果の100以上離れた点を区別可能な精度を有する。座標Aと座標Bの間のブロック距離BDは、図23を参照すると4ブロック1ブロックの距離に相当する100を乗算すれば400となる。ブロック距離BDは、座標同士の差分の絶対和としても算出できる|350-50||150-50|=400;ブロック数でいうと4。一方、座標Aに対応する合成ビット列sA=11100010、座標Bに対応する合成ビット列sB=00000000であるため、ハミング距離反転ビット数は4である。また、座標Aと座標Cの間のブロック距離BDは、図23を参照すると2ブロック1ブロックの距離に相当する100を乗算すれば200となる。また、座標Aに対応する合成ビット列sA=11100010、座標Cに対応する合成ビット列sB=11000011であるため、ハミング距離反転ビット数は2である。このように、本実施例の座標コード化装置2の処理結果において、ブロック距離BDとハミング距離HDは一致する又は保存されることが確かめられた。[まとめ]以上説明した本実施例の座標コード化装置2によれば、入力された座標データを、唯一性と距離保存性を満たすコードに変換して出力することができる。この結果、コードから距離を導出する処理等を迅速且つ簡易に行わせることができる。<変形等>以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。例えば、ハードウエアの面において、なお、距離算出装置1や座標コード化装置2は、入力から出力まで独立して動作するものに限らず、図24に示すようにネットワーク60に接続されたサーバ装置であってもよい。図24は、第1実施例に係る距離算出装置1や第2実施例に係る座標コード化装置の適用例である。この場合、クライアントコンピュータ50の入力装置50_1に入力された座標データが座標コード化装置2に送信され、座標コード化装置2がクライアントコンピュータ50にコードを返す処理を行う。また、あるいはクライアントコンピュータ50の入力装置50_1に入力されたコードが距離算出装置1に送信され、距離算出装置1がクライアントコンピュータ50に距離を返す処理を行う。以上の説明に関し、さらに以下の項を開示する。付記1処理対象領域を所定ビット長に応じたブロックに分割認識し、入力された座標データが示す位置が基準位置から離れるのに応じて基準データと比較したビット値の相違数が徐々に増加する傾向で、前記座標データに対応する所定ビット長の付加データを生成する付加データ生成手段と、前記生成された付加データを、記憶手段に格納された所定ビット長のデータに連結して前記所定ビット長の2倍のビット長のデータを生成し、該生成したデータを前記記憶手段に格納する連結処理手段と、前記連結処理手段により前記記憶手段に格納されたデータのビット長を前記所定ビット長に指定して前記付加データ生成手段に付加データを生成させ、次いで前記連結処理手段にデータを連結して記憶手段に格納させることを繰り返し行う制御手段と、を備える座標コード化装置。付記2付記1に記載の座標コード化装置であって、前記付加データ生成手段は、前記ブロックに関して一つおきにビット値の相違数が増加するように、前記付加データを生成する手段である、座標コード化装置。付記3付記2に記載の座標コード化装置であって、前記付加データ生成手段は、次式に基づいて付加データを生成する手段であり、付加データ=~{2n/4-1<<floork/2-n/4}、式中、nは前記所定ビット長であり、~はnot演算子反転であり、<<は左方向への論理シフト演算子であり、floorは切り捨てを意味する関数であり、kは処理対象領域を所定ビット長に応じたブロックに分割認識した際に、入力された座標データがどのブロックに属するかを示す値である、座標コード化装置。付記4処理対象領域を所定ビット長に応じたブロックに分割認識し、入力された座標データが示す位置が基準位置から離れるのに応じて基準データと比較したビット値の相違数が徐々に増加する傾向で、前記座標データに対応する所定ビット長の付加データを生成する処理と、前記生成された付加データを、記憶手段に格納された所定ビット長のデータに連結して前記所定ビット長の2倍のビット長のデータを生成し、該生成したデータを前記記憶手段に格納する処理と、前記連結処理手段により前記記憶手段に格納されたデータのビット長を前記所定ビット長に指定して前記付加データ生成手段に付加データを生成させ、次いで前記連結処理手段にデータを連結して記憶手段に格納させることを繰り返し行う処理と、をコンピュータが実行する座標コード化方法。付記5処理対象領域を所定ビット長に応じたブロックに分割認識し、入力された座標データが示す位置が基準位置から離れるのに応じて基準データと比較したビット値の相違数が徐々に増加する傾向で、前記座標データに対応する所定ビット長の付加データを生成する処理と、前記生成された付加データを、記憶手段に格納された所定ビット長のデータに連結して前記所定ビット長の2倍のビット長のデータを生成し、該生成したデータを前記記憶手段に格納する処理と、前記連結処理手段により前記記憶手段に格納されたデータのビット長を前記所定ビット長に指定して前記付加データ生成手段に付加データを生成させ、次いで前記連結処理手段にデータを連結して記憶手段に格納させることを繰り返し行う処理と、をコンピュータに実行させるプログラム。付記6地理的な座標と距離保存性を満たすコードとが対応付けられたマップデータを格納した記憶手段と、入力された複数の座標データを検索キーとして前記マップデータを検索し、該複数の座標データに対応する複数のコードを取得するデータ検索手段と、該データ検索手段により取得された複数のコードを比較して前記複数の座標データ間の距離を算出する距離算出手段と、を備える距離算出装置。付記7入力された複数の座標データを検索キーとして、地理的な座標と距離保存性を満たすコードとが対応付けられたマップデータを検索し、該複数の座標データに対応する複数のコードを取得する処理と、該取得された複数のコードを比較して前記複数の座標データ間の距離を算出する処理と、をコンピュータが実行する距離算出方法。付記8入力された複数の座標データを検索キーとして、地理的な座標と距離保存性を満たすコードとが対応付けられたマップデータを検索し、該複数の座標データに対応する複数のコードを取得する処理と、該取得された複数のコードを比較して前記複数の座標データ間の距離を算出する処理と、をコンピュータに実行させるプログラム。付記9入力されたマップデータに格納されたデータに、それぞれブランクデータを連結した第1のマップデータを生成し、該第1のマップデータを連結したデータを縦横2倍に拡張する第1のマップデータ生成手段と、基準位置から離れるのに応じて基準データと比較したビット値の相違数が徐々に増加する傾向のデータが格納された第2のマップデータを生成する第2のマップデータ生成手段と、を備え、前記第1のマップデータ生成手段により拡張された第1のマップデータのブランクデータ部分に前記第2のマップデータに格納されたデータを代入して距離保存性を満たすマップデータを生成することを繰り返し行うことを特徴とする、コードマップ作成装置。付記10入力されたマップデータに格納されたデータに、それぞれブランクデータを連結した第1のマップデータを生成し、該第1のマップデータを連結したデータを縦横2倍に拡張する処理と、基準位置から離れるのに応じて基準データと比較したビット値の相違数が徐々に増加する傾向のデータが格納された第2のマップデータを生成する処理と、前記第1のマップデータ生成手段により拡張された第1のマップデータのブランクデータ部分に前記第2のマップデータに格納されたデータを代入して距離保存性を満たすマップデータを生成することを繰り返し行う処理と、をコンピュータが実行するコードマップ作成方法。付記11入力されたマップデータに格納されたデータに、それぞれブランクデータを連結した第1のマップデータを生成し、該第1のマップデータを連結したデータを縦横2倍に拡張する処理と、基準位置から離れるのに応じて基準データと比較したビット値の相違数が徐々に増加する傾向のデータが格納された第2のマップデータを生成する処理と、前記第1のマップデータ生成手段により拡張された第1のマップデータのブランクデータ部分に前記第2のマップデータに格納されたデータを代入して距離保存性を満たすマップデータを生成することを繰り返し行う処理と、をコンピュータに実行させるプログラム。付記12距離保存性を満たすマップデータが格納された記憶手段と、入力された座標データを検索キーとして前記マップデータを検索し、該座標データに対応するコードを取得して出力するデータ検索手段と、を備える座標コード化装置。付記13地理的な座標と距離保存性を満たす複数のコードが入力されると、該入力された複数のコードを比較して距離を算出する距離算出装置。"