(57)【特許請求の範囲】
【請求項１】
地域情報検索サーバであって、
全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の階層毎の地図データと、各階層のｎ（ｎは１以上の整数）次メッシュに付与され、（ｉ−１）（ｉは２次以上の整数）次メッシュの緯度方向及び経度方向について２の冪乗個のｉ（ｉは２以上の整数）次メッシュに階層的に分割され、１次〜ｎ次メッシュに付与される１０進数のメッシュ番号が次数の昇順に上位桁に並べて構成され、該ｎ次メッシュを一意に特定するメッシュコードを記録する地図記録部と、
前記地図記録部から所定の階層のメッシュの前記メッシュコードを取得するメッシュコード取得部と、
前記メッシュコード取得部が取得した前記メッシュコードを構成する各次数の前記メッシュ番号を次数ごとに固定長のビット長の２進数に変換し、該各次数の２進数を次数の昇順に上位ビット側に連結して、パックコードに変換するパックコード変換部と、
前記パックコードを緯度に係る緯度コードと経度に係る経度コードに分割し、前記緯度コード及び前記経度コードから成るメッシュ座標に変換するメッシュ座標変換部と、
前記メッシュ座標をメッシュデータ記録部に記録するメッシュ座標格納部と、
を具備したことを特徴とする地域情報検索サーバ。
【請求項２】
地域情報検索サーバであって、
全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の階層の（ｉ−１）（ｉは２次以上の整数）次メッシュの緯度方向及び経度方向について２の冪乗個のｉ（ｉは２以上の整数）次メッシュに分割される階層化されたメッシュ構造において、
各ＰＯＩを一意に特定するＰＯＩ識別子を含みＰＯＩ情報を記憶するＰＯＩ情報記録部と、
前記ＰＯＩ情報記録部を検索して、各ＰＯＩが位置する緯度経度及び前記ＰＯＩ識別子を取得する緯度経度取得部と、
前記緯度経度取得部が取得した緯度に基づく値に第１所定値を乗算した第１値に、前記２の冪乗個のｉ（ｉ＝２〜ｎ，ｎは２以上の整数）次メッシュの緯度方向の個数を２次〜ｎ次まで乗算した第２値を乗算した１０進整数値を２進数に変換した緯度コードを算出する緯度コード算出部と、
前記緯度経度取得部が取得した経度から第２所定値減算した第３値に、前記２の冪乗個のｉ（ｉ＝２〜ｎ，ｎは２以上の整数）次メッシュの経度方向の個数を２次〜ｎ次まで乗算した第２値を乗算した１０進整数値を２進数に変換した経度コードを算出する経度コード算出部と、
前記緯度コードの各ｉ（ｉ＝１〜ｎ，ｎは２以上の整数）次メッシュの前記緯度方向の個数に対応するビット長の該当の２進数値及び前記経度コードの各ｉ（ｉ＝１〜ｎ，ｎは２以上の整数）メッシュの前記経度方向の個数に対応するビット長の該当の２進数値のいずれか一方を上位ビット側にし、次数の昇順に上位ビット側に結合して、パックコードに変換するパックコード変換部と、
前記ＰＯＩ識別子及び前記パックコードをＰＯＩ検索テーブルに格納するパックコード格納部と、
を具備したことを特徴とする地域情報検索サーバ。
【請求項３】
位置情報に基づいて、前記メッシュデータ記録部を検索して、該位置情報が示す地点が含まれる目標メッシュの前記メッシュ座標を取得するメッシュ座標取得部と、前記メッシュ座標に対応する目標メッシュから隣接するメッシュまでの緯度方向のメッシュ数、及び経度方向のメッシュ数を緯度方向及び経度方向に応じて加減算して隣接するメッシュのメッシュ座標を算出する隣接メッシュ座標算出部を更に具備したことを特徴とする請求項１に記載の地域情報検索サーバ。
【請求項４】
地域情報検索サーバにおいて行われる処理方法であって、
全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の階層毎の地図データと、各階層のｎ（ｎは１以上の整数）次メッシュに付与され、（ｉ−１）（ｉは２次以上の整数）次メッシュの緯度方向及び経度方向について２の冪乗のｉ（ｉは２以上の整数）次メッシュに階層的に分割され、１次〜ｎ次メッシュに付与される１０進数のメッシュ番号が次数の昇順に上位桁に並べて構成され、該ｎ次メッシュを一意に特定するメッシュコードを記録する地図記録部から前記地域情報検索サーバが所定の階層のメッシュの前記メッシュコードを取得するステップと、
前記地域情報検索サーバが、前記ステップで取得した前記メッシュコードを構成する各次数の前記メッシュ番号を次数ごとに固定長のビット長の２進数に変換し、該各次数の２進数を次数の昇順に上位ビット側に連結して、パックコードに変換するステップと、
前記地域情報検索サーバが、前記パックコードを緯度に係る緯度コードと経度に係る経度コードに分割し、前記緯度コード及び前記経度コードを並べたメッシュ座標に変換するステップと、
前記地域情報検索サーバが、前記メッシュ座標をメッシュデータ記録部に記録するステップと、
を具備したことを特徴とする処理方法。
【請求項５】
地域情報検索サーバにおいて行われる処理方法であって、
全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の階層の（ｉ−１）（ｉは２次以上の整数）次メッシュの緯度方向及び経度方向について２の冪乗個のｉ（ｉは２以上の整数）次メッシュに分割される階層化されたメッシュ構造において、
前記地域情報検索サーバが、各ＰＯＩを一意に特定するＰＯＩ識別子を含みＰＯＩ情報を記憶するＰＯＩ情報記録部を検索して、各ＰＯＩが位置する緯度経度及び前記ＰＯＩ識別子を取得するステップと、
前記地域情報検索サーバが、前記ステップで取得した緯度に基づく値に第１所定値を乗算した第１値に、前記２の冪乗個のｉ（ｉ＝２〜ｎ，ｎは２以上の整数）次メッシュの緯度方向の個数を２次〜ｎ次まで乗算した第２値を乗算した１０進整数値を２進数に変換した緯度コードを算出するステップと、
前記地域情報検索サーバが、前記ステップで取得した経度から第２所定値減算した第３値に、前記２の冪乗個のｉ（ｉ＝２〜ｎ，ｎは２以上の整数）次メッシュの経度方向の個数を２次〜ｎ次まで乗算した第２値を乗算した１０進整数値を２進数に変換した経度コードを算出するステップと、
前記地域情報検索サーバが、前記緯度コードの各ｉ（ｉ＝１〜ｎ，ｎは２以上の整数）次メッシュの前記緯度方向の個数に対応するビット長の該当の２進数値及び前記経度コードの各ｉ（ｉ＝１〜ｎ，ｎは２以上の整数）メッシュの前記経度方向の個数に対応するビット長の該当の２進数値のいずれか一方を上位ビット側にし、次数の昇順に上位ビット側に結合して、パックコードに変換するステップと、
前記地域情報検索サーバが、前記ＰＯＩ識別子及び前記パックコードをＰＯＩ検索テーブルに格納するステップと、
を具備したことを特徴とする処理方法。
【請求項６】
前記地域情報検索サーバが、位置情報に基づいて、前記メッシュデータ記録部を検索して、該位置情報が示す地点が含まれる目標メッシュのメッシュ座標を取得するステップと、前記地域情報検索サーバが、前記メッシュ座標に対応する目標メッシュから隣接するメッシュまでの緯度方向のメッシュ数、及び経度方向のメッシュ数を緯度方向及び経度方向に応じて加減算して隣接するメッシュのメッシュ座標を算出するステップと、を更に具備したことを特徴とする請求項４に記載の処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、地域情報検索サーバ及び目標メッシュに隣接するメッシュを求める方法に関し、特に、目標メッシュに隣接するメッシュのコード（メッシュ座標）を、目標メッシュのコード（メッシュ座標）に目標メッシュから隣接メッシュまでのメッシュの個数を加減算することで算出し、隣接するメッシュを抽出することのできる地域情報検索サーバ及び目標メッシュに隣接するメッシュを求める方法に関する。
【背景技術】
【０００２】
インターネットで提供される地図検索のサービスでは、ラスタ形式のデータをメッシュ状に分割して、さらに、各メッシュを階層的に分割して管理することが一般に行われている。メッシュ単位で地図を管理して、指定された位置が含まれるメッシュと隣接するメッシュを管理することで対応する地図や施設情報等の地域情報を取得することが可能となる。
【０００３】
先行技術文献１には、１０×１０のメッシュに地図データを分割し、各メッシュに４桁のメッシュ番号を付与して、前２桁はＸ軸方向（東西方向）の位置を表し、後ろ２桁はＹ軸方向（南北方向）の位置を表し、前２桁の数値は、Ｘ軸の正方向にいくほど大きくなり、後ろ２桁の数値はＹ軸の正方向にいくほど大きくなっており、このメッシュ番号を用いて隣接するメッシュを抽出する方法が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１９９９２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、この１０進数の４桁のメッシュ番号を用いる先行技術文献１では、１０×１０のメッシュに固定的に分割しており、１次メッシュの場合には対応できるが、各１次メッシュを２次メッシュに、各２次メッシュを３次メッシュ・・・と、通常、地図を複数メッシュ分割して記録する場合、複数の次数に階層化して地図データを記録するが、それには対応することができないという問題がある。
【０００６】
本発明は、上記問題点に鑑みてなされたものであり、多階層に階層化されたメッシュ構造において、隣接するメッシュを抽出することのできる地域情報検索サーバ及び目標メッシュに隣接するメッシュを求める方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
請求項１に記載の発明によれば、地域情報検索サーバであって、全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の階層毎の地図データと、各階層のｎ（ｎは１以上の整数）次メッシュに付与され、（ｉ−１）（ｉは２次以上の整数）次メッシュの緯度方向及び経度方向について２の冪乗個のｉ（ｉは２以上の整数）次メッシュに階層的に分割され、１次〜ｎ次メッシュに付与される１０進数のメッシュ番号が次数の昇順に上位桁に並べて構成され、該ｎ次メッシュを一意に特定するメッシュコードを記録する地図記録部と、前記地図記録部から所定の階層のメッシュの前記メッシュコードを取得するメッシュコード取得部と、前記メッシュコード取得部が取得した前記メッシュコードを構成する各次数の前記メッシュ番号を次数ごとに固定長のビット長の２進数に変換し、該各次数の２進数を次数の昇順に上位ビット側に連結して、パックコードに変換するパックコード変換部と、前記パックコードを緯度に係る緯度コードと経度に係る経度コードに分割し、前記緯度コード及び前記経度コードから成るメッシュ座標に変換するメッシュ座標変換部と、前記メッシュ座標をメッシュデータ記録部に記録するメッシュ座標格納部とを具備したことを特徴とする地域情報検索サーバが提供される。
【０００８】
請求項２記載の発明によれば、地域情報検索サーバであって、全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の階層の（ｉ−１）（ｉは２次以上の整数）次メッシュの緯度方向及び経度方向について２の冪乗個のｉ（ｉは２以上の整数）次メッシュに分割される階層化されたメッシュ構造において、各ＰＯＩを一意に特定するＰＯＩ識別子を含みＰＯＩ情報を記憶するＰＯＩ情報記録部と、前記ＰＯＩ情報記録部を検索して、各ＰＯＩが位置する緯度経度及び前記ＰＯＩ識別子を取得する緯度経度取得部と、前記緯度経度取得部が取得した緯度に基づく値に第１所定値を乗算した第１値に、前記２の冪乗個のｉ（ｉ＝２〜ｎ，ｎは２以上の整数）次メッシュの緯度方向の個数を２次〜ｎ次まで乗算した第２値を乗算した１０進整数値を２進数に変換した緯度コードを算出する緯度コード算出部と、前記緯度経度取得部が取得した経度から第２所定値減算した第３値に、前記２の冪乗個のｉ（ｉ＝２〜ｎ，ｎは２以上の整数）次メッシュの経度方向の個数を２次〜ｎ次まで乗算した第２値を乗算した１０進整数値を２進数に変換した経度コードを算出する経度コード算出部と、前記緯度コードの各ｉ（ｉ＝１〜ｎ，ｎは２以上の整数）次メッシュの前記緯度方向の個数に対応するビット長の該当の２進数値及び前記経度コードの各ｉ（ｉ＝１〜ｎ，ｎは２以上の整数）メッシュの前記経度方向の個数に対応するビット長の該当の２進数値のいずれか一方を上位ビット側にし、次数の昇順に上位ビット側に結合して、パックコードに変換するパックコード変換部と、前記ＰＯＩ識別子及び前記パックコードをＰＯＩ検索テーブルに格納するパックコード格納部と、を具備したことを特徴とする地域情報検索サーバが提供される。
【０００９】
請求項３記載の発明によれば、請求項１記載の発明において、位置情報に基づいて、前記メッシュデータ記録部を検索して、該位置情報が示す地点が含まれる目標メッシュの前記メッシュ座標を取得するメッシュ座標取得部と、前記メッシュ座標に対応する目標メッシュから隣接するメッシュまでの緯度方向のメッシュ数、及び経度方向のメッシュ数を緯度方向及び経度方向に応じて加減算して隣接するメッシュのメッシュ座標を算出する隣接メッシュ座標算出部を更に具備したことを特徴とする地域情報検索サーバが提供される。
【００１１】
請求項４記載の発明によれば、地域情報検索サーバにおいて行われる処理方法であって、全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の階層毎の地図データと、各階層のｎ（ｎは１以上の整数）次メッシュに付与され、（ｉ−１）（ｉは２次以上の整数）次メッシュの緯度方向及び経度方向について２の冪乗のｉ（ｉは２以上の整数）次メッシュに階層的に分割され、１次〜ｎ次メッシュに付与される１０進数のメッシュ番号が次数の昇順に上位桁に並べて構成され、該ｎ次メッシュを一意に特定するメッシュコードを記録する地図記録部から前記地域情報検索サーバが所定の階層のメッシュの前記メッシュコードを取得するステップと、前記地域情報検索サーバが、前記ステップで取得した前記メッシュコードを構成する各次数の前記メッシュ番号を次数ごとに固定長のビット長の２進数に変換し、該各次数の２進数を次数の昇順に上位ビット側に連結して、パックコードに変換するステップと、前記地域情報検索サーバが、前記パックコードを緯度に係る緯度コードと経度に係る経度コードに分割し、前記緯度コード及び前記経度コードを並べたメッシュ座標に変換するステップと、前記地域情報検索サーバが、前記メッシュ座標をメッシュデータ記録部に記録するステップとを具備したことを特徴とする処理方法が提供される。
【００１２】
請求項５記載の発明によれば、地域情報検索サーバにおいて行われる処理方法であって、全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の階層の（ｉ−１）（ｉは２次以上の整数）次メッシュの緯度方向及び経度方向について２の冪乗個のｉ（ｉは２以上の整数）次メッシュに分割される階層化されたメッシュ構造において、前記地域情報検索サーバが、各ＰＯＩを一意に特定するＰＯＩ識別子を含みＰＯＩ情報を記憶するＰＯＩ情報記録部を検索して、各ＰＯＩが位置する緯度経度及び前記ＰＯＩ識別子を取得するステップと、前記地域情報検索サーバが、前記ステップで取得した緯度に基づく値に第１所定値を乗算した第１値に、前記２の冪乗個のｉ（ｉ＝２〜ｎ，ｎは２以上の整数）次メッシュの緯度方向の個数を２次〜ｎ次まで乗算した第２値を乗算した１０進整数値を２進数に変換した緯度コードを算出するステップと、前記地域情報検索サーバが、前記ステップで取得した経度から第２所定値減算した第３値に、前記２の冪乗個のｉ（ｉ＝２〜ｎ，ｎは２以上の整数）次メッシュの経度方向の個数を２次〜ｎ次まで乗算した第２値を乗算した１０進整数値を２進数に変換した経度コードを算出するステップと、前記地域情報検索サーバが、前記緯度コードの各ｉ（ｉ＝１〜ｎ，ｎは２以上の整数）次メッシュの前記緯度方向の個数に対応するビット長の該当の２進数値及び前記経度コードの各ｉ（ｉ＝１〜ｎ，ｎは２以上の整数）メッシュの前記経度方向の個数に対応するビット長の該当の２進数値のいずれか一方を上位ビット側にし、次数の昇順に上位ビット側に結合して、パックコードに変換するステップと、前記地域情報検索サーバが、前記ＰＯＩ識別子及び前記パックコードをＰＯＩ検索テーブルに格納するステップとを具備したことを特徴とする処理方法が提供される。
【００１３】
請求項６記載の発明によれば、請求項４記載の発明において、前記地域情報検索サーバが、位置情報に基づいて、前記メッシュデータ記録部を検索して、該位置情報が示す地点が含まれる目標メッシュのメッシュ座標を取得するステップと、前記地域情報検索サーバが、前記メッシュ座標に対応する目標メッシュから隣接するメッシュまでの緯度方向のメッシュ数、及び経度方向のメッシュ数を緯度方向及び経度方向に応じて加減算して隣接するメッシュのメッシュ座標を算出するステップとを更に具備したことを特徴とする処理方法が提供される。
【発明の効果】
【００１５】
請求項１、４記載の発明によると、多階層のメッシュ構造において、予め、地図記録部から所定の次数のメッシュコードを取得し、メッシュコードからパックコードに変換し、パックコードを緯度コード及び経度コードに分割し、緯度コード及び経度コードを並べた２次元のメッシュ座標に変換して、メッシュデータ記録部に格納しておくことにより、メッシュ座標を算出することなく、メッシュデータ記録部を検索して、メッシュ座標を取得することができる。
【００１６】
請求項２、５記載の発明によると、緯度方向のｉ（ｉ＝２〜ｎ）次メッシュの数をｉ＝２〜ｎまで乗算した値は、各１次メッシュに関わるｎ次メッシュの緯度方向の数を意味し、ｎ次メッシュと１次メッシュの縮尺を等しくして、各１次メッシュを該１次メッシュの地図範囲に含まれるｎ次メッシュで分割したときの緯度方向のｎ次メッシュの数が緯度コードであり、経度方向のｉ（ｉ＝２〜ｎ）次メッシュの数をｉ＝２〜ｎまで乗算した値は、各１次メッシュに関わるｎ次メッシュの経度方向の数を意味し、ｎ次メッシュと１次メッシュの縮尺を等しくして、各１次メッシュを該１次メッシュの地図範囲に含まれるｎ次メッシュで分割したときの経度方向のｎ次メッシュの数が経度コードであり、ｎ次メッシュと、緯度コード及び経度コードからなるメッシュ座標は１対１に対応することから、緯度コード及び経度コードから変換したパックコードはメッシュと１対１に対応する。
【００１７】
このパックコードをＰＯＩ検索テーブルに格納しておくので、位置情報に基づいて算出式より算出した目標メッシュの緯度コード及び経度コードからなるメッシュ座標から隣接するメッシュのメッシュ座標が算出され、隣接するメッシュのメッシュ座標をパックコードに変換することにより、ＰＯＩ検索テーブルを検索して、隣接するメッシュに位置する地域情報を取得することができる。
【００１８】
請求項３、６記載の発明によると、メッシュ座標に対応するｎ次メッシュから隣接するメッシュまでの緯度方向のｎ次メッシュ数及び経度方向のｎ次のメッシュ数を緯度方向及び経度方向に応じて加減算して隣接するメッシュのメッシュ座標を算出して隣接するメッシュを抽出することができ、隣接するメッシュを高速に抽出することができ、隣接するメッシュに位置する地域情報を高速に取得が可能となる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施形態による地域情報検索システムの概略構成図である。
【図２】図１中の地域情報検索サーバの機能ブロック図である。
【図３】図１中の地図ＤＢの構成図である
【図４】図１中のメッシュＤＢの構成図である。
【図５】図２中のメッシュＤＢ作成部の機能ブロック図である。
【図６】本発明の実施形態による多階層メッシュ構造を説明するための図である。
【図７】２次メッシュ及び２次メッシュ番号を示す図である。
【図８】ｎ次（ｎは３以上の整数）メッシュ及びｎ次メッシュ番号を示す図である。
【図９】メッシュコードからメッシュ座標への変換方法を示すフローチャートである。
【図１０】メッシュコードからパックコードへの変換方法を示すフローチャートである。
【図１１】目標メッシュのメッシュ座標と隣接メッシュのメッシュ座標の関係を示す図である。
【図１２】隣接メッシュのメッシュ座標の算出方法を示す図である。
【図１３】図２中のＰＯＩ検索テーブル作成部の機能ブロック図である。
【図１４】図１中のＰＯＩ情報テーブルの構成図である。
【図１５】図１中のＰＯＩ検索テーブルの構成図である。
【図１６】ＰＯＩ検索テーブルの作成方法を示すフローチャートである。
【発明を実施するための形態】
【００２１】
図１は本発明の実施形態による地域情報検索システム１の構成図である。図１に示すように、地域情報検索システム１は、複数の情報端末装置２＃ｉ（ｉ＝１〜ｎ）と、インターネット等の通信ネットワーク４と、地域情報検索サーバ６と、地図ＤＢ（地図記録部）８と、ＰＯＩ情報テーブル（ＰＯＩ情報記録部）９、メッシュＤＢ（メッシュデータ記録部）１０と、ＰＯＩ検索テーブル１１と、携帯端末装置１２と、無線基地局１４と、基地局制御装置１６を具備する。情報端末装置２＃ｉ（ｉ＝１〜ｎ）は、インターネット等の通信ネットワーク４を通して地域情報検索サーバ６に接続され、携帯端末装置１２は、無線基地局１４及び基地局制御装置１６等の移動体ネットワーク及び通信ネットワーク４を通して地域情報検索サーバ６に接続される。符号２＃ｉは複数の情報端末装置の任意の一つを指すが、以下では２と省略して記す。
【００２２】
情報端末装置２は、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、カーナビゲーション装置、デジタルテレビ等、通信ネットワーク４を通して、所定の通信プロトコル、例えば、ＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）に従って、地域情報検索サーバ６に地図画像や地域情報検索のリクエストをして、地域情報の提供を受ける通信端末であり、ＣＰＵ、表示装置、入力手段、ＲＯＭ、メインメモリ、記憶媒体、Ｉ／Ｏコントローラ及び通信インタフェース部等を有する。尚、通信プロトコルは、地域情報検索サーバ６との間で通信ネットワーク４を介して通信が可能であれば、ＨＴＴＰ以外の他のプロトコルであっても勿論良い。
【００２３】
通信ネットワーク４は、インターネット等の通信ネットワークであり、情報端末装置２とは、光ファイバ等の有線通信ケーブルによって接続される場合や、無線ＬＡＮのアクセスポイントを介して無線により接続される場合がある。
【００２４】
携帯端末装置１２は、携帯電話、スマートフォン、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）等の移動体端末であり、無線基地局１４及び基地局制御装置１６等の移動体通信ネットワーク及びインターネット等の通信ネットワーク４を通して、地域情報検索サーバ６に接続される。携帯端末装置１２は、地域情報検索サーバ６と、所定の通信プロトコル、例えば、ＨＴＴＰプロトコルに従って通信する。また、携帯端末装置１２は、図示しないＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）や無線基地局１４より緯度経度の位置情報を取得して、緯度経度の位置情報に基づいて、地域情報検索サーバに地域情報の提供をリクエストする。
【００２５】
地域情報検索サーバ６は、地図ＤＢ８、ＰＯＩ情報テーブル９、メッシュＤＢ１０、ＰＯＩ検索テーブル１１及び図示しない各メッシュのラスタ化された地図画像ＤＢを含み、以下の機能を有する。尚、図１において、地域情報検索サーバ６は情報端末装置２と携帯端末装置１２とについて共用する構成としているが、別々のサーバとして構成するようにしても良い。
【００２６】
（１） 地図ＤＢ８から後述する所定の次数のメッシュコードを読み出して、メッシュコードを取得する。
【００２７】
（２） 本実施形態では、全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の段階に階層化され、各段階のメッシュには、緯度の増加とともに１ずつ増加する緯度部分の１０進数及び経度の増加とともに０〜最大値まで１ずつ増加する経度部分の１０進数の第１メッシュ番号、もしくは１０進数のメッシュ番号であって、該１０進数値を２進数で表現したとき、緯度に対応する所定ビットのビット値が緯度の増加とともに０〜最大値まで１ずつ増加し、経度に対応する所定ビットのビット値が経度の増加とともに０〜最大値まで１ずつ増加する第２メッシュ番号が付与され、ｉ（ｉ＝１〜ｎ−１，ｎは３以上の整数）次メッシュが緯度及び経度方向にそれぞれ２の冪乗個の（ｉ＋１）次メッシュに分割される階層的な分割に係る１〜ｎ段階の１次〜ｎ次メッシュの第１メッシュ番号もしくは第２メッシュ番号が１次メッシュを最上位桁として次数の昇順に順次連結されて、該ｎ次メッシュを一意に特定するメッシュコードが付与されるメッシュ構造である。メッシュ番号は、各ｎ次メッシュに付与され、該ｎ次メッシュの分割に係る１次〜（ｎ−１）次メッシュのメッシュ番号は含まないものと定義する。
【００２８】
例えば、１次メッシュは、８×８の２次メッシュに分割され、（ｉ−１）（ｉ＝３〜ｎ，ｎは最高次数（例えば、ｎ＝１０））には、２×２のｉ次（ｉ＝３〜ｎ）メッシュに分割されている。そして、１次メッシュには、それぞれ２桁の１次メッシュ番号が付与され、２次メッシュには、それぞれ１桁（０〜７）×２の２次メッシュ番号が付与され、（ｉ−１）（ｉ＝３〜ｎ，ｎは最高次数（例えば、ｎ＝１０））を２×２に分割するｉ次メッシュには、経度部分と緯度部分を合わせて１桁（０〜３，２進数表現で０ビット目が経度部分のビット、１ビット目が緯度部分のビット）のメッシュ番号が付与された多段階のメッシュ構造の地図である。１次及び２次メッシュのように、緯度部分と経度部分にそれぞれ１０進数のメッシュ番号が別々に付与されるメッシュ番号を第１メッシュ番号と呼び、３次メッシュ〜ｎ次メッシュのように、１０進数であって、緯度部分と経度部分を合わせて１０進数のメッシュ番号が付与されて、その２進表現において、所定ビット（例えば、０ビット目が経度部分、１ビット目が緯度部分）が割り当てられている１０進数値を第２メッシュ番号と呼ぶ。
【００２９】
１次メッシュのメッシュ番号の２桁の緯度部分の１０進数値から所定値（例えば、１５）を減算した１０進数値を６ビットの２進数値、１次メッシュのメッシュ番号の２桁の経度部分の１０進数値を６ビットの２進数値、２次メッシュのメッシュ番号の１桁の緯度部分の１０進数値を３ビットの２進数値、２次メッシュのメッシュ番号の１桁の経度部分の１０進数値を３ビットの２進数値に変換して、１次メッシュから昇順に上位ビット側にして２進数値を結合してパックコードを生成する。パックコードは、メッシュコードを２進数化した中間的な値である。
【００３０】
（３）  パックコードを緯度部分と経度部分に分割して、緯度部分及び経度部分についてそれぞれ、１次メッシュから昇順に上位ビット側にして２進数値を連結して、緯度コード、経度コードを作成する。尚、後述のように、ｎ（ｎは３以上の整数）次メッシュの場合は、緯度部分は２ビットの２進数値の上位１ビット、経度部分は下位１ビットである。９次メッシュの場合は、緯度コード及び経度コードは３２ビット、１０次メッシュの場合は、緯度コード及び経度コードは３４ビットとなる。
【００３１】
（４）  緯度コードと経度コードから成るメッシュ座標及び緯度経度１，２（左下隅の緯度経度、右上隅の緯度経度）をメッシュＤＢ１０に格納する。尚、メッシュ座標は緯度コード及び経度コードが並べられていれば表現形式は問わない。
【００３２】
（５）  ｎ次目標メッシュに隣接するメッシュ（隣接メッシュ）について、目標メッシュから隣接メッシュまでの緯度方向のｎ次メッシュの数を、緯度が大きくなる方向か緯度が小さくなる方向に隣接メッシュが位置するかに応じて、目標メッシュのメッシュ座標の緯度コードに加減算して、隣接メッシュの緯度コードを求める。また、目標メッシュから隣接メッシュまでの経度方向のｎ次メッシュの数を、経度が大きくなる方向か経度が小さくなる方向に隣接メッシュが位置するかに応じて、目標メッシュのメッシュ座標の経度コードに加減算して、隣接メッシュの経度コードを求める。緯度コード及び経度コードから成るメッシュ座標（緯度コード，経度コード）が得られる。このように、目標メッシュのメッシュ座標に加減算することにより隣接メッシュのメッシュ座標が正しく求められる理由は後で詳細に説明する。
【００３３】
（６）  ＰＯＩ検索テーブル１１を作成する。即ち、ＰＯＩ情報テーブル９から各ＰＯＩ識別子（ＰＯＩＩＤ）及び該ＰＯＩＩＤを有するＰＯＩが位置する緯度経度を取得し、緯度経度から後述する式（１），（２）に従って、緯度経度の地点が位置する所定次数ｎ（例えば、最高次数）のメッシュ（例えば、１０次メッシュ）の緯度コード及び経度コードから成るメッシュ座標を算出し、このメッシュ座標を所定次数ｎの後述のパックコードに変換し、パックコード及びＰＯＩＩＤをＰＯＩ検索テーブル１４に格納する。
【００３４】
地域情報検索サーバ６のハードウェア構成は、情報端末装置２と同様に、ＣＰＵ、表示装置、入力手段、ＲＯＭ、メインメモリ、記憶媒体、Ｉ／Ｏコントローラ及び通信インタフェース部等を有する。
【００３５】
図２は、図１中の地域情報検索サーバ６の機能ブロック図であり、メッシュＤＢ作成部２０及びＰＯＩ検索テーブル作成部２２を有する。メッシュＤＢ作成部２０は、地図ＤＢ８より所定以上の次数のメッシュのメッシュコード及び緯度経度１，２を読み出し、後述するように、メッシュコードからパックコードに変換し、パックコードを緯度コード及び経度コードに分割して、緯度コード及び経度コードから成るメッシュ座標に変換し、メッシュ座標を緯度経度１，２とともにメッシュＤＢ１０格納する。尚、パックコード及び緯度経度１，２は、メッシュコード等が地図ＤＢ８に登録された時点で登録するようにしても良い。
【００３６】
ＰＯＩ検索テーブル作成部２２は、ＰＯＩ情報テーブル９より各ＰＯＩの緯度経度及びＰＯＩＩＤを順次読み出し、緯度経度から後述する式（１），（２）より、緯度コード及び経度コードから成るメッシュ座標を算出し、メッシュ座標をパックコードに変換して、パックコード及びＰＯＩＩＤをＰＯＩ検索テーブル１１に格納する。
【００３７】
図３は、図１中の地図ＤＢ８の一部構成図である。地図ＤＢ８は、全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の階層毎に図示しない地図データと全体地図を分割する各メッシュを管理するための情報を記録するデータベースである。各メッシュを管理するための情報は、階層ＩＤ、メッシュコード、緯度経度１及び緯度経度２等を含む。階層ＩＤはメッシュの次数である。メッシュコードは各メッシュを一意に識別するためのコードである。緯度経度１，緯度経度２は、メッシュの左下隅，右上隅の緯度経度である。図４は、メッシュＤＢ１０の構成図である。メッシュＤＢ１０は、メッシュ座標を格納するデータベースであり、緯度・経度１、緯度・経度２及びメッシュ座標を含む。
【００３８】
図５は、図２中のメッシュＤＢ作成部２０の機能ブロック図であり、メッシュコード取得部５０、パックコード変換部５２、緯度・経度コード変換部５４、メッシュ座標格納部５６及び隣接メッシュ座標算出部５８などから構成され、記憶装置に格納された該当プログラムがメインメモリにローディングされて、ＣＰＵによるプログラムの実行により実現される。
【００３９】
メッシュコード取得部５０は、地図ＤＢ８から後述する所定次数ｎ（ｎは３以上の整数）のメッシュコードを読み出し、パックコード変換部５２に出力する。所定次数ｎは、最高次数のみであってもいいし、一定以上の複数の次数であっても良い。
【００４０】
図６は、メッシュ構造を示す図である。図７は、２次メッシュ番号を示す図である。図８は、３次〜ｎ（ｎは３以上の整数）次メッシュのメッシュ番号を示す図である。図６に示すように、全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の段階に階層化されている。例えば、１次メッシュが８×８の２次メッシュに分割されて、２次メッシュが２×２の３次メッシュに分割され、３次メッシュが２×２の４次メッシュ、４次メッシュが２×２の５次メッシュ、・・と階層的に分割されている。
【００４１】
１次メッシュは、１次メッシュに含まれる任意の地点の緯度をｌａｔ、経度をｌｏｎとすると、１次メッシュ番号の２桁の緯度部分の１０進数値（整数）はｌａｔ×１．５の整数値となり、１次メッシュ番号の２桁の経度部分の１０進数値（整数）は（ｌｏｎ−１００）の整数値となる。
【００４２】
図７に示すように，２次メッシュのメッシュ番号は、２桁が付与されて、上位１桁の緯度部分には、緯度が大きくなるとともに値が大きくなるように０〜７までの数が割り当てられている。例えば、２次メッシュの一番南には０、一番北には７が付与されている。下位１桁の経度部分には、経度が大きくなるとともに値が大きくなるように０〜７までの数が付与されている。例えば、２次メッシュの一番西には０、一番東には７が割り当てられている。
【００４３】
図８に示すように、ｎ次（ｎは３以上）メッシュは２×２に分割されて、左下隅に０、右下隅に１、左上隅に２、右上隅に３が割り当てられている。これにより、０〜３までの１０進数値を２ビットの２進数値に変換したとき、上位１ビットが緯度部分となり、下２つのメッシュのメッシュ番号は０（２進数値）、上２つのメッシュのメッシュ番号は１（２進数値）となり、緯度が大きいメッシュのメッシュ番号の値は大きくなる。下位１ビットは経度部分となり、左２つのメッシュのメッシュ番号は０（２進数値）、右２つのメッシュのメッシュ番号は１（２進数値）となり、経度が大きいメッシュの値は大きくなる。
【００４４】
１次メッシュ及び２次メッシュは総務省で定められたメッシュであり、３次以上は、拡張メッシュである。
【００４５】
例えば、１次メッシュのメッシュ番号の緯度部分を５３、１次メッシュのメッシュ番号の経度部分を３９、２次メッシュのメッシュ番号の緯度部分を４、２次メッシュのメッシュ番号の経度部分を６、３次メッシュのメッシュ番号を０、４次メッシュのメッシュ番号を０、５次メッシュのメッシュ番号を３、６次メッシュのメッシュ番号を０、７次メッシュのメッシュ番号を０、８次メッシュのメッシュ番号を１、９次メッシュのメッシュ番号を３、１０次メッシュのメッシュ番号を１とすると、メッシュコードは、５３３９４６００３００１３１である。
【００４６】
パックコード変換部５２は、２桁の１次メッシュの緯度部分−１５を６ビットの２進数値に変換し、２桁の１次メッシュのメッシュ番号の経度部分を６ビットの２進数値に変換し、１桁の２次メッシュのメッシュ番号の緯度部分を３ビットの２進数値に変換し、１桁の２次メッシュのメッシュ番号の経度部分を３ビットの２進数値に変換し、３次〜ｎ次メッシュについては、１桁の１０進数値を２ビットの２進数値に変換して、これら変換した２進数値を１次メッシュから昇順、且つ上位ビット側に結合して、パックコードを生成する。ｎ次メッシュのパックコードは、（（ｎ＋７）×２）ビットとなり、例えば、９次メッシュの場合は、３２ビットとなる。
【００４７】
メッシュコードが５３３９４６００３００１３１の場合、パックコードＰ１ａＰ１ｂＰ２ａＰ２ｂＰ３Ｐ４Ｐ５Ｐ６Ｐ７Ｐ８Ｐ９Ｐ１０とすると、Ｐ１ａ＝１００１１０（２進）＝３８（１０進）、Ｐ１ｂ＝１００１１１（２進）＝３９（１０進）、Ｐ２ａ＝１００（２進）＝４（１０進）、Ｐ２ｂ＝１１０（２進）＝６（１０進）、Ｐ３＝００（２進）＝０（１０進）、Ｐ４＝００（２進）＝０（１０進）、Ｐ５＝１１（２進）＝３（１０進）、Ｐ６＝１０（２進）＝００（１０進）、Ｐ７-＝００（２進）＝０（１０進）、Ｐ８＝０１（２進）＝１（１０進）、Ｐ９＝１１（２進）＝３（１０進）、Ｐ１０＝０１（２進）＝１となる。
【００４８】
ここで、経度部分から１５を引くのは、６ビットで択捉島まで含まれるようにするためであり、こうすることにより、１次メッシュの緯度部分Ｐ１ａ、経度部分Ｐ１ｂがそれぞれ６ビットであれば日本の東西南北端点である南鳥島、沖ノ島、与那国島、択捉島の各緯度経度をパックコードとして格納することができる。
【００４９】
１０進数値の最大値に応じたビット長の２進数値に変換するのは、メッシュコードから変換したパックコードが所定の範囲の緯度経度について２進数値として連続するよう構成するためである。２桁の緯度部分のメッシュ番号−１５の１０進数値の範囲及び２桁の経度部分のメッシュ番号の１０進数値の範囲は６ビット、０〜７の１０進数値は３ビット、０〜３の１０進数値は２ビットで表現される。
【００５０】
緯度・経度コード（メッシュ座標）変換部５４は、パックコードを緯度部分と経度部分に分割し、緯度部分及び経度部分についてそれぞれ、１次メッシュから昇順に上位ビット側にして２進数値に連結して、緯度コード及び経度コードに変換し、緯度コード及び経度コードから成るメッシュ座標に変換する。
【００５１】
パックコードＰ１ａＰ１ｂＰ２ａＰ２ｂＰ３・・・Ｐ１０とすると、緯度コードＣａ及び経度コードＣｂは以下のようになる。
【００５２】
Ｃａ＝Ｐ１ａＰ２ａＰ３ａ・・・Ｐ１０ａ
Ｃｂ＝Ｐ１ｂＰ２ｂＰ３ｂ・・・Ｐ１０ｂ
但し、Ｐ３＝Ｐ３ａＰ３ｂ，・・・，Ｐ１０＝Ｐ１０ａＰ１０ｂである。
【００５３】
例えば、パックコードを（Ｐ１ａ）（Ｐ１ｂ）（Ｐ２ａ）（Ｐ２ｂ）（Ｐ３）（Ｐ４）・・（Ｐ９）（Ｐ１０）＝１００１００-１００１１１-１００-１１０-００-００-１１-００-００-０１-１１・０１
とすると、
緯度コードＣａ=１００１１０１００００１０００１０となり、
経度コードＣｂ=１００１１１１１０００１００１１１となる。
【００５４】
メッシュ座標は緯度コードＣａ及び経度コードＣｂから成る（Ｃａ，Ｃｂ）である。
【００５５】
このように、パックコードを緯度コードと経度コードに分割することにより、メッシュコードから変換した緯度コード及び経度コードがそれぞれ２進数値として連続するとともに、緯度及び経度がそれぞれ大きくなるに従って、緯度コード及び経度コードがそれぞれ２進数値として大きくなり、後述するように、緯度コード及び経度コードに、ｎ次目標メッシュから隣接メッシュまでの緯度方向及び経度方向のそれぞれのｎ次メッシュのメッシュ数を緯度方向及び経度方向に応じて加減算することにより、隣接メッシュの緯度コード及び経度コードを求めることができる。
【００５６】
メッシュ座標格納部５６は、緯度コード及び経度コードから成るメッシュ座標を緯度経度１，２とともにメッシュＤＢ１０に格納する。尚、メッシュ座標、緯度経度１，２に加えて、メッシュ座標の次数をメッシュＤＢ１０に格納するようにしても良い。隣接メッシュ座標算出部５８は、ｎ次目標メッシュに隣接する隣接メッシュについて、目標メッシュから隣接メッシュまでの緯度方向のｎ次メッシュの数を緯度が大きくなる方向、緯度が小さくなる方向に隣接メッシュが位置するかに応じて、目標メッシュのメッシュ座標の緯度コードに加減算して隣接メッシュの緯度コードを求める。また、目標メッシュから隣接メッシュのまでの経度方向のｎ次メッシュの数を経度が大きくなる方向か経度が小さくなる方向に隣接メッシュが位置するかに応じて、目標メッシュのメッシュ座標の経度コードに加減算して隣接メッシュの経度コードを求める。そして、隣接メッシュの緯度コード及び経度コードから成る隣接メッシュのメッシュ座標を求める。
【００５７】
尚、情報端末装置２や携帯端末装置１２より受信した位置情報（緯度経度）からメッシュＤＢ１０を検索し、緯度経度が含まれる（例えば、位置情報の地点が位置する（緯度経度１，２の範囲内に位置する））目標メッシュのメッシュ座標を取得する。また、メッシュＤＢ１０に緯度経度に代わりにメッシュコードを格納しておき、位置情報に基づいて、地図ＤＢ８を検索して、地図ＤＢ８から位置情報が示す地点が位置する目標メッシュのメッシュコードを取得し、メッシュコードに基づいて、メッシュＤＢ１０を検索して、メッシュ座標を算出するようにしても良い。更に、地図ＤＢ８を検索して、地図ＤＢ８から位置情報が示す地点が位置する目標メッシュのメッシュコードを取得し、メッシュコードからパックコードに変換し、パックコードからメッシュ座標に変換するようにしても良い。
【００５８】
図９は、メッシュ座標変換に係るフローチャートである。ステップＳ２で、所定の次数のメッシュコード、緯度経度１，２を地図ＤＢ８から順次読み出す。ステップＳ４で、メッシュコードが有るか否かを判定する。肯定判定ならば、ステップ６に進む。否定判定ならば、所定の次数の全てのメッシュコードからメッシュ座標への変換が終了したので、処理を終了する。
【００５９】
ステップＳ６で、図１０に示すパックコードへの変換処理を行う。図１０中のステップＳ２０で、（１次メッシュ番号の緯度部分の２桁の１０進値−１５）を６ビットの２進数値に変換する。ステップＳ２２で、１次メッシュ番号の経度部分の２桁を６ビットの２進数値に変換し、緯度部分の１次メッシュ番号についての２進数値の最下位ビットに結合する。
【００６０】
ステップＳ２４で、２次メッシュ番号の緯度部分の１桁を３ビットの２進数値に変換し、結合した経度部分の１次メッシュ番号の２進数値の最下位ビットに結合する。ステップＳ２６で、２次メッシュ番号の経度部分の１桁を３ビットの２進数値に変換し、結合した２次メッシュ番号の緯度部分の２進数値の最下位ビットに結合する。ステップＳ２８で、次の次数の１桁を２ビットの２進数値に変換し、結合した２次メッシュの経度部分の２進数値の最下位ビット、又は結合した２ビットの２進数値の最下位ビットに結合する。ステップＳ３０で、最高次数のメッシュ番号の２進数値への変換が終了したか否かを判定する。肯定判定ならば、図８中のステップＳ８に戻る。
【００６１】
図９中のステップＳ８で、パックコードを最高次数又は１次から降順又は昇順に、次数に該当する緯度経度部分の上位に緯度部分を１次が最上位ビットとなるように、緯度コードの該当部分に、下位の経度部分を経度コードの該当部分に設定する。ステップＳ１０で、次の次数が有るか否かを判定する。肯定判定ならば、ステップＳ８に戻り、否定判定ならば、緯度コード、経度コードのメッシュ座標が作成されたので、ステップＳ１２に進む。ステップＳ１２で、緯度コード及び経度コードから成るメッシュ座標を緯度経度１，２とともにメッシュＤＢ１０に格納し、ステップＳ２に戻る。
【００６２】
図１１及び図１２は隣接するメッシュのメッシュ座標を算出する方法を示す図である。以下、これらの図面を参照して、隣接するメッシュのメッシュ座標を算出する方法を説明する。本例では、１０次メッシュの場合を示している。目標メッシュＭ３３のメッシュコードを５３３９４６００００３０２１（以下、Ｍ００３０２１，Ｍ＝５３３９４６００と記載する）とすると、
パックコードＰ１ａＰ１ｂＰ２ａＰ２ｂＰ３Ｐ４Ｐ５Ｐ６Ｐ７Ｐ８Ｐ９Ｐ１０は，Ｐ１ａ＝１００１１０、Ｐ１ｂ＝１００１１１、Ｐ２ａ＝１００、Ｐ２ｂ＝１１０、Ｐ３＝００，Ｐ４＝００、Ｐ５＝００、Ｐ６＝００、Ｐ７＝１１、Ｐ８-＝００、Ｐ９＝１０、Ｐ１０＝０１となる。
【００６３】
緯度コードは、１００１１０１００００００１０１０（Ｃａ００１０１０と記載する）
経度コードは、１００１１１１１０００００１００１（Ｃｂ００１００１と記載する）
メッシュ座標は、（Ｃａ００１０１０，Ｃｂ００１００１）となる。
【００６４】
目標メッシュＭ３３から北に１個離れた隣接メッシュＭ４１，Ｍ４２，Ｍ４３，Ｍ４４，Ｍ４５の経度コードはメッシュＭ３３の緯度コードＣａ００１０１０に２進数として１加えたＣａ００１０１１となり、隣接メッシュＭ４１，Ｍ４２，Ｍ４３，Ｍ４４，Ｍ４５のメッシュコードから変換した緯度コードに等しい。目標のメッシュＭ３３から南に１個離れた隣接メッシュＭ２１，Ｍ２２，Ｍ２３，Ｍ２４，Ｍ２５の緯度コードはメッシュＭ３３の緯度コードＣａ００１０１０に２進数として１減算したＣａ００１００１となり、隣接メッシュＭ２１，Ｍ２２，Ｍ２３，Ｍ２４，Ｍ２５のメッシュコードから変換した緯度コードに等しい。
【００６５】
目標メッシュＭ３３から北に２個離れた隣接メッシュＭ５１，Ｍ５２，Ｍ５３，Ｍ５４，Ｍ５５の経度コードはメッシュＭ３３の緯度コードＣａ００１０１０に２進数として２加えたＣａ００１１００となり、隣接メッシュＭ５１，Ｍ５２，Ｍ５３，Ｍ５４，Ｍ５５のメッシュコードから変換した緯度コードに等しい。目標のメッシュＭ３３から南に２個離れた隣接メッシュＭ１１，Ｍ１２，Ｍ１３，Ｍ１４，Ｍ１５の経度コードはメッシュＭ３３の緯度コードＣａ００１０１０に２進数として２減算したＣａ００１０００となり、隣接メッシュＭ１１，Ｍ１２，Ｍ１３，Ｍ１４，Ｍ１５のメッシュコードから変換した緯度コードに等しい。
【００６６】
目標メッシュＭ３３から東に１個離れた隣接メッシュＭ１４，Ｍ２４，Ｍ３４，Ｍ４４，Ｍ５４の経度コードはメッシュＭ３３の経度コードＣｂ００１００１に２進数として１加えたＣｂ００１０１０となり、隣接メッシュＭ１４，Ｍ２４，Ｍ３４，Ｍ４４，Ｍ５４のメッシュコードから変換した経度コードに等しい。目標のメッシュＭ３３から西に１個離れた隣接メッシュＭ１２，Ｍ２２，Ｍ３２，Ｍ４２，Ｍ５２の経度コードはメッシュＭ３３の経度コードＣｂ００１００１に２進数として１減算したＣｂ００１０００となり、隣接メッシュＭ１２，Ｍ２２，Ｍ３２，Ｍ４２，Ｍ５２のメッシュコードから変換した経度コードに等しい。
【００６７】
目標メッシュＭ３３から東に２個離れた隣接メッシュＭ１５，Ｍ２５，Ｍ３５，Ｍ４５，Ｍ５５の経度コードはメッシュＭ３３の経度コードＣｂ００１００１に２進数として１０（２進数）加えたＣｂ００１０１１となり、隣接メッシュＭ１５，Ｍ２５，Ｍ３５，Ｍ４５，Ｍ５５のメッシュコードから変換した経度コードに等しい。目標のメッシュＭ３３から西に２個離れた隣接メッシュＭ１１，Ｍ２１，Ｍ３１，Ｍ４１，Ｍ５１の経度コードはメッシュＭ３３の経度コードＣｂ００１００１に２進数として２減算したＣｂ０００１１１となり、隣接メッシュＭ１１，Ｍ２１，Ｍ３１，Ｍ４１，Ｍ５１のメッシュコードから変換した経度コードに等しい。
【００６８】
また、メッシュＭ５３やＭ３４等のメッシュは、目標メッシュＭ３３が位置する９次メッシュとは異なる９次メッシュに位置するが、このようなメッシュのメッシュ座標についても目標メッシュの緯度コード及び経度コードに加減算することにより、求めることができる。例えば、メッシＭ５３の緯度コードは目標メッシュの緯度コードに１０（２進数値の２）を加算することにより求まる。また、メッシＭ３４の経度コードは目標メッシュの経度コードに０１（２進数値の１）を加算することにより求まる。
【００６９】
従って、図１２に示すように、目標のメッシュＭ３３をｎ次メッシュとすると、目標メッシュＭ３３から離間するｎ次メッシュの個数分だけ離間する方向に応じて、目標メッシュの緯度コードに加減算する。例えば、東に１個離間する場合は、経度コードに１加算し、東に２個離間する場合は、経度コードに２加算し、西に１個離間する場合は、経度コードに１減算し、西に２個離間する場合は、経度コードに２減算し、北に１個離間する場合は、緯度コードに１加算し、北に２個離間する場合は、緯度コードに２加算し、南に１個離間する場合は、緯度コードに１減算し、南に２個離間する場合は、緯度コードに２減算すれば良い。
【００７０】
このように、目標メッシュの隣接メッシュのメッシュ座標は、目標メッシュのメッシュ座標の緯度コード及び経度コードに、目標メッシュから隣接メッシュまでの緯度方向及び経度方向のｎ次メッシュ数を、その緯度方向及び経度方向に応じて、緯度コード及び経度コードにそれぞれ加減算することにより、該当する隣接メッシュのメッシュコードから変換した緯度コード及び経度コードに一致する正しいメッシュ座標を算出することができる。
【００７１】
図１３は、図２中のＰＯＩ検索テーブル作成部２２の機能ブロック図である。ＰＯＩ検索テーブル作成部２２は、緯度・経度取得部１００、緯度コード算出部１０２、経度コード算出部１０４、パックコード変換部１０６及びパックコード格納部１０８を有する。
【００７２】
図１４は、ＰＯＩ情報テーブル９の構成図である。図１４に示すように、ＰＯＩ情報テーブル９は、各ＰＯＩ情報を格納するテーブルであり、各ＰＯＩを一意に識別するためのＰＯＩＩＤ、ＰＯＩが位置する緯度経度、ＰＯＩの名称、ジャンル及び電話番号等が格納されている。
【００７３】
図１５は、ＰＯＩ検索テーブル１１の構成図である。図１５に示すように、ＰＯＩ検索テーブル１１は各ＰＯＩのＰＯＩＩＤとパックコードとを紐付けるためのテーブルであり、各ＰＯＩのＰＯＩＩＤ及びパックコードが格納されている。
【００７４】
緯度・経度取得部１００は、ＰＯＩ情報テーブル９より各ＰＯＩの緯度経度及びＰＯＩＩＤを読み出し、緯度コード算出部１０２及び経度コード算出部１０４に出力する。
【００７５】
緯度コード算出部１０２は、緯度・経度取得部１００が取得した緯度から次式（１）よりｎ（ｎは３以上）次メッシュの緯度コードＣａを求める。緯度をｌａｔとする。ここで、緯度が度・分・秒で指定されている場合は、分・秒を度に変換する。
【００７６】
・秒で指定されている場合は、分・秒を度に変換する。
【００７７】
Ｃａ＝ＦＬＯＯＲ（（（ｌａｔ−１０）×３）÷２）×（緯度方向のｉ（ｉ＝２〜ｎ）次メッシュの数をｉ＝２〜ｎまで乗算した値）                        ・・・  （１）
ＦＬＯＯＲ（）は小数点以下を切り捨てる関数である。
【００７８】
ここで、緯度方向のｉ（ｉ＝２〜ｎ）次メッシュの数をｉ＝２〜ｎまで乗算した値は、各１次メッシュに関わるｎ次メッシュの緯度方向の数を意味し、ｎ次メッシュと１次メッシュの縮尺を等しくして、各１次メッシュを該１次メッシュの地図範囲に含まれるｎ次メッシュで分割したときの緯度方向のｎ次メッシュの数に等しい。
【００７９】
３／２（第１所定値）を乗算するのは、緯度部分のメッシュ番号に合わせるためである。ｌａｔから１０を引くのは、緯度コードの１次メッシュに該当する緯度部分を６ビットで択捉島まで含まれるようにするためであり、こうすることにより、１次メッシュの緯度部分Ｐ１ａ、経度部分Ｐ１ｂがそれぞれ６ビットであれば日本の東西南北端点である南鳥島、沖ノ島、与那国島、択捉島の各緯度の緯度部分を格納することができる。
【００８０】
このとき、（ｌａｔ−１０）×３／２＝ｌａｔ×３／２−１５であり、１次メッシュの緯度部分のメッシュ番号から１５減算した値となり、緯度１０°の緯度コードは０であり、緯度１０°の緯度部分のメッシュ番号が１５と整数であり、緯度１０°のメッシュの２次からｎ次メッシュの緯度部分のメッシュ番号は、０もしくは緯度部分の該当ビット値が０となる。
２次メッシュが１次メッシュを８×８に分割し、ｉ（ｉ＝３〜ｎ）次メッシュが（ｉ−１）（ｉ＝３〜ｎ）次メッシュを２×２に分割する場合、緯度方向の２次メッシュの数＝２3個、ｉ（ｉ＝３〜ｎ）次メッシュの緯度方向の数が２個であることから、ｉ（ｉ＝２〜ｎ）次メッシュの緯度方向の数をｉ＝２〜ｎまで乗算した値は、２3×２(n-2)＝２の（ｎ＋１）乗）となり、
Ｃａ＝ＦＬＯＯＲ（（（（ｌａｔ−１０）×３）÷２）×（２の（ｎ＋１）乗））
となる。
【００８１】
Ｃａは、北緯１０度の地点が含まれる地点から１次メッシュを北に隙間なく並べ、該１次メッシュと縮尺を等しくしたｎ次メッシュで各１次メッシュを分割したとき、東経がｌｏｎの地点が含まれるｎ次メッシュまでの緯度方向のｎ次メッシュの個数−１である。
【００８２】
経度コード算出部１０４は、経度から次式（２）よりｎ（ｎは３以上）次メッシュの経度コードＣｂを求める。経度をｌｏｎとする。ここで、経度が度・分・秒で指定されている場合は、分・秒を度に変換する。
【００８３】
Ｃｂ＝ＦＬＯＯＲ（（ｌｏｎ−１００）×経度方向のｉ（ｉ＝２〜ｎ）次メッシュの数をｉ＝２〜ｎまで乗算した値）                            ・・・  （２）
ＦＬＯＯＲ（）は小数点以下を切り捨てる関数である。
【００８４】
ここで、ｌｏｎから１００を引くのは、東経１００度の経度コードを経度部分のメッシュ番号と同じ０とするためである。
【００８５】
例えば、２次メッシュが１次メッシュを８×８に分割して、ｉ（ｉ＝１〜ｎ）次メッシュが（ｉ−１）（ｉ＝１〜ｎ）次メッシュを２×２に分割するとする。この場合、経度方向の２次メッシュの数＝２3、経度方向のｉ（ｉ＝３〜ｎ）次メッシュの経度方向の数が２であることから、経度方向のｉ（ｉ＝２〜ｎ）次メッシュの数をｉ＝２〜ｎまで乗算した値は、２3×２(n-2)＝２の（ｎ＋１）乗）となり、
Ｃｂ＝ＦＬＯＯＲ（（ｌｏｎ−１００）×（２の（ｎ＋１）乗））
となる。
【００８６】
Ｃｂは、東経１００度の地点が含まれる地点から１次メッシュを東に隙間なく並べ、該１次メッシュと縮尺を等しくしたｎ次メッシュで各１次メッシュを分割したとき、東経がｌｏｎの地点が含まれるｎ次メッシュまでの経度方向のｎ次メッシュの個数−１である。
【００８７】
東経１３９度４６分０９．５２７秒、北緯３５度４０分４１秒の１０次の場合について説明する。
【００８８】
上記を度で表すと、
ｌａｔ＝３５＋（４０÷６０）＋（４１÷３６００）＝３５．６７８０５５
ｌｏｎ＝１３９＋（４６÷６０）＋（０９．５２７÷３６００）＝１３９．７６９３１３
となる。
【００８９】
Ｃａ＝ＦＬＯＯＲ（（（ｌａｔ−１０）×３）÷２）×（２の１１乗））
＝ＦＬＯＯＲ（（（２５．６７８０５５）×３）×１０２４）
＝ＦＬＯＯＲ（７８８８２．９８４９６）
＝７８８８２（１０進）
＝１００１１０１００００１０００１０（２進）
Ｃｂ＝ＦＬＯＯＲ（（ｌｏｎ−１００）×（２の１１乗））
＝ＦＬＯＯＲ（３９．７６９３１３×２０４８）
＝ＦＬＯＯＲ（８１４４７．５５３０２４）
＝８１４４７（１０進）
＝１００１１１１１０００１００１１１（２進）
本実施形態では、緯度コードの１次の緯度部分は６ビット、２次の緯度部分は３ビット、ｉ（ｉ＝３〜ｎ）次の緯度部分は１ビットであり、経度コードの１次の経度部分は６ビット、２次の経度部分は３ビット、ｉ（ｉ＝３〜ｎ）次の経度部分は１ビットである。
【００９０】
緯度コードＣａ＝Ｃ１ａＣ２ａＣ３ａ・・・Ｃ７ａＣ８ａＣ９ａＣ１０ａとすると、
１次の緯度部分Ｃ１ａ＝１００１００，２次の緯度部分Ｃ２ａ＝１００，３次の緯度部分Ｃ３ａ＝０，４次の緯度部分Ｃ４ａ＝０，５次の緯度部分Ｃ５ａ＝１，６次の緯度部分Ｃａ＝０，７次の緯度部分Ｃ７ａ＝０，８次の緯度部分Ｃ８ａ＝０，９次の緯度部分Ｃ９ａ＝１，１０次の緯度部分Ｃ１０ａ＝０となる。
【００９１】
経度コードＣｂ＝Ｃ１ｂＣ２ｂＣ３ｂ・・・Ｃ７ｂＣ８ｂＣ９ｂＣ１０ｂとすると、
１次の経度部分Ｃ１ｂ＝１００１０１，２次の経度部分Ｃ２ｂ＝１１０，３次の経度部分Ｃ３ｂ＝０，４次の経度部分Ｃ４ｂ＝０，５次の経度部分Ｃ５ｂ＝１，６次の経度部分Ｃ６ｂ＝０，７次の経度部分Ｃ７ｂ＝０，８次の経度部分Ｃ８ｂ＝１，９次の経度部分Ｃ９ｂ＝１，１０次の経度部分Ｃ１０ｂ＝１となる。
【００９２】
パックコード変換部１０６は、前述の式（１），（２）より算出された緯度コードＣａ及び経度コードＣｂのメッシュ座標から各次数ｉ（ｉ＝１〜ｎ）の緯度部分Ｃｉａ及び経度部分Ｃｉｂについて緯度部分Ｐｉａを経度部分Ｐｉｂの上位ビット側にし、１次を最上位側にして、次数の昇順に結合して、パックコードに変換する。
【００９３】
即ち、緯度コードＣａ＝Ｃ１ａＣ２ａＣ３ａ・・・Ｃｎａ、経度コードＣｂ＝Ｃ１ｂＣ２ｂＣ３ｂ・・・Ｃｎｂとすると、パックコードＰ１ａＰ１ｂＰ２ａＰ２ｂＰ３・・・Ｐｎは、Ｃ１ａＣ１ｂＣ２ａＣ２ｂＣ３ａＣ３ｂ・・・ＣｎａＣｎｂとなる。
Ｐ１ａ＝Ｃ１ａ＝１００１１０（２進）＝３８（１０進）
Ｐ１ｂ＝Ｃ１ｂ＝１００１１１（２進）＝３９（１０進）
Ｐ２ａ＝Ｃ２ａ＝１００（２進）＝４（１０進）
Ｐ２ｂ＝Ｃ２ｂ＝１１０（２進）＝６（１０進）
Ｐ３＝Ｃ３ａＣ３ｂ＝００（２進）
Ｐ４＝Ｃ４ａＣ４ｂ＝００（２進）
Ｐ５＝Ｃ５ａＣ５ｂ＝１１（２進）
Ｐ６＝Ｃ６ａＣ６ｂ＝００（２進）
Ｐ７＝Ｃ７ａＣ７ｂ＝００（２進）
Ｐ８＝Ｃ８ａＣ８ｂ＝０１（２進）
Ｐ９＝Ｃ９ａＣ９ｂ＝１１（２進）
Ｐ１０＝Ｃ１０ａＣ１０ｂ＝０１（２進）
尚、メッシュコードについては、
Ｍ１ａ＝Ｐ１ａ＋１５
Ｍ１ｂ＝Ｐ１ｂ
Ｍ２ａ＝Ｐ２ａ＝４
Ｍ２ｂ＝Ｐ２ｂ＝６
Ｍ３＝Ｐ３＝０
Ｍ４＝Ｐ４＝０
Ｍ５＝Ｐ５＝３
Ｍ６＝Ｐ６＝０
Ｍ７＝Ｐ７＝０
Ｍ８＝Ｐ８＝１
Ｍ９＝Ｐ９＝３
Ｍ１０＝Ｐ１０＝１
即ち、メッシュコードは（Ｍ１ａ）（Ｍ１ｂ）（Ｍ２ａ）（Ｍ２ｂ）（Ｍ３）（Ｍ４）（Ｍ５）（Ｍ６）（Ｍ７）（Ｍ８）（Ｍ９）（Ｍ１０）
＝５３３９４６００３００１３１
となる。
【００９４】
このとき、北緯１０度の地点の緯度部分のメッシュ番号は１５、整数であり、北緯１０度の地点の２次メッシュ〜ｎ次メッシュのメッシュ番号は０となることから、メッシュ座標から算出されるメッシュコードは、メッシュ構造に基づいてｎ次メッシュに付与されるメッシュコードに一致する。
【００９５】
パックコード格納部１０８は、パックコード及びＰＯＩＩＤをＰＯＩ検索テーブル１１に格納する。尚、ＰＯＩのメッシュ座標やパックコードの次数は、最高次数のみであっても良いし、所定以上の各次数について、緯度経度からメッシュ座標、メッシュ座標からパックコードに変換して、次数と共にパックコードをＰＯＩ検索テーブル１４に書き込むようにしても良い。最高次数のパックコードであれば、それよりも低い次数のパックコードは、最高次数のパックコードの１次〜上記低い次数までの２進数値である。
【００９６】
また、ＰＯＩ情報テーブル９に各ＰＯＩが登録された時点で該ＰＯＩについてパックコードをＰＯＩ検索テーブル１１に登録するようにしても良い。更に、ＰＯＩ情報テーブル９中のＰＯＩの緯度経度が変更になった場合、既に、ＰＯＩ検索テーブル１１中の当該ＰＯＩについてのパックコードを変更後の緯度経度からパックコードを算出して、ＰＯＩ検索テーブル１１に登録する。
【００９７】
また、パックコード変換部１０６の代わりに、メッシュ座標変換部を設け、緯度コード及び経度コードからパックコードに変換するのではなく、緯度コード及び経度コードから成るメッシュ座標に変換し、メッシュ座標及びＰＯＩＩＤをＰＯＩ検索テーブル１１に格納するようにしても良い。
【００９８】
目標メッシュのメッシュ座標から該目標メッシュに隣接するメッシュのメッシュ座標を算出し、パックコードに変換し、隣接メッシュのパックコードのリストを作成し、パックコードのリストをキーにしてＰＯＩ検索テーブル１１による絞り込みとＰＯＩ情報テーブル９とのテーブル結合を行って、地域情報としてのＰＯＩのリストを作成する。尚、ＰＯＩ検索テーブル１１にパックコードではなくメッシュコードを格納する場合は、隣接するメッシュの緯度コード及び経度コードから成るメッシュ座標に変換し、隣接するメッシュのメッシュ座標のリストをキーにしてＰＯＩ検索テーブル１１による絞り込みとＰＯＩ情報テーブル９とのテーブル結合を行って、地域情報としてのＰＯＩのリストを作成する。
【００９９】
図１６はＰＯＩ検索テーブル１１の作成方法を示す図である。以下、図１６を参照して、ＰＯＩ検索テーブル１１の作成方法の説明をする。ステップＳ１００で、ＰＯＩ情報テーブル９よりＰＯＩＩＤ及び緯度経度を取得する。ステップＳ１０２で、次のＰＯＩＩＤが有るか否かを判定する。肯定判定ならば、ステップＳ１０４に進み、否定判定ならば、ＰＯＩ検索テーブル１１の作成方法の処理を終了する。ステップＳ１０４で、取得した緯度から上述の式（１）に従って、緯度コードを算出する。
【０１００】
ステップＳ１０６で、取得した経度から上述の式（２）に従って、経度コードを算出する。ステップＳ１０８で緯度コード及び経度コードから上述したパックコードに変換する。ステップＳ１１０で、ＰＯＩＩＤ及びパックコードをＰＯＩ検索テーブル１１に書き込み、ステップＳ１００に戻る。ステップＳ１００〜Ｓ１１０を繰り返して、ＰＯＩ情報テーブル１１に格納されている全てのＰＯＩＩＤについて、ＰＯＩの緯度経度からパックコードに変換して、ＰＯＩ検索テーブル１１に書き込む。
【０１０１】
また、目標メッシュのメッシュ座標は、情報端末装置２や携帯端末装置１２より受信した緯度経度から、緯度経度の地点が位置するｎ次目標メッシュのメッシュ座標を前述の式（１），（２）に従って、算出するようにしてもよい。このとき、目標メッシュの次数は、最高次数のみであっても良いし、複数の所定次数であっても良い。
【０１０２】
目標メッシュの隣接メッシュのメッシュ座標は、目標メッシュのメッシュ座標の緯度コード及び経度コードに、目標メッシュから隣接メッシュまでの緯度方向及び経度方向のｎ次メッシュ数を、その緯度方向及び経度方向に応じて、緯度コード及び経度コードにそれぞれ加減算することにより、該当する隣接メッシュのメッシュコードから変換した緯度コード及び経度コードに一致する正しいメッシュ座標を算出することができる。
【０１０３】
何故なら、前述の式（１），（２）により、緯度コードは、北緯１０度の地点が含まれる地点から１次メッシュを北に隙間なく並べ、該１次メッシュと縮尺を等しくしたｎ次メッシュで各１次メッシュを分割したとき、北緯がｌａｔの地点が含まれるｎ次メッシュまでの緯度方向のｎ次メッシュの個数−１であり、経度コードは、東経１００度の地点が含まれる地点から１次メッシュを東に隙間なく並べ、該１次メッシュと縮尺を等しくしたｎ次メッシュで各１次メッシュを分割したとき、東経がｌｏｎの地点が含まれるｎ次メッシュまでの経度方向のｎ次メッシュの個数−１であることから、メッシュコードＭｉｊ（ｉ＝１〜５，ｊ＝１〜５）の緯度コード及び経度コードは、図１１に示す通りとなり、図１２に示すように、隣接メッシュのメッシュ座標を算出できるからである。
【０１０４】
以上説明したように、本実施形態によれば、パックコードを緯度コードと経度コードに分割してメッシュコードを管理することで、緯度コード及び経度コードの加減算のみにて隣接するメッシュのメッシュ座標により隣接するメッシュを抽出できる。メッシュの次元と緯度コード及び経度コードの位置が対応しているため、階層構造で管理されたメッシュ構造においても容易に隣接するメッシュを求めることができる。
【０１０５】
また、ＰＯＩの緯度経度から前述の式（１），（２）により、緯度コード及び経度コードを算出し、緯度コード及び経度コードからパックコードに変換し、パックコードをＰＯＩ検索テーブルに格納しておき、前述の式（１），（２）により算出した目標メッシュのメッシュ座標から隣接メッシュの緯度コード及び経度コードから成るメッシュ座標を算出し、隣接メッシュの緯度コード及び経度コードからパックコードに変換して、隣接メッシュのパックコードのリストを作成し、パックコードのリストをキーにしてＰＯＩ検索テーブルによる絞り込みとＰＯＩ情報テーブルとのテーブル結合を行って、地域情報としてのＰＯＩのリストを高速に作成することができる。
【０１０６】
また、ＰＯＩ検索テーブルにメッシュ座標を格納する場合は、前述の式（１），（２）により算出した目標メッシュのメッシュ座標から隣接メッシュのメッシュ座標を算出し、隣接メッシュのメッシュ座標のリストを作成し、メッシュ座標のリストをキーにしてＰＯＩ検索テーブルによる絞り込みとＰＯＩ情報テーブルとのテーブル結合を行って、地域情報としてのＰＯＩのリストを高速に作成することができる。
【０１０７】
本実施形態では、１次メッシュを８×８の６４個の２次メッシュに分割し、２次メッシュ〜（ｎ−１）次メッシュ（ｎは４以上の整数）を２×２の３次〜ｎ次メッシュに分割するメッシュ構造としたが、経度方向及び緯度方向にそれぞれ２の冪乗個のメッシュに分割するメッシュ構造の場合に適用可能である。
【符号の説明】
【０１０８】
２  情報端末装置
４  通信ネットワーク
６  地域情報検索サーバ
８  地図ＤＢ
１０  メッシュＤＢ
１２  携帯端末装置
１４  無線基地局
１６  基地局制御装置
５０  メッシュコード取得部
５２  パックコード変換部
５４  メッシュ座標変換部
５６  メッシュ座標格納部
５８  隣接メッシュ座標算出部
１００  緯度・経度取得部
１０２  緯度コード算出部
１０４  経度コード算出部
１０６  パックコード変換部
１０８  パックコード格納部
【図１】
0005409402.tif 000002
【図２】
0005409402.tif 000003
【図３】
0005409402.tif 000004
【図４】
0005409402.tif 000005
【図５】
0005409402.tif 000006
【図６】
0005409402.tif 000007
【図７】
0005409402.tif 000008
【図８】
0005409402.tif 000009
【図９】
0005409402.tif 000010
【図１０】
0005409402.tif 000011
【図１１】
0005409402.tif 000012
【図１２】
0005409402.tif 000013
【図１３】
0005409402.tif 000014
【図１４】
0005409402.tif 000015
【図１５】
0005409402.tif 000016
【図１６】
0005409402.tif 000017