地域情報検索サーバ及び地域情報検索方法
【課題】複数次数に階層化されたメッシュ構造において、ユーザからの位置情報に基づく中心地点の周辺の地域情報の検索を可能にし、かつ、その検索を高速に処理できる地域情報検索サーバ、システム及び方法を提供する。
【解決手段】地域情報検索サーバにおいて、リクエストされた位置情報が示すn次の中心メッシュの隣接メッシュの集合である区分iに含まれるメッシュをメッシュ構造に基づいて抽出し、POI検索データベースを検索して、区分iに属するメッシュ内に位置するPOI集合Riを取得し、POI集合検索部が取得した区分iに位置するPOI集合RiをPOI情報に基づいてソートする。ソートされたPOI集合Riに所定の件数のPOIが存在するか否かを判定し、所定の件数のPOIが存在する場合は、所定の件数のPOI情報を取得し、取得した所定の件数のPOIの後の後候補引き継ぎ値を取得した所定の件数のPOIとともに送信情報に設定する。
【解決手段】地域情報検索サーバにおいて、リクエストされた位置情報が示すn次の中心メッシュの隣接メッシュの集合である区分iに含まれるメッシュをメッシュ構造に基づいて抽出し、POI検索データベースを検索して、区分iに属するメッシュ内に位置するPOI集合Riを取得し、POI集合検索部が取得した区分iに位置するPOI集合RiをPOI情報に基づいてソートする。ソートされたPOI集合Riに所定の件数のPOIが存在するか否かを判定し、所定の件数のPOIが存在する場合は、所定の件数のPOI情報を取得し、取得した所定の件数のPOIの後の後候補引き継ぎ値を取得した所定の件数のPOIとともに送信情報に設定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、地域情報検索サーバ、地域情報検索システム及び地域情報検索方法に関し、特に、ユーザからの位置情報に基づく中心地点の周辺の地域情報の検索に関し、多階層に階層化されたメッシュ構造において、地域情報の検索を行う地域情報検索サーバ、地域情報検索システム及び地域情報検索方法に関する。
【背景技術】
【0002】
インターネットで提供される地図検索のサービスでは、ラスタ形式のデータをメッシュ状に分割して、さらに、各メッシュを階層的に分割して管理することが一般に行われている。メッシュ単位で地図を管理することで、指定された位置が含まれるメッシュと隣接するメッシュを管理することで対応する地図や施設情報を取得することが可能となる。
【0003】
先行技術文献1には、10×10のメッシュに地図データを分割し、各メッシュに4桁のメッシュ番号を付与して、前2桁はX軸方向(東西方向)の位置を表し、後ろ2桁はY軸方向(南北方向)の位置を表し、前2桁の数値は、X軸の正方向にいくほど大きくなり、後ろ2桁の数値はY軸の正にいくほど大きくなっており、このメッシュ番号を用いて隣接するメッシュを抽出する方法が記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−199921号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、この10進数の4桁のメッシュ番号を用いる先行技術文献1では、10×10のメッシュに固定的に分割しており、1次メッシュの場合には対応できるが、各1次メッシュを2次メッシュに、各2次メッシュを3次メッシュ・・・と、通常、地図を複数のメッシュに分割して記憶する場合、複数の次数に階層化して記憶するが、それには対応することができないという問題がある。
【0006】
また、一般的な地域情報の検索方法では、利用者が指定した位置を内包するメッシュを基準として、隣接するメッシュを求め、該メッシュに含まれるPOIを抽出して、距離順等でソートした上で所定件数(例えば、1〜10件)の検索結果を表示する処理が行われる。その後、利用者から次候補(例えば、11件〜20件)がリクエストされた際には、再度、メッシュに含まれるPOIを抽出して、距離順等でソートした上で、11件目以降の候補を抽出する処理を行わなければならず、効率が悪い。
【0007】
本発明は、上記問題点に鑑みてなされたものであり、複数次数に階層化されたメッシュ構造において、ユーザからの位置情報に基づく中心地点の周辺の地域情報の検索を可能にするとともに、その検索を高速に処理することのできる地域情報検索サーバ、地域情報検索システム及び地域情報検索方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
請求項1記載の発明によれば、地域情報検索サーバであって、全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の段階の1次〜n次(nは2以上の整数)のメッシュに階層化されたメッシュ構造において、各POIを一意に特定するPOI識別子を含みPOI情報を記憶するPOI情報データベースと、前記POI識別子及び各POIが位置するメッシュを特定する情報を記憶するPOI検索データベースと、リクエストされた位置情報が示すn次の中心メッシュからn次メッシュについて緯度又は経度方向に1個以上離間する隣接メッシュの集合である区分iが順序付けされた複数の区分i(i=1〜j,jは2以上の整数)の集合からなる順序区分集合に属する各区分iに含まれるメッシュを前記メッシュ構造に基づいて抽出する隣接メッシュ計算部と、前記POI検索データベースを検索して、前記区分iに属するメッシュ内に位置するPOI集合Riを取得するPOI集合検索部と、前記POI集合検索部が取得した前記区分iに位置する前記POI集合Riを前記POI情報に基づいて、ソートするPOI集合ソート部と、前記POI集合ソート部によりソートされた前記POI集合Riに所定の件数のPOIが存在するか否かを判定し、前記POI集合Riに所定の件数のPOIが存在する場合は、前記ソートされたPOI集合Riより、前記POI情報データベースに記憶された所定の件数の前記POI情報を取得するPOI取得部と、区分i又は区分i+1のソートされたPOI集合Ri又はRi+1において、前記取得した所定の件数のPOIの後の所定の件数の先頭のPOIの区分i又はi+1、及び区分i又はi+1内の位置を示す後候補引き継ぎ値を前記取得した所定の件数のPOIとともに送信情報に設定する後候補引き継ぎ値設定部とを具備したことを特徴とする地域情報検索サーバが提供される。
【0009】
請求項2記載の発明によれば、地域情報検索サーバであって、全体地図を単一縮尺の複数のメッシュに分割したメッシュ構造において、各POIを一意に特定するPOI識別子を含みPOI情報を記憶するPOI情報データベースと、前記POI識別子及び各POIが位置するメッシュを特定する情報を記憶するPOI検索データベースと、リクエストされた位置情報が示す中心メッシュからメッシュ数について緯度又は経度方向に1個以上離間する隣接メッシュの集合である区分iが順序付けされた複数の区分i(i=1〜j,jは2以上の整数)の集合からなる順序区分集合に属する各区分iに含まれるメッシュを前記メッシュ構造に基づいて抽出する隣接メッシュ計算部と、前記POI検索データベースを検索して、前記区分iに属するメッシュ内に位置するPOI集合Riを取得するPOI集合検索部と、前記POI集合検索部が取得した前記区分iに位置する前記POI集合Riを前記POI情報に基づいて、ソートするPOI集合ソート部と、前記POI集合ソート部によりソートされた前記POI集合Riに所定の件数のPOIが存在するか否かを判定し、前記POI集合Riに所定の件数のPOIが存在する場合は、前記ソートされたPOI集合Riより、前記POI情報データベースに記憶された所定の件数の前記POI情報を取得するPOI取得部と、区分i又は区分i+1のソートされたPOI集合Ri又はRi+1において、前記取得した所定の件数のPOIの後の所定の件数の先頭のPOIの区分i又はi+1、及び区分i又はi+1内の位置を示す後候補引き継ぎ値を前記取得した所定の件数のPOIとともに送信情報に設定する後候補引き継ぎ値設定部とを具備したことを特徴とする地域情報検索サーバが提供される。
【0010】
請求項3記載の発明によれば、地域情報検索サーバであって、全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の段階の1次〜n次(nは2以上の整数)のメッシュに階層化されたメッシュ構造において、リクエストされた位置情報が示す緯度に基づく値に第1所定値を乗算した第1値に、(i−1)(i=2〜n,nは3以上の整数)が分割されるi(i=2〜n,nは3以上の整数)次メッシュの緯度方向の個数を2次〜n次まで乗算した第2値を乗算した10進整数値を2進数に変換した2進数値をメッシュ座標の緯度コードとして算出する緯度コード算出部と、前記位置情報が示す経度から第2所定値を減算した第3値に、(i−1)(i=2〜n,nは3以上の整数)が分割されるi(i=2〜n,nは3以上の整数)次メッシュの経度方向の個数を2次〜n次まで乗算した第4値を乗算した10進整数値を2進数に変換した2進数値を前記メッシュ座標の経度コードとして算出する経度コード算出部と、各POIを一意に特定するPOI識別子を含みPOI情報を記憶するPOI情報データベースと、前記POI識別子及び各POIが位置するメッシュを特定する情報を記憶するPOI検索データベースと、前記位置情報が示す地点が位置するn次中心メッシュからn次メッシュ数について緯度又は経度方向に1個以上離間する隣接メッシュの集合である区分iが順序付けされた複数の区分i(i=1〜j,jは2以上の整数)の集合からなる順序区分集合に属する各区分iに含まれるn次の隣接メッシュまでの緯度方向及び経度方向に離間するn次メッシュ数を前記緯度コード及び前記経度コードに加減算して、前記区分iに属する前記各隣接メッシュのメッシュ座標を算出する区分i内メッシュ座標算出部と、前記区分iに属する隣接メッシュの前記メッシュ座標に基づいて、前記POI検索データベースを検索して、前記区分iに位置するPOI集合Riを取得するPOI集合検索部と、前記POI集合検索部が取得した前記区分iに位置する前記POI集合Riを前記POI情報に基づいて、ソートするPOI集合ソート部と、前記POI集合ソート部によりソートされた前記POI集合Riに所定の件数のPOIが存在するか否かを判定し、前記POI集合Riに所定の件数が存在する場合は、前記ソートされたPOI集合Riより、所定の件数のPOIを取得するPOI取得部と、区分i又は区分i+1のソートされたPOI集合Ri又はRi+1において、前記取得した所定の件数のPOIの後の所定の件数の先頭のPOIの区分i又はi+1、及び区分i又はi+1内の位置を示す後候補引き継ぎ値及び前記取得した所定の件数のPOIを送信情報に設定する後候補引き継ぎ値設定部とを具備したことを特徴とする地域情報検索サーバが提供される。
【0011】
請求項4記載の発明によれば、地域情報検索サーバであって、全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の段階に階層化され、各段階のメッシュには、緯度の増加とともに1ずつ増加する緯度部分の10進数及び経度の増加とともに1ずつ増加する経度部分の10進数の第1メッシュ番号、もしくは10進数のメッシュ番号であって、該10進数値を2進数で表現したとき、緯度に対応する所定ビットのビット値が緯度の増加とともに1ずつ増加し、経度に対応する所定ビットのビット値が経度の増加とともに1ずつ増加する第2メッシュ番号が付与され、i(i=1〜n−1,nは3以上の整数)次メッシュが緯度及び経度方向にそれぞれ2の冪乗個の(i+1)次メッシュに分割される階層的な分割に係る1〜n段階の1次〜n次メッシュの前記第1メッシュ番号もしくは前記第2メッシュ番号が1次メッシュを最上位桁として次数の昇順に順次連結されて、該n次メッシュを一意に特定するメッシュコードが付与されるメッシュ構造において、リクエストされた位置情報が示す地点が位置するn次中心メッシュのメッシュコードの1次〜n次までの10進数の前記緯度部分及び前記経度部分のそれぞれの前記第1メッシュ番号に基づく10進数値その10進数値の最大値に応じたビット長の緯度部分及び経度部分の2進数値、もしくは前記第2メッシュ番号をその10進数値の最大値に応じたビット長の第1及び第2所定ビットからなる緯度部分及び経度部分の2進数値を、1次メッシュを最上位側に次数の昇順に連結したパックコードを1次〜n次までの各次数についての前記緯度部分及び前記経度部分の前記2進数値をそれぞれ次数の昇順に上位ビット側に順に連結して、緯度コード及び経度コードのメッシュ座標に変換するメッシュ座標変換部と、各POIを一意に特定するPOI識別子を含みPOI情報を記憶するPOI情報データベースと、前記POI識別子及び各POIが位置するメッシュを特定する情報を記憶するPOI検索データベースと、前記中心メッシュからn次メッシュ数について緯度又は経度方向に1個以上離間する隣接メッシュの集合である区分iが順序付けされた複数の区分i(i=1〜j,jは2以上の整数)の集合からなる順序区分集合に属する各区分iに含まれるn次の隣接メッシュまでの緯度方向及び経度方向に離間するn次メッシュ数を前記緯度コード及び前記経度コードに加減算して、前記区分iに属する前記各隣接メッシュのメッシュ座標を算出する区分i内メッシュ座標算出部と、前記区分iに属する隣接メッシュの前記メッシュ座標に基づいて前記POI検索データベースを検索して、前記区分iに位置するPOI集合Riを取得するPOI集合検索部と、前記POI集合検索部が取得した前記区分iに位置する前記POI集合Riを前記POI情報に基づいて、ソートするPOI集合ソート部と、前記POI集合ソート部によりソートされた前記POI集合Riに所定の件数のPOIが存在するか否かを判定し、前記POI集合Riに所定の件数が存在する場合は、前記ソートされたPOI集合Riより、所定の件数のPOIを取得するPOI取得部と、区分i又は区分i+1のソートされたPOI集合Ri又はRi+1において、前記取得した所定の件数のPOIの後の所定の件数の先頭のPOIの区分i又はi+1、及び区分i又はi+1内の位置を示す後候補引き継ぎ値及び前記取得した所定の件数のPOIを送信情報に設定する後候補引き継ぎ値設定部とを具備したことを特徴とする地域情報検索サーバが提供される。
【0012】
請求項5記載の発明によれば、請求項1〜4のいずれかに記載の発明において、前記POI取得部は、前記所定の件数のPOIが前記POI集合Riに存在しない場合は、前記区分i及び前記順序付けによる次の区分i+1についてソートされたPOI集合Ri及びRi+1に基づいて、所定の件数のPOIを検索し、区分i+1でも所定の件数のPOIが取得できない場合は、区分i+2・・・と所定の件数のPOIが取得されるまで区分の範囲を拡大することを特徴する地域情報検索サーバが提供される。
【0013】
請求項6記載の発明によれば、請求項1〜5のいずれかに記載の発明において、前記後候補引き継ぎ値が設定された後候補リクエストに基づいて、前記POIデータベースを検索して、前記後候補引き継ぎ値が示す区分iに位置するPOI集合Riを取得する後候補POI集合検索部と、前記POI集合検索部が取得した前記区分iに位置する前記POI集合Riを前記POI情報に基づいてソートする後候補POI集合ソート部と、前記後候補POI集合ソート部によりソートされた前記POI集合Riに前記引き継ぎ値が示す区分i内の位置が示すPOI以降に所定の件数のPOIが存在するか否かを判定し、前記POI集合Riに所定の件数が存在する場合は、前記ソートされたPOI集合Riより、所定の件数のPOIを取得し、所定の件数のPOIが前記POI集合Riに存在しない場合は、前記区分i及び前記順序付けによる次の区分i+1についてソートされたPOI集合Ri及びRi+1に基づいて、所定の件数のPOIを取得する後候補POI取得部を更に具備したことを特徴とする地域情報検索サーバが提供される。
【0014】
請求項7記載の発明によれば、請求項4記載の発明において、前記POI検索データベースに格納される各POIが位置するメッシュを特定する情報は、各POIが位置するメッシュの前記パックコードであり、前記POI集合Ri取得部は、前記隣接メッシュのメッシュ座標を前記パックコードに変換して、該パックコードに基づいて、前記POI検索データベースを検索して、前記区分iに位置する前記POI集合Riを取得することを特徴とする地域情報検索サーバが提供される。
【0015】
請求項8記載の発明によれば、請求項6記載の発明において、前記後候補のリクエストに基づき、前記後候補POI取得部が取得した前記後の所定の件数のPOIの前の前記所定の件数の最後のPOIの区分及び区分内の位置を示す前候補引き継ぎ値を送信情報に設定する前候補引き継ぎ値設定部を更に備えたことを特徴とする地域情報検索サーバが提供される。
【発明の効果】
【0016】
請求項1または請求項2記載の発明によると、階層化されたメッシュ構造または階層化されていない単一階層のメッシュ構造において、区分iに属する複数の隣接メッシュに属するPOI集合Ri毎にPOIをソートして、N件のPOI情報を取得していくので、検索・ソートの範囲を限定することができ、後候補のN件の検索・ソートの高速化が可能になる。
【0017】
請求項3記載の発明によると、請求項1記載の発明の効果に加えて、中心メッシュの緯度・経度から算出したメッシュ座標に中心メッシュから隣接メッシュまでのまでのメッシュ数を加減算して、区分iに属する隣接メッシュのメッシュ座標を求め、隣接メッシュを特定するので、区分iに属する隣接メッシュを高速に抽出でき、処理が高速になる。
【0018】
請求項4記載の発明によると、請求項1記載の発明の効果に加えて、中心メッシュのメッシュコードから変換したメッシュ座標に中心メッシュまでのメッシュ数を加減算して、区分iに属する隣接メッシュのメッシュ座標を求めて、隣接メッシュを特定するので、区分iに属する隣接メッシュを高速に抽出することができ、処理が高速になる。
【0019】
請求項5記載の発明によると、区分iに所定の件数のPOIが存在しなければ、区分i,i+1,i+2,・・・と順次範囲を広げてPOI集合Riを検索・ソートするので、POI検索・ソートの範囲を限定でき、POI集合の検索・ソートの高速化を図ることができるとともに、処理効率を向上できる。
【0020】
請求項6記載の発明によると、後候補引き継ぎ値に基づいて、後候補の所定の件数を取得するので、後候補の検索・ソートの高速化を図ることができるとともに、処理効率を向上できる。
【0021】
請求項7記載の発明によると、POI検索データベースに、各POIが属するメッシュのパックコードを格納するので、隣接メッシュのパックコードのリストをキーとしてPOI検索データベースの絞り込みとPOI情報データベースの結合を行うことにより、隣接メッシュに位置するPOI集合Riを検索することができる。
【0022】
請求項8記載の発明によると、前候補引き継ぎ値に基づいて、前候補の所定のN件を取得するので、前候補の検索・ソートが高速になるとともに、処理効率を向上できる。
【図面の簡単な説明】
【0023】
【図1】本発明の第1実施形態による地域情報検索システムの概略構成図である。
【図2】図1中の携帯端末装置の機能ブロック図である。
【図3】図1中の地域情報検索サーバの機能ブロック図である。
【図4】図3中のPOIリスト取得部の機能ブロック図である。
【図5】図3中の前後候補取得部の機能プロック図である。
【図6】図1中のPOI情報テーブルの構成図である。
【図7】図1中のPOI検索テーブルの構成図である。
【図8】本発明の実施形態による多階層メッシュ構造を説明するための図である。
【図9】2次メッシュ及び2次メッシュ番号を示す図である。
【図10】n次(nは3以上の整数)メッシュ及びn次メッシュ番号を示す図である。
【図11】POI検索テーブルの作成方法を示すフローチャートである。
【図12】隣接メッシュのメッシュ座標の算出方法を示す図である。
【図13】隣接メッシュのメッシュ座標の算出方法を示す図である。
【図14】地域情報検索サーバのPOIリストの取得方法を示すフローチャートである。
【図15】地域情報検索サーバの前後候補の取得方法を示すフローチャートである。
【図16】区分iを示す図である。
【図17】携帯端末装置と地域情報検索サーバとの間でPOIリスト及び前後候補の取得に係るシーケンスチャートである。
【図18】携帯端末装置のPOIリスト表示例を示す図である。
【図19】携帯端末装置の後候補の表示例を示す図である。
【図20】本発明の第2実施形態による地域情報検索システムの概略構成図である。
【図21】図20中の情報端末装置の機能ブロック図である。
【図22】図20中の地域情報検索サーバの機能ブロック図である。
【図23】図22中のPOIリスト取得部の機能ブロック図である。
【図24】図22中の前後候補取得部の機能ブロック図である。
【図25】図20中のPOI検索テーブルの構成図である。
【図26】情報端末装置と地域情報検索サーバとの間でPOIリスト及び前後候補の 取得に係るシーケンスチャートである。
【図27】情報端末装置のPOIリスト表示例を示す図である。
【図28】情報端末装置の前後候補の表示例を示す図である。
【発明を実施するための形態】
【0024】
第1実施形態
図1は本発明の第1実施形態による地域情報検索システム1の構成図である。図1に示すように、地域情報検索システム1は、携帯端末装置2と、無線基地局4、基地局制御装置6、インターネット等の通信ネットワーク8と、地域情報検索サーバ10と、POI情報検索テーブル12と、POI検索テーブル14を具備する。
【0025】
携帯端末装置2は、携帯電話、スマートフォン、PDA(Personal Digital Assistants)等の移動体端末であり、無線基地局4及び基地局制御装置6等の移動ネットワーク及びインターネット等の通信ネットワーク8を通して、地域情報検索サーバ10に接続される。携帯端末装置2は、地域情報検索サーバ8と、所定の通信プロトコル、例えば、HTTPプロトコルに従って通信する。また、携帯端末装置2は、図示しないGPS(Global Positioning System)や無線基地局4から緯度・経度の位置情報を取得する。通信ネットワーク8は、インターネット等の通信ネットワークである。
【0026】
図2は、図1中の携帯端末装置2の地域情報(以下、POI(Point Of Interest))の取得に係る機能ブロック図である。図2に示すように携帯端末装置2のPOI取得に係る機能ブロックは、イベントキャッチ部52、位置情報取得部54、リクエスト部56、レスポンス受信部58及びデータ表示部60から構成され、これらは、記憶装置に格納された該当プログラムがメインメモリにローディングされて、CPUによるプログラムの実行により実現される。
【0027】
イベントキャッチ部52は、位置情報の取得や後候補のリクエストや前候補のリクエスト等に係るリンク情報が設定された該当の文字部がクリック操作されたこと等の各種のイベントをキャッチして、位置情報の取得や後候補や前候補のリクエストに必要なリンク情報をパラメータとして位置情報取得部54やリクエスト部56に出力する。
【0028】
位置情報取得部54は、イベントキャッチ部52より地域情報検索の指示がされると、無線基地局4や図示しないGPSと所定のプロトコルに従って無線通信を行い、緯度・経度の位置情報を取得して、リクエスト部56に位置情報及びリンク情報が設定されたジャンルを出力し、POIのリクエストを指示する。
【0029】
リクエスト部56は、POIリクエスト部70、後候補リクエスト72及び前候補リクエスト74を有し、POI、後候補や前候補をリクエストするために、クリックしたときに、リンク情報に対応する情報を地図情報検索サーバ8にリクエストする。
【0030】
POIリクエスト部70は、位置情報取得部54より取得された位置情報を指定して、該位置情報により示される中心メッシュの隣接メッシュに位置するPOIリストの送信を地域情報検索サーバ10にリクエスト(例えば、HTTPリクエスト)する。
【0031】
後候補リクエスト部72は、POIリストとともに画面に表示される後候補のリクエストをするための文字「次へ」がマウス等の入力手段によりクリックされると、リンクされている後述する後候補の所定の件数のPOIの昇順の並びにおける先頭のPOIの区分i及び区分内の位置Sの後候補引き継ぎ値を地域情報検索サーバ10に送信して、後候補の送信をリクエスト(例えば、HTTPリクエスト)する。ここで、後候補とは、POIリストが所定の件数(N件,例えば、N=10)表示されているとき、次のN件のPOIリストをいう。
【0032】
前候補リクエスト部74は、POIリストとともに画面に表示される前候補のリクエストをするための文字「前へ」がマウス等の入力手段によりクリックされると、リンクされている後述する前候補のN件のPOIの降順の並びにおける先頭(昇順の並びでは最後)のPOIの区分i及び区分内の位置Sの前候補引き継ぎ値を地域情報検索サーバ10に送信して、前候補の送信をリクエスト(例えば、HTTPリクエスト)する。前候補とは、POIリストがN件表示されているとき、その前のN件のPOIリストをいう。
【0033】
レスポンス受信部58は、地域情報検索サーバ10より、リクエストに対するレスポンスを受信するものであり、POIリスト受信部76、後候補受信部78及び前候補受信部80等を有する。POIリスト受信部76は、POIリストのリクエストのレスポンスであるPOIリスト、後候補引き継ぎ値を受信して、データ表示部60に出力する。後候補受信部78は、後候補リストのリクエストのレスポンスである後候補リスト、後候補引き継ぎ値及び前候補引き継ぎ値を受信して、データ表示部60に出力する。前候補受信部80は、前候補リストのリクエストのレスポンスである前候補リスト、後候補引き継ぎ値及び前候補があれば前候補引き継ぎ値を受信して、データ表示部60に出力する。
【0034】
データ表示部60は、レスポンス受信部58から出力されたレスポンスを画面に表示するのであり、POIリスト表示部82及び前後候補リスト表示部84を有する。POIリスト表示部82は、POIリスト受信部76が受信したPOIリスト及び後候補をリクエストするためにクリックされ、後候補引き継ぎ値がリンクされた「次へ」の文字を画面に表示する。前後候補リスト表示部84は、後候補受信部78や前候補受信部80が受信したが受信した後候補リストや前候補リスト、後候補をリクエストするためにクリックされ、後候補引き継ぎ値がリンクされた「次へ」の文字、及び前候補をリクエストするためにクリックされ、前候補引き継ぎ値がリンクされた「前へ」の文字を画面に表示する。
【0035】
地域情報検索サーバ10は、POI情報テーブル12及びPOI検索テーブル14を有し、以下の機能を有する。
【0036】
(1) POI検索テーブル14を作成する。即ち、POI情報テーブル12から各POI識別子(POIID)及び該POIIDを有するPOIが位置する緯度経度を取得し、緯度経度から後述する式(1),(2)に従って、緯度経度の地点が位置する最高次数のメッシュ(例えば、10次メッシュ)の緯度コード及び経度コードからなるメッシュ座標を算出し、このメッシュ座標を後述の最高次数のパックコードに変換して、パックコード及びPOIIDをPOI検索テーブル14に格納する。尚、POI情報テーブル12に各POIが登録された時点で該POIについてのパックコード及びPOIIDをPOI検索テーブル14に登録するようにしても良い。また、POI検索テーブル14にパックコードではなく、緯度コード及び経度コードから成るメッシュ座標をPOIIDとともに格納するようにしても良い。
【0037】
(2) 本実施形態では、例えば、1次メッシュは、8×8の2次メッシュに分割され、(i−1)(i=3〜n,nは最高次数 (例えば、n=10))には、2×2のi次(i=3〜n)メッシュに分割されている。そして、1次メッシュには、それぞれ2桁の1次メッシュ番号が付与され、2次メッシュには、それぞれ1桁(0〜7)×2の2次メッシュ番号が付与され、(i−1)次メッシュ(i=3〜n,nは最高次数(例えば、n=10))を2×2に分割するi(i=3〜n,nは最高次数)次メッシュには、経度部分と緯度部分に合わせて1桁(0〜3,2進数表現で0ビット目が経度部分のビット、1ビット目が緯度部分のビット)のメッシュ番号が付与された多段階のメッシュ構造の地図である。
【0038】
1次及び2次メッシュのように、緯度部分と経度部分にそれぞれ10進数のメッシュ番号が別々に付与されるメッシュ番号を第1メッシュ番号と呼び、3次メッシュ〜n次メッシュのように、10進数であって、緯度部分と経度部分を合わせて10進数のメッシュ番号が付与されて、その2進表現において、所定ビット(例えば、0ビット目が経度部分、1ビット目が緯度部分)が割り当てられている10進数値を第2メッシュ番号と呼ぶ。1次メッシュ及び2次メッシュは総務省で定められたメッシュであり、3次以降のメッシュは拡張メッシュである。
【0039】
(3) 携帯端末装置2からPOIリストのリクエストとともに送信された位置情報(緯度経度)から後述する式(1),(2)に従って、位置情報が示す地点が位置する最高次数の中心メッシュの緯度コード及び経度コードからなるメッシュ座標を算出して、中心メッシュの後述する区分0や中心メッシュに隣接するメッシュ(隣接メッシュ)の集合である後述する区分i(i=1,2,・・・)からなる順序付け区分集合に属する区分i(i=1,2,・・・)に含まれる隣接メッシュについて、中心メッシュから隣接メッシュのまでの緯度方向及び経度方向のn次(最高次数)メッシュ数を中心メッシュの後述するメッシュ座標の緯度コード及び経度コードに加減算して、隣接メッシュの緯度コード及び経度コードのメッシュ座標を求める。隣接メッシュとは、中心メッシュから中心メッシュと同じ次数のメッシュ数について緯度又は経度方向に1個以上離間するメッシュをいう。区分0に含まれる中心メッシュのメッシュ座標や区分i(i=1,2,・・・,の場合)に含まれる隣接メッシュのメッシュ座標を後述するパックコードに変換し、パックコードのリストを作成して、パックコードリストをキーにしてPOI検索テーブル14による絞り込みとPOI情報テーブル12とのテーブル結合を行って、同一区分i内のPOI集合Riを取得する。POI集合Riを所定のキーに基づいて、昇順にソートして、ソートされたPOI集合Riから所定の件数(以下、N件)を取得するともに、POIの昇順の並びにおける次のN件の先頭のPOIの区分i及び区分内の位置を示す後候補引き継ぎ値へリンクを設定して、N件のPOIリストともに携帯端末装置2にレスポンスする。区分i内にN件が存在しなければ、順序付け区分集合の次の区分i+1に含まれる隣接メッシュのメッシュ座標を算出し、メッシュ座標をパックコードに変換し、当該パックコードリストをキーにして、POI検索テーブル14による絞り込みとPOI情報テーブル12とのテーブル結合を行って、同一区分i+1内のPOI集合Ri+1を取得する。POI集合Ri+1を所定のキーに基づいて、昇順にソートして、ソートされたPOI集合Ri,Ri+1から所定の件数(以下、N件)を取得する。N件が取得できなければ、更に、区分i+2,・・・について同様の処理をして、POI集合Ri,Ri+1,Ri+2,・・・からN件を取得する。即ち、POI集合Rj(j=0〜i)において、Σ|Rj|(j=0〜i),|Rj|はPOI集合Rjの個数))≧Nとなるまで、POI集合Rjが検索される。尚、N件の検索は、区分0が最優先され,区分iが区分i+1に優先する。
【0040】
(4) 後候補や前候補のリクエストがされた場合は、リクエストとともに送信される後候補引き継ぎ値や前候補引き継ぎ値が示す区分iより指定される中心メッシュのメッシュ座標から区分iに含まれる隣接メッシュのメッシュ座標を求め、隣接メッシュのメッシュ座標をパックコードに変換し、パックコードのリストを作成して、パックコードリストをキーにしてPOI検索テーブル14による絞り込みとPOI情報テーブル12とのテーブル結合を行って、同一区分i内のPOI集合Riを取得する。POI集合Riを所定のキーに基づいて昇順(後候補リクエストの場合)または降順(前候補リクエストの場合)にソートし、後候補がリクエストされた場合、後候補引き継ぎ値が示す区分iの区分内の位置から後のN件のPOI、前候補がリクエストされた場合、前候補引き継ぎ値が示す区分iの区分内の位置から前のN件のPOIを(3)と同様にして取得して、このN件及びこのN件の後のN件の候補引き継ぎ値や存在する場合はこのN件の前のN件の前候補引き継ぎ値を携帯端末装置2に後候補や前候補のN件とともにレスポンスする。尚、前候補リクエストの場合は、区分i内にN件が存在しなければ、順序付け集合の前の区分i−1に含まれる隣接メッシュのメッシュ座標を算出し、メッシュ座標をパックコードに変換し、当該パックコードリストをキーにして、POI検索テーブル14による絞り込みとPOI情報テーブル12とのテーブル結合を行って、同一区分i−1内のPOI集合Ri−1を取得する。POI集合Ri−1を所定のキーに基づいて、降順にソートして、ソートされたPOI集合Ri,Ri−1から所定の件数(以下、N件)を取得する。N件が取得できなければ、更に、区分i−2,・・・について同様の処理をして、POI集合Ri,Ri−1,Ri−2,・・・からN件を取得する。
【0041】
地域情報検索サーバ10のハードウェア構成は、CPU、表示装置、入力手段、ROM、メインメモリ、記憶媒体、I/Oコントローラ及び通信インタフェース部等を有する。
【0042】
図3に示すように、地域情報検索サーバ10は、POI検索テーブル作成部148、リクエスト受信部150、POIリスト取得部152、前後候補取得部154及びレスポンス送信部156を有する。
【0043】
図6はPOI情報テーブル12の構成図である。図6に示すように、各POIはPOIを一意に特定するPOIID、POIが位置する緯度経度、POIの名称、POIのジャンル、POIの電話番号、並びに図示しないPOIの詳細情報を提供するURL及びサムネイル画像等を含む。
【0044】
図7は、図1中のPOI検索テーブル14の構成図である。図7に示すように、POI検索テーブル14は、POIIDとパックコードとを紐付けるためのテーブルであり、各POIのPOIID及び該POIが位置するn(最高次数)次メッシュのパックコードが格納される。
【0045】
POI検索テーブル作成部148は、図6に示すPOI情報テーブル12から各POIID及び該POIIDを有するPOIが位置する緯度経度を順次読み出して、後述するように、緯度経度から該緯度経度の地点が位置する最高次数nのメッシュ(例えば、10次メッシュ)のメッシュ座標(緯度コード及び経度コード)を後述の式(1),(2)に従って算出し、メッシュ座標を後述のパックコードに変換して、POIID及びパックコードを図7に示すPOI検索テーブル14に格納する。尚、POI検索テーブル14にはパックコードの代わりに緯度コード及び経度コードから成るメッシュ座標を格納するようにしても良い。
【0046】
図8は、メッシュ構造を示す図である。図9は、2次メッシュ番号を示す図である。図10は、3次〜n(nは3以上の整数)次メッシュのメッシュ番号を示す図である。図8に示すように、全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の段階に階層化されている。例えば、1次メッシュが8×8の2次メッシュに分割され、2次メッシュが2×2の3次メッシュに分割され、3次メッシュが2×2の4次メッシュ、4次メッシュが2×2の5次メッシュ、・・と階層的に分割されている。
【0047】
1次メッシュは、1次メッシュに含まれる任意の地点の緯度をlat、経度をlonとすると、1次メッシュ番号の2桁の緯度部分の10進数値(整数)はlat×1.5となり、1次メッシュ番号の2桁の経度部分の10進数値(整数)は(lon−100)となる。
【0048】
図9に示すように,2次メッシュのメッシュ番号は、2桁が付与されて、上位1桁の緯度部分には、緯度が大きくなるとともに値が大きくなるように0〜7までの数が割り当てられている。例えば、2次メッシュの一番南には0、一番北には7が付与されている。下位1桁の経度部分には、経度が大きくなるとともに値が大きくなるように0〜7までの数が付与されている。例えば、2次メッシュの一番西には0、一番東には7が割り当てられている。
【0049】
図10に示すように、n次(nは3以上)メッシュは2×2に分割されて、左下隅に0、右下隅に1、左上隅に2、右上隅に3が割り当てられている。これにより、0〜3までの10進数値を2ビットの2進数値に変換したとき、上位1ビットが緯度部分となり、下2つのメッシュは0、上2つのメッシュ番号は1となり、緯度が大きいメッシュ番号の値は1大きくなる。下位1ビットは経度部部分となり、左2つのメッシュは0、右2つのメッシュは1となり、経度が大きいメッシュの値は1大きくなる。
【0050】
例えば、1次メッシュのメッシュ番号の緯度部分を53、1次メッシュのメッシュ番号の経度部分を39、2次メッシュのメッシュ番号の緯度部分を4、2次メッシュのメッシュ番号の経度部分を6、3次メッシュのメッシュ番号を0、4次メッシュのメッシュ番号を0、5次メッシュのメッシュ番号を3、6次メッシュのメッシュ番号を0、7次メッシュのメッシュ番号を0、8次メッシュのメッシュ番号を0、9次メッシュのメッシュ番号を0、10次メッシュのメッシュ番号を0とすると、メッシュコードは、53394600300000となる。
【0051】
このように、本実施形態では、全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の段階に階層化され、各段階のメッシュには、緯度の増加とともに0〜最大値まで1ずつ増加する緯度部分の10進数及び経度の増加とともに0〜最大値まで1ずつ増加する経度部分の10進数の第1メッシュ番号、もしくは10進数のメッシュ番号であって、該10進数値を2進数で表現したとき、緯度に対応する所定ビットのビット値が緯度の増加とともに0〜最大値まで1ずつ増加し、経度に対応する所定ビットのビット値が経度の増加とともに0〜最大値まで1ずつ増加する第2メッシュ番号が付与され、i(i=1〜n−1,nは3以上の整数)次メッシュが緯度及び経度方向にそれぞれ2の冪乗個の(i+1)次メッシュに分割される階層的な分割に係る1〜n段階の1次〜n次メッシュの第1メッシュ番号もしくは第2メッシュ番号が1次メッシュを最上位桁として次数の昇順に順次連結されて、該n次メッシュを一意に特定するメッシュコードが付与されるメッシュ構造である。
【0052】
POI検索テーブル作成部148は、POI情報テーブル12から取得した緯度から次式(1)よりn(nは3以上の任意の次数で良いがここでは最高次数)次メッシュのメッシュ座標の緯度コードCaを求める。緯度をlatとする。ここで、緯度が度・分・秒で指定されている場合は、分・秒を度に変換する。
【0053】
Ca=FLOOR(((lat−10)×3)÷2)×(i(i=2〜n)次メッシュの経度方向の数をi=2〜nまで乗算した値)) ・・・ (1)
FLOOR()は小数点以下を切り捨てる関数である。
【0054】
ここで、緯度方向のi(i=2〜n)次メッシュの数をi=2〜nまで乗算した値は、各1次メッシュに関わるn次メッシュの緯度方向の数を意味し、n次メッシュと1次メッシュの縮尺を等しくして、各1次メッシュを該1次メッシュの地図範囲に含まれるn次メッシュで分割したときの緯度方向のn次メッシュの数に等しい。
【0055】
3/2(第1所定値)を乗算するのは、緯度部分のメッシュ番号に合わせるためである。latから10を引くのは、緯度コードの1次メッシュに該当する緯度部分を6ビットで択捉島まで含まれるようにするためであり、こうすることにより、1次メッシュのメッシュ座標の緯度部分P1a、経度部分P1bがそれぞれ6ビットであれば日本の東西南北端点である南鳥島、沖ノ島、与那国島、択捉島の各緯度の緯度部分を格納することができて、処理効率を向上させることができる。
【0056】
このとき、(lat−10)×3/2=lat×3/2−15であり、これは1次メッシュの緯度部分のメッシュ番号から15減算した値となり、緯度10°の緯度コードは0でとなり、緯度10°の緯度部分のメッシュ番号が15と整数であることより、緯度10°のメッシュの2次〜n次メッシュの緯度部分のメッシュ番号は、0もしくは緯度部分の該当ビット値が0となる。
【0057】
2次メッシュが1次メッシュを8×8に分割し、i(i=3〜n)次メッシュが(i−1)(i=3〜n)次メッシュを2×2に分割する場合、緯度方向の2次メッシュの数=23個、i(i=3〜n)次メッシュの緯度方向の数が2個であることから、i(i=2〜n)次メッシュの緯度方向の数をi=2〜nまで乗算した値は、23×2(n-2)=2の(n+1)乗となり、
Ca=FLOOR((((lat−10)×3)÷2)×(2の(n+1)乗))
となる。
【0058】
Caは、北緯10度の地点が含まれる地点から1次メッシュを北に隙間なく並べ、該1次メッシュと縮尺を等しくしたn次メッシュで各1次メッシュを分割したとき、北緯がlatの地点が含まれるn次メッシュまでの緯度方向のn次メッシュの個数−1である。
【0059】
POI検索テーブル作成部148は、経度から次式(2)よりn(nは3以上)次メッシュのメッシュ座標の経度コードCbを求める。経度をlonとする。ここで、経度が度・分・秒で指定されている場合は、分・秒を度に変換する。
【0060】
Cb=FLOOR((lon−100)×i(i=2〜n)次メッシュの経度方向の数をi=2〜nまで乗算した値) ・・・ (2)
FLOOR()は小数点以下を切り捨てる関数である。
【0061】
ここで、経度方向のi(i=2〜n)次メッシュの数をi=2〜nまで乗算した値は、各1次メッシュに関わるn次メッシュの経度方向の数を意味し、n次メッシュと1次メッシュの縮尺を等しくして、各1次メッシュを該1次メッシュの地図範囲に含まれるn次メッシュで分割したときの経度方向のn次メッシュの数に等しい。lonから100を引くのは、東経100度の経度コードを経度部分のメッシュ番号と同じ0とするためである。
【0062】
例えば、2次メッシュが1次メッシュを8×8に分割して、i(i=1〜n)次メッシュが(i−1)(i=1〜n)次メッシュを2×2に分割するとする。この場合、経度方向の2次メッシュの数=23、経度方向のi(i=3〜n)次メッシュの経度方向の数が2であることから、経度方向のi(i=2〜n)次メッシュの数をi=2〜nまで乗算した値は、23×2(n-2)=2の(n+1)乗)となり、
Cb=FLOOR((lon−100)×(2の(n+1)乗))
となる。
【0063】
Cbは、東経100度の地点が含まれる地点から1次メッシュを東に隙間なく並べ、該1次メッシュと縮尺を等しくしたn次メッシュで各1次メッシュを分割したとき、経度がlatの地点が含まれるn次メッシュまでの経度方向のn次メッシュの個数−1である。
【0064】
東経139度46分09.527秒、北緯35度40分41秒の10次の場合について説明する。
【0065】
上記を度で表すと、
lat=35+(40÷60)+(41÷3600)=35.678055
lon=139+(46÷60)+(09.527÷3600)=139.769313
となる。
【0066】
Ca=FLOOR((((lat−10)×3)÷2)×(2の11乗))
=FLOOR(((25.678055)×3)×1024)
=FLOOR(78882.98496)
=78882(10進)
=10011010000100010(2進)
Cb=FLOOR((lon−100)×(2の11乗))
=FLOOR(39.769313×2048)
=FLOOR(81447.553024)
=81447(10進)
=10011111000100111(2進)
本実施形態では、緯度コードの1次の緯度部分は6ビット、2次の緯度部分は3ビット、i(i=3〜n)次の緯度部分は1ビットであり、経度コードの1次の経度部分は6ビット、2次の経度部分は3ビット、i(i=3〜n)次の経度部分は1ビットである。
【0067】
緯度コードCa=C1aC2aC3a・・・C7aC8aC9aC10aとすると、
1次の緯度部分C1a=100100,2次の緯度部分C2a=100,3次の緯度部分C3a=0,4次の緯度部分C4a=0,5次の緯度部分C5a=1,6次の緯度部分Ca=0,7次の緯度部分Ca=0,8次の緯度部分C8a=0,9次の緯度部分C9a=1,10次の緯度部分C10a=0となる。
【0068】
経度コードCb=C1bC2bC3b・・・C7bC8bC9bC10bとすると、
1次の経度部分C1b=100111,2次の経度部分C2b=110,3次の経度部分C3b=0,4次の経度部分C4b=0,5次の経度部分C5b=1,6次の経度部分C6b=0,7次の経度部分C7b=0,8次の経度部分C8b=1,9次の経度部分C9b=1,10次の経度部分C10b=1となる。
【0069】
POI検索テーブル作成部148は、式(1),(2)より算出された緯度コードCa及び経度コードCbのメッシュ座標から各次数i(i=1〜n)の緯度部分Cia及び経度部分Cibについて緯度部分Ciaを経度部分Cibの上位ビット側にし、1次を最上位側にして、次数の昇順に結合して、パックコードに変換する。
【0070】
即ち、緯度コードCa=C1aC2aC3a・・・Cna、経度コードCb=C1bC2bC3b・・・Cnbとすると、パックコードP1aP1bP2aP2bP3・・・Pnは、以下のようになる。
P1a=C1a=100110(2進)=38(10進)
P1b=C1b=100111(2進)=39(10進)
P2a=C2a=100(2進)=4(10進)
P2b=C2b=110(2進)=6(10進)
P3=C3aC3b=00(2進)
P4=C4aC4b=00(2進)
P5=C5aC5b=11(2進)
P6=C6aC6b=00(2進)
P7=C7aC7b=00(2進)
P8=C8aC8b=01(2進)
P9=C9aC9b=11(2進)
P10=C10aC10b=01(2進)
このとき、北緯10度の地点の緯度部分のメッシュ番号は15であり、整数であることから、北緯10度の地点の2次メッシュ〜n次メッシュのメッシュ番号は0となることから、メッシュ座標から算出されるメッシュコードは、緯度経度により与えられるメッシュコードに一致する。
【0071】
メッシュコードについては、
M1a=P1a+15
M1b=P1b
M2a=P2a=4
M2b=P2b=6
M3=P3=0
M4=P4=0
M5=P5=3
M6=P6=0
M7=P7=0
M8=P8=1
M9=P9=3
M10=P10=1
即ち、メッシュコードは(M1a)(M1b)(M2a)(M2b)(M3)(M4)(M5)(M6)(M7)(M8)(M9)(M10)
=533946003000131
となる。
【0072】
POI検索テーブル作成部148は、POIID及びパックコードをPOI検索テーブル14に格納する。尚、POI検索テーブル14には、POI情報テーブル12にPOIが登録された時点で該POIについてのPOIID及びパックコードを登録するようにしても良い。また、POI情報テーブル12中の緯度経度が変更になったPOIについては、該POIのPOIID及びパックコードをPOI検索テーブル14から一旦削除してから、POI情報テーブル12から変更に係るPOIの緯度経度を取得して、該緯度経度からパックコードの再計算を行って、POIID及びパックコードをPOI検索テーブル14に登録するようにする。
【0073】
図11はPOI検索テーブル14の作成方法を示す図である。以下、図11を参照して、POI検索テーブル14の作成方法の説明をする。ステップS20で、POI情報テーブル12よりPOIID及び緯度経度を取得する。ステップS22で、次のPOIIDが有るか否かを判定する。肯定判定ならば、ステップS24に進み、否定判定ならば、POI検索テーブル14の作成方法の処理を終了する。ステップS24で、取得した緯度から前述した式(1)に従って、緯度コードを算出する。
【0074】
ステップS26で、取得した経度から前述した式(2)に従って、経度コードを算出する。ステップS28で緯度コード及び経度コードから上述したパックコードに変換する。ステップS30で、POIID及びパックコードをPOI検索テーブル14に書き込み、ステップS20に戻る。ステップS20〜S30を繰り返して、POI情報テーブル12に格納されている全てのPOIIDについて、POIの緯度経度からメッシュ座標に変換し、メッシュ座標をパックコードに変換して、POIID及びパックコードをPOI検索テーブル14に書き込み、ステップS20に戻る。
【0075】
図3中のリクエスト受信部150は、携帯端末装置2よりリクエストを受信するものであり、POIリストリクエスト受信部160、後候補リクエスト受信部162及び前候補リクエスト受信部164を有する。POIリストリクエスト受信部160は、POIリストのリクエストを受信して、緯度経度の位置情報をPOIリスト取得部152に出力する。後候補リクエスト受信部162は、後候補のリクエストとともに受信した後候補引き継ぎ値を前後候補取得部154に出力する。前候補リクエスト受信部164は、前候補のリクエストとともに受信した前候補引き継ぎ値を前後候補取得部154に出力する。
【0076】
POIリスト取得部152は、緯度経度の地点が位置する最高次数の中心メッシュ に位置するPOIリスト及び該中心メッシュの隣接メッシュに位置するPOIリスト並びに後候補引き継ぎ値を取得するものであり、図4に示すように、メッシュ座標算出部190、区分i内メッシュ座標算出部192、POI集合Ri検索部194、POI集合Riソート部196、N件取得部198、後候補引き継ぎ値設定部200及び結果生成部202を有する。メッシュ座標算出部190及び区分i内メッシュ座標算出部192は隣接メッシュ計算部を構成する。尚、後述するように、緯度経度の地点が位置する最高次数の中心メッシュについてのPOIリストに限らず、任意の次数の中心メッシュについてPOIリストを取得することができる。
【0077】
メッシュ座標算出部190は、POIリストリクエスト受信部160が受信した緯度経度から前述の式(1),(2)に従って、該緯度経度の地点が含まれる最高次数のメッシュの緯度コード及び経度コードからなるメッシュ座標を算出する。
【0078】
次に、緯度経度からメッシュ座標を算出する方法を説明する。携帯端末装置2より緯度経度の位置情報を取得して、取得した緯度から緯度コードを前述した式(1)に従って算出する。そして、取得した経度から経度コードを前述した式(2)に従って算出する。
【0079】
図12及び図13は、隣接メッシュのメッシュ座標の算出方法を示す図である。以下、図12及び図13を参照して、隣接メッシュのメッシュ座標を算出する方法を説明する。本例では、10次メッシュの場合を示している。携帯端末装置2より受信した緯度経度を「東経139.754394度、北緯35.669921度」とすると、前述した式(1),(2)により算出した、
緯度コードは、10011010000001010(Ca001010と記載する)
経度コードは、10011111000001001(Cb001001と記載する)
となる。
【0080】
パックコードP1aP1bP2aP2bP3P4P5P6P7P8P9P10は,P1a=100110、P1b=100111、P2a=100、P2b=110、P3=00、P4=00、P5=00、P6=00、P7=11、P8-=00、P9=10、P10=01となる。
【0081】
上記のように、緯度経度の地点が位置する中心メッシュM33のメッシュコードは53394600003021(以下、M003021,M=53394600と記載する)となる。
【0082】
式(1)より、緯度コードは、北緯10度の地点が含まれる地点から1次メッシュを北に隙間なく並べ、該1次メッシュと縮尺を等しくしたn次(例えば、10次)メッシュで各1次メッシュを分割したとき、北緯がlatの地点が含まれる10次メッシュまでの緯度方向のn次メッシュの個数−1であることから、中心メッシュM33から緯度方向にi個10次メッシュが離間するメッシュの緯度コードは中心メッシュM33の緯度コードCa001010にiの2進数値を緯度の方向に従って加減算した値である。
【0083】
式(2)より、経度コードは、東経100度の地点が含まれる地点から1次メッシュを東に隙間なく並べ、該1次メッシュと縮尺を等しくしたn次(例えば、10次)メッシュで各1次メッシュを分割したとき、東経がlonの地点が含まれるn次メッシュまでの経度方向のn次メッシュの個数−1であることから、中心メッシュM33から経度方向にi個10次メッシュが離間するメッシュの経度コードは中心メッシュM33の緯度コードCa001010にiの2進数値を経度の方向に従って加減算した値である。
【0084】
よって、メッシュM11の緯度コードはCa001000、経度コードはCb000111、メッシュコードはM002111、メッシュM12の緯度コードはCa001000、経度コードはCb001000、メッシュコードはM003000、メッシュM13の緯度コードはCa001000、経度コードはCb001001、メッシュコードはM003001、メッシュM14の緯度コードはCa001000、経度コードはCb001010、メッシュコードはM003010、メッシュM15の緯度コードはCa001000、経度コードはCb001011、メッシュコードはM003011となる。メッシュMij(i=2〜5,j=1〜5)についても、同様にして、緯度コード及び経度コードが求められる。
【0085】
即ち、図8に示すように、中心メッシュM33をn次メッシュとすると、中心メッシュM33から離間するn次メッシュの個数分だけ離間する方向に応じて、中心メッシュの緯度コード又は経度コードに加減算する、例えば、東に1個離間する場合は、経度コードに1加算し、東に2個離間する場合は、経度コードに2加算し、西に1個離間する場合は、経度コードに1減算し、西に2個離間する場合は、経度コードに2減算し、北に1個離間する場合は、緯度コードに1加算し、北に2個離間する場合は、緯度コードに2加算し、南に1個離間する場合は、緯度コードに1減算し、南に2個離間する場合は、緯度コードに2減算すれば良い。
【0086】
このように、中心メッシュの隣接メッシュのメッシュ座標は、中心メッシュのメッシュ座標に当該隣接メッシュが中心メッシュから離間するn次メッシュの個数をその緯度方向及び経度方向に応じて加減算することにより、隣接メッシュのメッシュ座標を算出することができる。
【0087】
区分i内メッシュ座標算出部192は、上記のように、区分i(i=1,2,・・・)に属する隣接メッシュのメッシュ座標に中心メッシュから緯度方向及び経度方向に離間するn次メッシュの個数を中心メッシュの緯度コード及び経度コードに加減算して、隣接メッシュのメッシュ座標を算出し、メッシュ座標からパックコードに変換して、区分iに属する隣接メッシュのパックコードのリストを作成する。
【0088】
区分0の場合は、中心メッシュのメッシュ座標から変換したパックコードのみからなるリストとなる。また、区分iはN件取得部198により区分j(j=0〜i)より合算してN件のPOIが取得できない場合は、隣接メッシュ座標の算出及びパックコードの変換に係る区分が区分i,i+1,・・・、と順次変更される。
【0089】
尚、緯度コードCa=C1aC2aC3a・・・Cna、経度コードCb=C1bC2bC3b・・・Cnbとすると、パックコードはC1aC1bC2aC2bC3aC3b・・・CnaCnbとなる。
【0090】
区分0は中心メッシュのみからなる集合、区分1は中心メッシュから緯度方向または経度方向にn次メッシュが1個離れた8個のn次の隣接メッシュの集合である。区分2はn次中心メッシュから緯度方向または経度方向にn次メッシュが2個離れた16個のn次隣接メッシュの集合であり、一般に、区分i(i=1,・・・)は中心メッシュから緯度方向または経度方向にn次メッシュがi個離れた隣接メッシュの集合である。
【0091】
POI集合Ri検索部194は、区分iに属するPOI集合Riを検索するものであり、パックコードのリストをキーにしてPOI検索テーブル14による絞り込みとPOI情報テーブル12とのテーブル結合を行って、同一区分i内のPOIのリストであるPOI集合Riを取得する。このとき、POIリクエストにジャンルが指定されている場合は、指定されたジャンルに合致するPOIが検索される。
【0092】
このように、中心メッシュのメッシュ座標に、中心メッシュから隣接メッシュまでのn次メッシュのn次メッシュ数を加減算して、隣接メッシュのメッシュ座標を求め、メッシュ座標からパックコードに変換して、パックコードリストを作成して、POI集合Riを取得しているので高速にPOI集合Riを検索することができる。
【0093】
緯度経度の地点が位置する最高次数の中心メッシュに限らず、任意の次数の中心メッシュについて、POIリストを以下のようにして取得することができる。例えば、最高次数が10次の場合に、POI検索テーブル14には、最高次数10次のパックコードが格納されているとすると、POI緯度経度の地点が位置する9次のメッシュに位置するPOIリストを以下のようにして求める。
【0094】
メッシュ座標算出部190は、9次の中心メッシュのメッシュ座標を算出する。区分i内メッシュ座標算出部192は、区分0については、9次の中心メッシュのメッシュ座標から9次の中心メッシュのパックコードを作成し、区分i(i>0)については、9次の中心メッシュのメッシュ座標から9次の隣接メッシュのメッシュ座標を算出して、9次の隣接メッシュのパックコードのリストを作成する。
【0095】
9次の中心メッシュの9次のパックコード又は9次の隣接メッシュの9次のパックコードのリストに含まれる各パックコードP1aP1bP2aP2bP3P4P5P6P7P8P9とし、P10L=00(2進数)、P10H=11(2進数)と定義すると、POI集合Ri検索部194は、パックコードP1aP1bP2aP2bP3P4P5P6P7P8P9P10LからパックコードP1aP1bP2aP2bP3P4P5P6P7P8P9P10Hまでの範囲で、10次のパックコードが格納されたPOI検索テーブル14による絞り込みとPOI情報テーブル12とのテーブル結合を行って、9次のメッシュに含まれるPOI集合Riを検索する。
【0096】
また、一般に、n次(n=1〜最高次数−1)については、パックコードP1aP1bP2aP2b・・・Pnとし、P(n+1)L=・・・=P10L=00(2進数)、P(n+1)H=・・・=P10H=11(2進数)と定義すると、パックコードP1aP1bP2aP2b・・・PnP(n+1)L・・・P10LからパックコードP1aP1bP2aP2b・・・PnP(n+1)H・・・P10Hの範囲でPOI検索テーブル14からパックコードを検索すれば良い。
【0097】
POI集合Riソート部196は、POI集合Riを特定のPOI情報(例えば、POIID)に従って、昇順にソートする。尚、携帯端末装置2より受信した緯度経度とPOIの緯度経度より、その間の距離に基づいてソートしても良い。
【0098】
N件取得部198は、ソートされたPOI集合Rj(j=0〜i)において、合算してN件のPOIを取得する。N件が取得できない場合は、区分i内隣接メッシュ座標算出部192により、区分i+1に属する隣接メッシュのメッシュ座標を算出し、POI集合Ri検索部194により、区分i+1に位置するPOI集合Ri+1を検索し、POI集合Riソート部196により、POI集合Ri+1をPOIIDに従って昇順にソートし、区分j(j=0〜i,i+1)において合算してN件のPOIを取得する。N件が取得できなければ、更に、区分i+2、・・・、とPOIの検索の区分の範囲を広げて、区分j(j=0〜i,i+1,i+2,・・・)において合算してN件のPOIを取得する。このとき、区分iが区分i+1よりも優先される。
【0099】
後候補引き継ぎ値設定部200は、N件取得部198が取得したN件の次のN件の先頭のPOIが含まれる区分i(中心メッシュのメッシュ座標+番号i)及び次のN件のソートされたPOI集合Riにおける先頭のPOIの位置(並びの順の番号)の後候補引き継ぎ値を設定する。具体的には、N件のPOIの後のN件の先頭のPOIの区分i(nxt_i)及び区分内の位置(nxt_s)の後候補引き継ぎ値を以下のように設定する。
【0100】
(1)nxt_i=N件取得部198が取得したN件のPOIの最後の区分のi,(2)該最後の区分iが区分0と同じであれば、nxt_s=該最後の区分i内で取得したPOI数、(3)該最後の区分iが区分0と異なる場合は、nxt_s=該最後の区分i内で取得したPOI数、(4)(2),(3)の結果、nxt_s=区分i内に含まれるPOI数であれば、nxt_i=該最後の区分のi+1、nxt_s=0(先頭)となる。
【0101】
結果生成部202は、N件のPOIリスト(各POIの店名、POIの店名のリンク情報としてその店の詳細情報を提供するURL、サムネイル画像等)並びに後候補をリクエストするための「次へ」の文字を表示される画面要素に後候補引継ぎ値並びに中心メッシュを特定するための情報としての中心緯度経度もしくは中心メッシュのメッシュ座標、メッシュコードの引き継ぎ値へのリンクが設定された結果を作成する。
【0102】
図3中の前後候補取得部154は、携帯端末装置2のユーザにより、後候補引き継ぎ値及び中心メッシュを特定するための中心緯度経度等の引き継ぎ値へリンクされた「次へ」や前候補引き継ぎ値及び中心メッシュを特定するための中心緯度経度等の引き継ぎ値へリンクされた「前へ」がクリックされて、後候補や前候補がリクエストされたとき、リクエストとともに送信され、後候補リクエスト受信部162や前候補リクエスト受信部164が受信した後候補引き継ぎ値や前候補引き継ぎ値並びに中心メッシュを特定するための中心緯度経度等の引き継ぎ値に基づいて、「次へ」/「前へ」のN件の後候補/前候補のPOIリスト、並びに後候補引き継ぎ値と前候補引継ぎ値(前のN件の先頭(POIの降順の並びにおいて)のPOIの区分i及び区分内の位置)を取得するものであり、図5に示すように、区分i内メッシュ座標算出部212、POI集合Ri検索部214、POI集合Riソート部216、後候補N件取得部218、前候補N件取得部220、後候補引き継ぎ値設定部222、前候補引き継ぎ値設定部224及び結果生成部226を有する。
【0103】
区分i内メッシュ座標算出部212は、図4中の区分i内メッシュ座標算出部192と同様に区分iに属する隣接メッシュのメッシュ座標を後候補引き継ぎ値や前候補引き継ぎ値の区分iにより算出する。後候補N件取得部218や前候補N件取得部220により後候補引き継ぎ値の区分i、または前候補引き継ぎ値の区分iにおいて、N件が取得できない場合は、隣接メッシュのメッシュ座標の算出及びパックリスト作成の対象となる区分が、後候補リクエストの場合は、区分i+1,i+2,・・・、前候補リクエストの場合は、区分i−1,i−2,・・・と変更されるが、処理は区分i内メッシュ座標算出部192と同様である。後候補リクエストと前候補リクエストの場合では、順序付けされた順序区分集合において、前者の場合は昇順に、後者の場合は降順に区分が検索される。後候補引き継ぎ値もしくは前候補引き継ぎ値とともに、引き継がれる中心メッシュを特定するための情報としての中心緯度経度もしくは中心メッシュのメッシュ座標、メッシュコードの引き継ぎ値より、任意の次数について中心メッシュのメッシュ座標を算出する。
【0104】
POI集合Ri検索部214は、POI集合Ri検索部194と同様に、区分iに属するPOI集合Riを検索するものであり、パックコードリストをキーにしてPOI検索テーブル14による絞り込みとPOI情報テーブル12とのテーブル結合を行って、同一区分i内のPOIのリストであるPOI集合Riを取得する。尚、緯度経度の地点が位置する最高次数の中心メッシュに限らず、任意の次数の中心メッシュについてのPOIリストを、POI集合Ri検索部194と同様の処理をすることにより取得することができる。
【0105】
POI集合Riソート部216は、POI集合Riを特定のPOI情報(POIID)に従って、昇順(後候補リクエストされた場合)、または降順(前候補リクエストされた場合)にソートする。
【0106】
後候補N件取得部218は、昇順にソートされたPOI集合Ri(iは、後候補引き継ぎ値の区分のi)において、後候補引き継ぎ値の区分i内の位置から後候補のN件のPOIを取得する。例えば、OFFSET関数を用いて、ソートされたPOI集合Riにおいて、後候補引き継ぎ値の区分内の先頭の位置からN件のPOIを取得する。
【0107】
N件が取得できない場合は、区分i内隣接メッシュ座標算出部212により、区分i+1に属する隣接メッシュのメッシュ座標の算出及びパックリストの作成をし、POI集合Ri検索部214により、パックリストをキーとしてPOI検索テーブル14の絞り込みとPOI情報テーブル12とのテーブル結合により、区分i+1に位置するPOI集合Ri+1を検索し、POI集合Riソート部216により、POI集合Ri+1をPOIIDに従って昇順にソートし、区分i,i+1において、後候補引き継ぎ値の区分内の位置から後のN件のPOIを取得する。N件が取得できなければ、更に、区分i+2、・・・、とPOIの検索の区分の範囲を広げて、区分i,i+1,i+2,・・・から合算してN件のPOIを取得する。
【0108】
前候補N件取得部220は、降順にソートされたPOI集合Ri(iは前候補引き継ぎ値の区分のi)において、前候補引き継ぎ値の区分i内の位置から前のN件のPOIを取得する。例えば、OFFSET関数を用いて、降順にソートされたPOI集合Riにおいて、区分i内の先頭の位置からN件のPOIを取得する。N件が取得できない場合は、区分i内メッシュ座標算出部212により、区分i−1に属する隣接メッシュのメッシュ座標の算出及びパックリストの作成をし、POI集合Ri検索部214により、パックリストをキーとしてPOI検索テーブル14の絞り込みとPOI情報テーブル12とのテーブル結合により、区分i−1に位置するPOI集合Ri−1を検索し、POI集合Riソート部216により、POI集合Ri−1をPOIIDに従って降順にソートし、区分i,i−1において、前候補引き継ぎ値の区分内の位置から前のN件のPOIを取得する。N件が取得できなければ、更に、区分i−2、・・・、とPOIの検索の区分の範囲を広げて、区分i,i−1,i−2・・・から合算してN件のPOIを取得する。
【0109】
後候補引き継ぎ値設定部222は、後候補N件取得部218や前候補N件取得部220が取得したN件の次のN件の先頭のPOIの区分及び区分内の位置を示す後候補引き継ぎ値を設定する。N件の次のN件の先頭のPOIの区分i(nxt_i)と区分内での位置(nxt_s)の後候補引き継ぎ値を以下のように設定する。
【0110】
後候補がリクエストされた場合は、(1)nxt_i=後候補N件取得部218が取得したN件の後候補の最後の区分のi,(2)該最後の区分iが後候補引き継ぎ値の区分iと同じであれば、nxt_s=後候補引き継ぎ値の区分内の位置+区分i内で取得したPOI数、(3)該最後の区分iが後候補引き継ぎ値の区分iと異なる場合は、nxt_s=該最後の区分i内で取得したPOI数、(4)(2),(3)の結果、nxt_s=該最後の区分i内に含まれるPOI数であれば、nxt_i=該最後の区分のi+1、nxt_s=0(先頭)となる。
【0111】
前候補がリクエストされた場合、(1)前候補引き継ぎ値の区分内の位置がゼロ(先頭)の場合、nxt_i=前候補引き継ぎ値の区分のi+1、nxt_s=ゼロ(先頭)、(2)前候補引き継ぎ値の区分内の位置がゼロ(先頭)以外の場合、nxt_i=前候補引き継ぎ値の区分のi、nxt_s=前候補引き継ぎ値の区分内のPOI数―前候補引き継ぎ値の区分内の位置となる。
【0112】
前候補引き継ぎ値設定部224は、後候補N件取得部218や前候補N件取得部220が取得したN件の前のN件の先頭のPOIの区分及び区分内の位置を示す前候補引き継ぎ値を設定する。N件の前のN件の先頭のPOIの区分i(prv_i)と区分内の位置(prv_s)の前候補引き継ぎ値を以下の様に設定する。
【0113】
後候補がリクエストされた場合は、(1)後候補引き継ぎ値の区分内の位置がゼロ(先頭)の場合、prv_i=後候補引き継ぎ値の区分のi―1、prv_s=ゼロ(先頭)、(2)後候補引き継ぎ値の区分内の位置がゼロ(先頭)以外の場合、prv_i=後候補引き継ぎ値の区分のi、prv_s=後候補引き継ぎ値の区分内のPOI数―後候補引き継ぎ値の区分内の位置となる。
【0114】
前候補がリクエストされた場合、(1)prv_i=前候補N件取得部220が取得した前候補のN件の最後の区分のi,(2)該最後の区分iが前候補引き継ぎ値の区分iと同じであれば、prv_s=区分内の位置+区分i内で取得できたPOI数、(3)該最後の区分iが前候補引き継ぎ値の区分iと異なるならば、prv_s=該最後の区分i内に含まれるPOI数、(4)(2)、(3)の結果、prv_sが前候補引き継ぎ値の区分iに含まれるPOI数と同じになる場合は、prv_i=該最後の区分のi−1,prv_s=ゼロ(先頭)となる。
【0115】
結果生成部226は、後候補N件取得部218や前候補N件取得部220が取得したN件のPOIリスト並びに後候補や前候補をリクエストするための「次へ」と「前へ」の文字を表示される画面要素に後候補引き継ぎ値や前候補引き継ぎ値並びに中心メッシュを特定するための情報としての中心緯度経度もしくは中心メッシュのメッシュ座標、メッシュコードの引き継ぎ値へのリンクが設定された結果を生成する。
【0116】
図3中のレスポンス送信部156は携帯端末装置2からのリクエストに対してレスポンス(例えば、HTTPレスポンス)をするものであり、POIリストレスポンス部170及び前後候補レスポンス部172を有する。POIリストレスポンス部170は、POIリスト取得部152が取得したN件のPOIリスト及び後候補引き継ぎ値を携帯端末装置2にレスポンス(例えば、HTTPレスポンス)する。前後候補レスポンス部172は、前後候補取得部154が取得したN件の後候補及び後候補引き継ぎ値、前候補引き継ぎ値を携帯端末装置2にレスポンス(例えば、HTTPレスポンス)する。
【0117】
図14及び図15は、地域情報検索方法を示すフローチャートである。図16は、区分iを示す図である。図17は、携帯端末装置2と地域情報検索サーバ10との間のシーケンスチャートである。以下、これらの図面を参照して地域情報検索方法の説明をする。
【0118】
携帯端末装置2は、ユーザの操作に従って、地域情報検索サーバ10にアクセスして、地域情報検索ページのレスポンスを受信すると、画面に表示する。ユーザは、地域情報検索ページのPOIリストをリクエストするためのリンク情報が設定されている特定のジャンルの文字(和食等)をクリックすると、携帯端末装置2は、図示しないGPSや無線基地局4より現在位置p(緯度経度)を取得し、図17中の(2)に示すように、地域情報検索サーバ10に位置情報及びジャンル等を指定して、POIリストのリクエストをする。
【0119】
図14中のステップS100で、地域情報検索サーバ10は、ユーザから現在位置pを受信する。ステップS102で、現在位置pが含まれる最高次数の中心メッシュを抽出する。例えば、緯度経度から前述した式(1),(2)に従って、中心メッシュのメッシュ座標を算出する。ステップS104で、iに0を代入して、iを初期化する。
【0120】
ステップS106で、抽出したメッシュを中心としてメッシュのグループ(区分i)を生成する。最初の処理では中心メッシュのみからなる区分0が抽出される。中心メッシュのメッシュ座標をパックコードに変換してパックコードのリストを作成する。
【0121】
ステップS108で、パックコードのリストをキーにしてPOI検索テーブル14による絞り込みとPOI情報テーブル12とのテーブル結合を行って、区分iに含まれるPOI集合Riを検索する。
【0122】
ステップS110で、POI集合Riを特定の基準に従って昇順にソートする。例えば、POIIDに基づいて、POI集合Riをソートする。ステップS112で、POI集合Rj(j=0〜i)の個数が所定値Nを満たすかを判定する。ステップ114で、Σ|Rj|(j=0〜i,|Rj|はPOI集合Rjの個数)≧Nであるか否かを判定する。肯定判定ならば、ステップS118に進む。否定判定ならば、ステップS116に進む。尚、初回は中心メッシュからN件が検索される。
【0123】
ステップS116で、区分iの範囲を区分i+1に設定し、区分i+1に含まれる隣接メッシュのメッシュ座標をパックコードに変換してパックコードのリストを作成する。区分i+1に属する隣接メッシュのメッシュ座標は、中心メッシュのメッシュ座標の緯度コード又は経度コードにi+1を加減算することにより得られる。
【0124】
図16に示すように、区分0は中心メッシュM33のみから成る集合、区分1は中心メッシュM33から緯度または経度方向に1個のn次メッシュが離間する8個の隣接メッシュの集合であり、区分2が中心メッシュM33から緯度または経度方向に2個n次メッシュが離間する16個の隣接メッシュの集合であり、区分3が中心メッシュM33から緯度または経度方向に3個のn次メッシュが離間する24個の隣接メッシュの集合である。
【0125】
例えば、区分1の場合は、8個の隣接メッシュのメッシュ座標は、(M33の緯度コード+1,M33の経度コード−1),(M33の緯度コード+1,M33の経度コード+0),(M33の緯度コード+1,M33の経度コード+1),(M33の緯度コード+0,M33の経度コード−1),(M33の緯度コード+0,M33の経度コード+1),(M33の緯度コード−1,M33の経度コード−1),(M33の緯度コード−1,M33の経度コード+0),(M33の緯度コード−1,M33の経度コード+1)である。
【0126】
ステップS108で、パックコードのリストをキーにしてPOI検索テーブル14による絞り込みとPOI情報テーブル12とのテーブル結合を行って、区分iに含まれるPOI集合Riを検索する。
【0127】
ステップS110でPOIIDに基づいてPOI集合Ri+1をソートして、ステップS112でPOI集合Ri,Ri+1がN件を満たすか否かを判定する。N件を満たさない場合は、ソートされたPOI集合Ri、Ri+1、・・・がN件を満たすまで、ステップS116及びステップS108〜S114を繰り返す。
【0128】
ステップS118でN件のPOIを取得する。ステップS120でPOI情報のリストの検索結果を生成する。ステップS122で区分iと区分内での位置Sを後候補引き継ぎ値として設定して、図17中の(4)に示すように、検索結果+後候補引き継ぎ値+図示しない中心メッシュを特定するための情報としての中心緯度経度もしくは中心メッシュのメッシュ座標、メッシュコード等の引き継ぎ値を含むPOIリストレスポンスを携帯端末装置2に送信する。N件のPOIの後のN件の先頭のPOIの区分i(nxt_i)及び区分内の位置(nxt_s)の後候補引き継ぎ値を以下のように設定する。
【0129】
(1)nxt_i=最後の区分(N件のPOIを取得したときの最後の区分)のi,(2)最後の区分iが区分0と同じであれば、nxt_s=最後の区分i内で取得したPOI数、(3)最後の区分iが区分0と異なる場合は、nxt_s=区分i内で取得したPOI数、(4)(2),(3)の結果、nxt_s=区分i内に含まれるPOI数であれば、nxt_i=最後の区分のi+1、nxt_s=0(先頭)となる。
【0130】
携帯端末装置2は、図17中の(5)に示すように、各POI名称に詳細を提供するURLがリンクされたPOIリスト及び表示した画面要素に後候補リクエストするための後候補引き継ぎ値並びに中心メッシュを特定するための情報としての中心緯度経度もしくは中心メッシュのメッシュ座標、メッシュコードの引き継ぎ値へリンクされた「次へ」の文字を表示する。図18に示すように、例えば、N=10とすると、Aレストラン〜Jレストランの名称にURLのリンク情報が設定されたPOIリストと表示された画面要素に区分i及び区分内の位置の後候補引き継ぎ値にリンクされた「次へ」の文字が表示される。図示しないがサムネイル画像を表示しても良い。
【0131】
ユーザは携帯端末装置2を操作して、「次へ」をクリックしたとする。図17中の(6)に示すように、携帯端末装置2は後候補引き継ぎ値を送信して、後候補のリクエストをする。地域情報検索サーバ10は、図15中のステップS130で、前/後候補のリクエストを待機している。ステップS132で、リクエストが有ったか否かを判定する。肯定判定ならば、ステップS134に進む。否定判定ならば、ステップS130に戻る。ステップ134で、前/後のリクエストを受信する。
【0132】
ステップS136で、後候補/前候補引き継ぎ値を受信して、例えば、区分iより中心メッシュのメッシュ座標を取得して、図14中のステップS106〜ステップS110と同様の処理を実行して、隣接メッシュのメッシュ座標を算出して、メッシュ座標をパックコードに変換して、パックコードリストを作成し、パックコードリストをキーにしてPOI検索テーブル14による絞り込みとPOI情報テーブル12とのテーブル結合を行って区分i内のPOI集合Riを取得し、POI集合Riをソートする。このとき、後候補がリクエストされていれば、PO集合Riを昇順にソートし、前候補がリクエストされていれば、PO集合Riを降順にソートする。ここでは、後候補がリクエストされたので、POI集合Riを昇順にソートする。尚、iは後候補引き継ぎ値の区分のi又は前候補引き継ぎ値の区分のiである。
【0133】
ステップS138で、区分i、区分i内の位置SからOFFSET関数(区分i内の位置から指定した件数のPOI(ここでは、N件を指定)取得する関数であり、区分i内でN件が取得できなければ、取得件数を出力する)を取得する。ステップS140で、取得件数がN以上であるか否かを判定する。肯定判定ならば、ステップS160に進む。否定判定ならば、ステップS142に進む。
【0134】
ステップS142で、後候補リクエストであるか否かを判定する。肯定判定ならば、ステップS143に進み、否定判定ならば、ステップS150に進む。ここでは、後候補がリクエストされているので、ステップS143に進む。ステップS143で区分iの範囲を区分i+1に設定する。
【0135】
ステップS145で、区分i+1に含まれる隣接メッシュのメッシュ座標を(i+1)及び中心メッシュのメッシュ座標より算出し、メッシュ座標をパックコードに変換してパックコードのリストを作成し、パックコードのリストをキーにしてPOI検索テーブル14による絞り込みとPOI情報テーブル12とのテーブル結合を行って、区分i+1に含まれるPOI集合Ri+1を検索する。
【0136】
ステップS146で、POI集合Ri+1を特定の基準(例えば、POIID)に従って昇順にソートする。ステップS138に戻って、後候補引き継ぎ値の区分i内の位置からN件が取得できるまで、ステップS138〜S140,S142,S143,S145,S146を繰り返す。
【0137】
ステップS160で、後候補のリストの検索結果を生成する。ステップS162で、N件の次のN件の先頭のPOIの区分i(nxt_i)と区分内の位置(nxt_s)の後候補引き継ぎ値を以下の様に設定する。
【0138】
後候補がリクエストされているので、(1)nxt_i=N件の後候補を取得した時の最後の区分のi,(2)該最後の区分iが後候補引き継ぎ値の区分iと同じであれば、nxt_s=後候補引き継ぎ値の区分内の位置+区分i内で取得したPOI数、(3)該最後の区分iが後候補引き継ぎ値の区分iと異なる場合は、nxt_s=該最後の区分i内で取得したPOI数、(4)(2),(3)の結果、nxt_s=区分i内に含まれるPOI数であれば、nxt_i=該最後の区分のi+1、nxt_s=0(先頭)となる。
【0139】
ステップS164でN件の前のN件の先頭(降順の並びにおいて)の区分i(prv_i)と区分内の位置(prv_s)の前候補引き継ぎ値を以下の様に設定する。
【0140】
後候補がリクエストされているので、(1)後候補引き継ぎ値の区分内の位置がゼロ(先頭)の場合、prv_i=後候補引き継ぎ値の区分のi―1、prv_s=ゼロ(先頭)、(2)後候補引き継ぎ値の区分内の位置がゼロ(先頭)以外の場合、prv_i=後候補引き継ぎ値の区分のi、prv_s=後候補引き継ぎ値の区分内のPOI数―後候補引き継ぎ値の区分内の位置となる。
【0141】
図17中の(8)に示すように、携帯端末装置2に検索結果のPOIリスト+後候補引き継ぎ値+前候補引き継ぎ値+図示しない中心メッシュを特定するための情報として中心緯度経度もしくは中心メッシュのメッシュ座標、メッシュコード等の引き継ぎ値を後候補レスポンスする。図17中の(9)に示すように、携帯端末装置2は後候補リストを画面に表示する。図19は後候補リストの表示画面であり、図18のPOIリスト画面に加えて、前候補リクエストするための前候補引き継ぎ値がリンクされた「前へ」の文字が表示されている。
【0142】
図17中の(10)に示すようにユーザが携帯端末装置2を操作して、「前へ」をクリックすると、携帯端末装置2は地域情報検索サーバ10に前候補引き継ぎ値を送信して、前候補リクエストする。後候補リクエストの場合と同様にステップS130〜ステップS136の処理を行う。このとき、POI集合Riを降順にソートする。
【0143】
ステップS138で、降順にソートされたPOI集合Riから区分i、区分i内の位置Sに基づいて、OFFSET関数を用いて区分i内の位置から前のN件を取得する。ステップS140で、取得件数がN以上であるか否かを判定する。肯定判定ならば、ステップS160に進む。否定判定ならば、ステップS142に進む。
【0144】
ステップS142で、後候補リクエストであるか否かを判定する。肯定判定ならば、ステップS143に進み、否定判定ならば、ステップS150に進む。ここでは、前候補がリクエストされているので、ステップS150に進む。ステップS150で区分iの範囲を区分i−1に設定する。
【0145】
ステップS152で、区分i−1に含まれる隣接メッシュのメッシュ座標を(i−1)及び中心メッシュのメッシュ座標より算出し、隣接メッシュのメッシュ座標をパックコードに変換してパックコードのリストを作成し、パックコードのリストをキーにしてPOI検索テーブル14による絞り込みとPOI情報テーブル12とのテーブル結合を行って、区分i−1に含まれるPOI集合Ri−1を検索する。
【0146】
ステップS154で、POI集合Ri−1を特定の基準(例えば、POIID)に従って降順にソートする。ステップS138に戻って、後候補引き継ぎ値の区分i内の位置からN件が取得できるまで、ステップS138〜S140,S150,S152,S154を繰り返す。
【0147】
ステップS160で前候補のリストの検索結果を生成する。ステップS162でN件の次の後のN件の先頭のPOIの区分i(nxt_i)と区分内の位置(nxt_s)の後候補引き継ぎ値を以下の様に設定する。
【0148】
前候補がリクエストされているので、(1)前候補引き継ぎ値の区分内の位置がゼロ(先頭)の場合、nxt_i=前候補引き継ぎ値の区分のi+1、nxt_s=ゼロ(先頭)、(2)前候補引き継ぎ値の区分内の位置がゼロ(先頭)以外の場合、nxt_i=前候補引き継ぎ値の区分のi、nxt_s=前候補引き継ぎ値の区分内のPOI数―前候補引き継ぎ値の区分内の位置となる。
【0149】
ステップS164でN件の前のN件の先頭(降順の並びにおいて)のPOIの区分i(prv_i)と区分内の位置(prv_s)の前候補引き継ぎ値を以下の様に設定する。
【0150】
前候補がリクエストされているので、(1)prv_i=N件の前候補を取得した最後の区分のi,(2)該最後の区分iが前候補引き継ぎ値の区分iと同じであれば、prv_s=前候補引き継ぎ値の区分i内で取得できたPOI数、(3)該最後の区分iが前候補引き継ぎ値の区分iと異なるならば、prv_s=該最後の区分i内で取得できたPOI数、(4)(2)、(3)の結果、prv_sが該最後の区分i内に含まれるPOI数と同じになる場合は、prv_i=該最後の区分のi−1,prv_s=ゼロ(先頭)となる。
【0151】
図17中の(12)に示すように、地域情報検索サーバ10は携帯端末装置2に前候補レスポンス(検索結果+後候補引き継ぎ値+図示しない中心メッシュを特定するための情報としての中心緯度経度もしくは中心メッシュのメッシュ座標、メッシュコードの引き継ぎ値)する。前候補が存在する場合は、前候補引き継ぎ値もレスポンスする。携帯端末装置2は図17中の(13)に示すように、前候補リストを画面に表示する。
【0152】
本実施形態によれば、多階層に分割されたメッシュ構造においても、中心メッシュの隣接メッシュをメッシュ座標により抽出することができる。また、中心メッシュのメッシュ座標を式(1),(2)より算出して、メッシュ座標に中心メッシュからの隣接メッシュまでのn次メッシュの個数を加減算して、隣接メッシュのメッシュ座標を算出して、隣接メッシュを抽出するので、隣接メッシュを高速に抽出することができ、隣接メッシュに位置するPOIを高速に検索できる。順序付けされた区分iの順序区分集合において、区分iからPOI集合Riを検索して、ソートするので、検索・ソートの処理範囲が限定されて、検索・ソートの高速化を図ることができる。
【0153】
後候補引き継ぎ値や前候補引き継ぎ値のリンク情報をPOIリストや前後候補リストとともに送信しておき、後候補リクエストや前候補リクエストに後候補引き継ぎ値や前候補引き継ぎ値を地域情報検索サーバ10に送信するので、後候補引き継ぎ値や前候補引き継ぎ値の区分i及び区分i内の位置に基づいてPOI集合Riを検索し、後候補や前候補のN件を取得するので、検索範囲及びソートの範囲を限定でき、無駄な処理を省くことができ、処理効率を向上させ、後候補や前候補を高速に取得できる。
【0154】
第2実施形態
図20は本発明の第2実施形態による地域情報検索システム248の構成図である。図20に示すように、地域情報検索システム248は、複数の情報端末装置250#i(i=1〜n)と、該端末装置250#i(i=1〜n)がインターネット等の通信ネットワーク8を通して接続された地域情報検索サーバ252とを具備する。符号250#iは複数の情報端末装置の任意の一つを指すが、以下では250と省略して記す。本実施形態では、第1実施形態とは異なりPOIリストとともに地図画像を表示する形態であり、また、中心メッシュの次数が第1実施形態とは異なっている。
【0155】
情報端末装置250は、PC(Personal Computer)、カーナビゲーション装置、デジタルテレビ等、通信ネットワーク8を通して、所定の通信プロトコル、例えば、HTTP(Hyper Text Transfer Protocol)に従って、地域情報検索サービスの提供を受ける端末装置である。尚、通信プロトコルは、地域情報検索サーバ252との間で通信ネットワーク8を介して通信が可能であれば、HTTP以外の他のプロトコルであっても勿論良い。
【0156】
図21は情報端末装置250のPOIの取得に係る機能ブロック図である。図21に示すように、情報端末装置250のPOI取得に係る機能ブロックは、イベントキャッチ部300、リクエスト部302、レスポンス受信部304及びデータ表示部305から構成され、これらは、記憶装置に格納された該当プログラムがメインメモリにローディングされて、CPUによるプログラムの実行により実現される。
【0157】
イベントキャッチ部300は、位置情報リストのリクエスト、画像データのリクエスト、POIリストのリクエスト、後候補のリクエスト及び前候補のリクエストなどのリンクが設定された該当の文字がクリック操作されたことの各種のイベントをキャッチして、位置情報のリクエスト、地図画像のリクエスト、後候補や前候補のリクエストに必要なリンクをパラメータとしてリクエスト部302に出力する。
【0158】
リクエスト部302は、位置情報リクエスト部350、地図画像データリクエスト部352及びPOIリストリクエスト部354を有する。位置情報リクエスト部350は、ユーザにより検索窓に入力された表示対象の地図を指定する住所、郵便番号や施設名等を指定し、該当する緯度経度の位置情報リストの送信を地域情報検索サーバ252にリクエスト(例えば、HTTPリクエスト)する。位置情報等の表示対象の地図を指定する方法は、検索キーワードを指定すること以外にも指定可能であり、それぞれの指定方法に従って指定すれば良い。
【0159】
地図画像データリクエスト部352は、画面に表示する地図の緯度経度の位置情報、例えば、位置情報リストの中でクリック操作等により、選択された緯度経度の地点が含まれる地図画像データの送信を地域情報検索サーバ252にリクエスト(例えば、HTTPリクエスト)する。
【0160】
このとき、地域情報検索サーバ252では、地図画像データのレスポンスは、地図画像ファイル単位に行うことから、地図画像データのリクエストは選択された緯度経度の地点を地図表示画面の中心に表示するのに必要な地図画像ファイル数に応じて行われる。このとき、地図画像データとともにその緯度経度1(左下隅の緯度経度),緯度経度2(右上隅の緯度経度)がレスポンスされる。尚、緯度経度1,2の代わりにメッシュコードでも良い。
【0161】
POIリクエスト部354は、図2中のPOIリストリクエスト部70と同様の処理を行う。尚、POIをリクエストするためのリンクがクリックされると、位置情報としての緯度経度(例えば、画面中心のメッシュの緯度経度1,2)を地域情報検索サーバ252に送信して、POIリストをリクエストする。後候補リクエスト部356及び前候補リクエスト部358は、図2中の後候補リクエスト部72及び前候補リクエスト部74と同様の処理をする。
【0162】
レスポンス受信部304は、地域情報検索サーバ252より、リクエストに対するレスポンスを受信するものであり、位置情報受信部360、地図画像データ受信部362、POIリスト受信部364、後候補受信部366及び前候補受信部368を有する。位置情報受信部360は、位置情報リクエスト部350の位置情報リクエストに対する地域情報検索サーバ252からのレスポンスである位置情報リストを受信する。地図画像データ受信部362は、地図画像データリクエスト部352の地図画像データリクエストに対する地域情報検索サーバ252からのレスポンスである地図画像データ並びに地図画像データの地域範囲を示す緯度経度1,2を受信する。POIリスト受信部364、後候補受信部366及び前候補受信部368は、図2中のPOIリスト受信部76、後候補受信部78及び前候補受信部80と同様の処理をする。
【0163】
データ表示部305は、レスポンス受信部304から出力されたレスポンスを画面に表示するのであり、地図画像データ表示部370、POIリスト表示部372及び前後候補リスト表示部374を有する。地図画像データ表示部370は、地図画像データレスポンス受信部362が受信した地図画像データ及び当該地図画像データの地域範囲から、表示対象の地図画像データを編集して地図表示画面データを生成し、地図表示画面上に地図を表示する。POIリスト表示部372及び前後候補表示部374は、図2中のPOIリスト表示部82及び前後候補表示部84と同様の処理を行うが、後述するように、POIリストや前後候補の表示態様が地図画像とともに表示する点で第1実施形態とは異なる。
【0164】
図22は、地域情報検索サーバ252のPOIリスト取得に係る機能ブロック図である。図22に示すように、地域情報検索サーバ252は、POI検索テーブル作成部398、リクエスト受信部400、位置情報取得部402、地図画像データ取得部406、POIリスト取得部408、前後候補取得部410及びレスポンス送信部412を有する。
【0165】
POI検索テーブル作成部398は、図3中のPOI検索テーブル作成部148と同様にPOI検索テーブル256を作成するが、各POIについて、最高次数のパックコードだけでなく、複数次数のパックコードを作成する点がPOI検索テーブル作成部148と異なる。メッシュ構造やアプリケーションに応じた次数のメッシュに基づいて、地域情報を検索するためである。
【0166】
リクエスト受信部400は、情報端末装置250よりリクエストを受信するものであり、位置情報リクエスト受信部420、地図画像データリクエスト受信部422、POIリストリクエスト受信部423、後候補リクエスト受信部424及び前候補リクエスト受信部426を有する。位置情報リクエスト受信部420は、情報端末装置250から住所、施設名、郵便番号等の検索キーワードが指定された位置情報リストのリクエストを受信して、検索キーワードを位置情報取得部402に出力する。地図画像データリクエスト受信部422は、情報端末装置250から位置情報が指定された地図画像データのリクエストを受信して、位置情報を地図画像データ取得部406に出力する。
【0167】
地図画像データ取得部406は、地図画像データリクエスト受信部422が受信した位置情報に基づいて、メッシュ分割された地図を管理する図示しない地図メッシュDBを検索し、位置情報により指示される地点の地図画像データ及び地図画像データの地域範囲(緯度経度1,2)を取得する。
【0168】
POIリスト取得部408は、図23に示すように、メッシュ座標算出部450、区分iメッシュ座標算出部451、POI集合Ri検索部452、POI集合Riソート部196、N件取得部198、後候補引き継ぎ値設定部200及び結果生成部4523有し、図4中の構成要素と実質的に同一の構成要素には同一の符号を附している。メッシュ座標算出部450及び区分i内メッシュ座標算出部451は隣接メッシュ計算部を構成する。
【0169】
メッシュ座標算出部450は、POIリストリクエスト受信部423が受信した緯度経度、例えば、緯度経度1,2から中心地点の緯度経度を算出し、緯度経度に基づいて、該緯度経度の地点が位置する所定の次数(例えば、9次メッシュ、または、緯度経度1,2に地図範囲が一致するメッシュの次数、以下、この次数をnで表す)の中心メッシュのメッシュ座標を前述の式(1),(2)より算出する。
【0170】
区分i内メッシュ座標算出部451は、図4中の区分i内メッシュ座標算出部192と同様の処理を行い、中心メッシュや隣接メッシュのメッシュ座標を次数nのパックコードに変換して、パックコードのリストを作成する。
【0171】
POI集合Ri検索部452は、図4中のPOI集合Ri検索部194の同様の処理を行い、パックコードのリストをキーにして、POI検索テーブル256に格納されているn次のパックコードを検索して、POI検索テーブル256の絞り込みとPOI情報テーブル254とのテーブル結合を行って、同一区分i内のPOIのリストを取得する。
【0172】
結果生成部452は、N件のPOIリスト(各POIの店名、緯度・経度、リンク情報としてその店の詳細情報(住所、電話番号等)を提供するURL等)並びに後候補をリクエストするための「次へ」の文字が表示される画面要素に上述した後候補引き継ぎ値へのリンクが設定された結果を生成する。
【0173】
前後候補取得部410は、図24に示すように、区分i内メッシュ座標算出部460、POI集合Ri検索部461、POI集合Riソート部216、後候補N件取得部218、前候補N件取得部220、後候補引き継ぎ値設定部222、前候補引き継ぎ値設定部224及び結果生成部462を有し、図5中の構成要素と実質的に同一の構成要素には同一の符号を附している。
【0174】
区分i内メッシュ座標算出部460は、区分iに属する隣接メッシュのメッシュ座標を中心メッシュのメッシュ座標より算出し、中心メッシュのメッシュ座標、又は隣接メッシュのメッシュ座標を区分i内メッシュ座標算出部451と同様に次数nのパックコードに変換して、パックコードのリストを作成する。
【0175】
POI集合Ri検索部461は、パックコードのリストをキーにして、POI検索テーブル256に格納されているn次のパックコードを検索して、POI検索テーブル256の絞り込みとPOI情報テーブル254とのテーブル結合を行って、同一区分i内のPOIのリストを取得する。
【0176】
結果生成部462は、後候補N件取得部218や前候補N件取得部220が取得したN件のPOIリスト及び表示される画面要素に後候補や前候補をリクエストするための後候補引き継ぎ値や前候補引き継ぎ値へのリンクが設定された結果を生成する。
【0177】
図22中のレスポンス送信部412は情報端末装置250からのリクエストに対してレスポンス(例えば、HTTPレスポンス)をするものであり、位置情報レスポンス430、地図画像データレスポンス部432、POIリストレスポンス部434及び前後候補レスポンス部436を有する。
【0178】
位置情報レスポンス430は、位置情報取得部430が取得した位置情報リストを情報端末装置250にレスポンス(例えば、HTTPレスポンス)する。地図画像データレスポンス部432は、地図画像データレスポンス部432は、地図画像データレスポンス部432が取得した地図画像データ及び地図範囲(緯度経度1,2)をレスポンス(例えば、HTTPレスポンス)する。POIリストレスポンス部434及び前後候補レスポンス部436は、図3中のPOIリストレスポンス部82及び前後候補レスポンス部84と同様の処理を行うが、地図画像の対応する位置にアイコンや吹き出し等を表示するためPOI情報が第1実施形態と比べてより詳細になっている。
【0179】
図20中のPOI情報データベース254は図1中のPOI情報テーブル12と同様にPOI情報を記憶するが、POI情報テーブル12よりも詳細なPOI情報を記憶している。図25は、図20中のPOI検索テーブル256の構成図である。図25に示すように、POI検索テーブル256には、各POIのPOIID及び複数次数(例えば、9次,8次など)のパックコードが格納されている。尚、最高次数のパックコードよりも低次数のパックコードについては、最高次数のパックコードの1次から低次数までの一部が低次数のパックコードとなるため、必ずしも次数毎にパックコードをPOI検索データベース256に記憶する必要がないが、パックコードを各次数毎にPOI検索データベース256に記憶することにより、最高次数のパックコードから低次数のパックコードを算出するオーバへッドを無くすためである。
【0180】
図26は情報端末装置250と地域情報検索サーバ252との間の地域情報検索方法を示すシーケンスチャートであり、図27及び図28は画面表示例を示す図である。以下、これらの図面並びに図14及び図15を参照して、地域情報検索方法の説明をする。
【0181】
情報端末装置250のユーザは、位置検索キーワードを入力すると、情報端末装置250は、図26中の(20)に示すように、地域情報検索サーバ252に位置検索キーワードを指定し、位置情報をリクエストする。地域情報検索サーバ252は、位置検索キーワードに基づいて、POI情報テーブル254を検索して、位置検索キーワードに該当する位置情報リストを取得して、図26中の(22)に示すように、位置情報リストをレスポンスとして、情報端末装置250に送信する。
【0182】
地域情報検索サーバ252からレスポンスされた位置情報リストが画面に表示されて、ユーザは画面に表示された位置情報リストの中から位置情報(例えば、緯度経度1,2)を選択すると、位置情報を指定して、図26中の(24)に示すように、地域情報検索サーバ252に地図画像データの送信をリクエストする。地域情報検索サーバ252は、図26中の(26)に示すように、位置情報に基づいて、画像データ及び緯度経度1,2を情報端末装置250に地図画像データレスポンスする。
【0183】
情報端末装置250は、画像データレスポンスを受信して、図26中の(27)に示すように、地図画像データを画面に表示する。情報端末装置250のユーザはPOIリストリクエストのジャンル等の文字をクリックすると、情報端末装置250は、図26中の(28)に示すように、位置情報、例えば、画面中心のメッシュの緯度経度1,2を送信して、POIリストをリクエストする。
【0184】
図14中のステップS100で、地域情報検索サーバ7は、ユーザから位置情報(緯度経度1,2)pを受信する。ステップS300で、位置情報pの地点が含まれるメッシュを抽出する。例えば、緯度経度1,2から地図範囲の中心地点の緯度経度を算出し,次数n(例えば、9次メッシュ又は緯度経度1,2に対応するメッシュの次数)及び中心地点の緯度経度から、前述した式(1),(2)より中心地点が位置するn次のメッシュのメッシュ座標を算出する。
【0185】
図14中のステップS104〜S106を行う。ステップS108で、区分iに含まれるPOI集合Riを区分iの中心メッシュのメッシュ座標または隣接メッシュのメッシュ座標から変換したn次パックコードリストをキーとして、POI検索テーブル256に格納されている次数nのパックコードを検索し、POI検索テーブル256による絞り込みとPOI情報テーブル254とのテーブル結合を行って、同一区分i内のPOIのリストを取得する。
【0186】
図14中のステップS110〜S122で、N件のPOIを取得するとともに、後候補引き継ぎ値を設定して、図26中の(30)に示すように、検索結果+後候補引き継ぎ値を含むPOIリストのレスポンスを情報端末装置250に送信する。
【0187】
情報端末装置250は、図26中の(31)及び図27に示すように、所定の画面の領域に、番号が付されたPOIの詳細を提供するサーバのURLがリンクされたPOI名称のリスト、表示した画面要素に後候補をリクエストするために後候補引き継ぎ値がリンクされた「次へ」の文字及び各POIが位置する地図画面上の該当する位置にPOIリストにおける該当する番号が付されたアイコンを地図表示画面に表示する。図27中の破線は、n次メッシュの境界(区分i(i=0,1,2,3の境界))を示す。図27において、区分0から番号1〜3のPOIが取得され、区分1から残りの番号4〜10のPOIが得られている。
【0188】
尚,POIリストの表示態様は、地図+アイコン+「次へ」の表示態様、地図+POIリスト+POIリストのPOI名称がクリックされると、地図画面の該当の位置にPOI詳細情報が吹き出しに表示されるような態様でも良い。また、この表示形態は、情報処理装置250に限らず、携帯端末装置においても適用可能である。
【0189】
例えば、POIのリストを表示せずに、地図を画面に表示するとともに、N件のPOIの地図上の該当位置に番号の付されたアイコンを表示し、アイコンをタッチパネルによりクリックしたり、アイコンの番号や「次へ」や「前へ」のリンクと携帯電話のキーとを対応付けたりすることにより、詳細情報を表示したり、後候補のリクエストや前候補のリクエストを行うようにしても良い。
【0190】
図26中の(32)〜(40)の処理は、図17中の(6)〜(13)の処理と同様であるが、後候補や前候補がリクエストされた場合に、図15中のステップS145,S152で、POI集合Riを検索する際に、中心メッシュや隣接メッシュのn次のパックコードのリストの作成、パックコードのリストをキーにしてPOI検索テーブル256の絞り込みとPOI情報テーブル252との結合を行う。
【0191】
図28に示すように、「次へ」がクリックされた場合は、後候補のPOIのリストが番号とともにURLがリンクされたPOI名称のリスト、後候補をリクエストするために後候補引き継ぎ値や前候補引き継ぎ値へのリンクが設定された「次へ」や「前へ」の文字、各POIに番号が付されたPOIリスト及び各POIが位置する地図画面上の該当する位置にPOIリストにおける番号が付されたアイコン及び前回POIリストに表示された各POIが位置する地図画面上の該当する位置にアイコンのみを表示する。図28では、区分1から番号11〜20のPOIが得られている。
【0192】
本実施形態によれば、第1実施形態と同様の効果がある上に、POIリストと地図とを共に表示するような形態においても実施可能となる。
【0193】
本実施形態では、緯度経度から前述の式(1),(2)を用いてメッシュ座標を算出する例を説明したが、メッシュコードからメッシュ座標を算出することも可能である。
【0194】
例えば、(2桁の1次メッシュの緯度部分−15)を6ビットの2進数値に変換し、2桁の1次メッシュのメッシュ番号の経度部分を6ビットの2進数値に変換し、1桁の2次メッシュのメッシュ番号の緯度部分を3ビットの2進数値に変換し、1桁の2次メッシュのメッシュ番号の経度部分を3ビットの2進数値に変換して、3次〜n次メッシュについては、1桁の10進数値を2ビットの2進数値に変換して、これら変換した2進数値を1次メッシュから昇順、且つ上位ビット側に結合して、パックコードを生成する。
【0195】
例えば、メッシュコードが5339460030000の場合、パックコードP1aP1bP2aP2bP3P4P5P6P7P8P9とすると、P1a=100110(2進)=38(10進)、P1b=100111(2進)=39(10進)、P2a=100(2進)=4(10進)、P2b=110(2進)=6(10進)、P3=00(2進)=0(10進)、P4=00(2進)=0(10進)、P5=11(2進)=3(10進)、P6=00(2進)=0(10進)、P7-=00(2進)=0(10進)、P8=00(2進)=0(10進)、P9=00(2進)=0(10進)となる。
【0196】
ここで、経度部分から15を引くのは、6ビットで択捉島まで含まれるようにするためであり、こうすることにより、1次メッシュの緯度部分P1a、経度部分P1bがそれぞれ6ビットであれば日本の東西南北端点である南鳥島、沖ノ島、与那国島、択捉島の各緯度経度をパックコードとして格納することができる。
【0197】
そして、パックコードを緯度部分と経度部分に分割して、緯度部分及び経度部分についてそれぞれ、1次メッシュから昇順に上位ビット側にして、2進数値に連結し、緯度コード及び経度コードのメッシュ座標を作成する。
【0198】
例えば、パックコードを(P1a)(P1b)(P2b)(P3)(P4)・・(P9)
=100100-100111-100-110-00-00-11-00-00-00-00
とすると、
緯度コードCa=1001101000010000となり、
経度コードCb=1001111100010000となる。
【0199】
このように、メッシュコードから緯度コード及び経度コードのメッシュ座標を算出することができる。尚、緯度経度の地点が位置するメッシュのメッシュコードから算出したメッシュ座標は、緯度経度から前述の式(1),(2)より算出したメッシュ座標と一致する。
【0200】
例えば、メッシュコードから変換した緯度コード及び経度コードのメッシュ座標は、図13に示すようになる。これにより、図14に示すように、隣接メッシュのメッシュコードから算出したメッシュ座標は、中心メッシュから隣接メッシュまでの離間するn次メッシュ数を緯度コード及び経度コードに、緯度方向及び経度方向に応じて加減算することにより得られる。
【0201】
そして、位置情報に基づいて、中心メッシュのメッシュコードを算出し、上述のように、中心メッシュのメッシュコードからメッシュ座標に変換し、中心メッシュのメッシュ座標から隣接メッシュのメッシュ座標を求め、メッシュ座標をパックコードに変換し、パックコードのリストを作成し、パックコードのリストをキーとしてPOI検索テーブルによる絞り込みとPOI情報テーブルとのテーブル結合を行って、POIリストを取得するようにしても良い。尚、メッシュコードは、携帯端末装置2や情報端末装置250から受信した緯度経度に基づいて、各地図メッシュを管理する図示しない地図DBを検索して取得しても良いし、緯度経度から算出しても良い。
【0202】
また、地図DBから取得したメッシュコードをメッシュ座標に変換して、メッシュ座標を緯度経度1,2とともにメッシュDBに格納しておき、携帯端末装置2や情報端末装置250から受信した緯度経度に基づいて、メッシュDBを検索して、中心メッシュのメッシュ座標を取得するようにしても良い。
【0203】
また、POI検索テーブルには、パックコードではなく、パックコードをメッシュコードに変換し、メッシュコードを格納しておき、中心メッシュや隣接メッシュのメッシュ座標をパックコードに変換し、パックコードをメッシュコードに変換して、メッシュコードのリストをキーにPOI検索テーブルによる絞り込みとPOI情報テーブルとのテーブル結合をするようにしても良い。
【0204】
また、中心メッシュのメッシュコードに、中心メッシュから隣接メッシュまでの離間するn次メッシュ数をn次メッシュ番号に加減算((n−1)次〜1次までの該当する緯度及び経度部分のメッシュ番号の桁上がりを計算し)して、隣接メッシュを抽出するようにしても良い。
【0205】
また、POI検索テーブルにメッシュ座標を格納して、中心メッシュや隣接メッシュのメッシュ座標のリストをキーにPOI検索テーブルによる絞り込みとPOI情報テーブルの結合をするようにしても良い。
【0206】
また、POI情報テーブルにメッシュコードを格納しておき、POI情報テーブルよりメッシュコードを取得し、メッシュコードよりパックコードに変換して、POI検索テーブルにパックコードをPOIIDとともに格納するようにしても良い。
【0207】
また、階層化されたメッシュ構造ではなく、全体地図を単一縮尺(n次メッシュ、例えば、10次メッシュに対応する縮尺)の複数のメッシュに分割したメッシュ構造においても、式(1),(2)の緯度,経度方向のi(i=1〜n)次メッシュの数を任意の1個の1次メッシュに相当する範囲の地図を単一縮尺の該当するメッシュで分割したときの、緯度、経度方向のそれぞれメッシュ数で置き換えることにより緯度コード、経度コードのメッシュ座標を算出することができる。また、当該単一縮尺の各メッシュに上述した階層化された該当するn次メッシュと同じメッシュコードを割り当てておくことにより、各メッシュのパックコード、並びに緯度コード及び経度コードのメッシュ座標を算出することができる。
【0208】
そして、POI情報テーブル12に記録された各POIの緯度・経度から上述したように、メッシュ座標を求めて、メッシュ座標からパックコードを求めて、POI検索テーブル14を作成する。リクエストされた緯度・経度から上述したように、中心メッシュのメッシュ座標を求め、中心メッシュのメッシュ座標から区分i(i=1,・・・)に属する隣接メッシュのメッシュ座標を求め、中心メッシュ又は隣接メッシュのメッシュ座標からパックコードを求めて、パックコードのリストを作成して、パックコードリストをキーにしてPOI検索テーブル14による絞り込みとPOI情報テーブル12とのテーブル結合を行って、同一区分i内のPOI集合Riを取得することにより、単一階層のメッシュ構造においても、階層化されたメッシュ構造の場合と同様にPOIリストを検索することができる。
【符号の説明】
【0209】
2 携帯端末装置
8 通信ネットワーク
250 情報端末装置
10,252 地域情報検索サーバ
12,254 POI情報テーブル
14,256 POI検索テーブル
【技術分野】
【0001】
本発明は、地域情報検索サーバ、地域情報検索システム及び地域情報検索方法に関し、特に、ユーザからの位置情報に基づく中心地点の周辺の地域情報の検索に関し、多階層に階層化されたメッシュ構造において、地域情報の検索を行う地域情報検索サーバ、地域情報検索システム及び地域情報検索方法に関する。
【背景技術】
【0002】
インターネットで提供される地図検索のサービスでは、ラスタ形式のデータをメッシュ状に分割して、さらに、各メッシュを階層的に分割して管理することが一般に行われている。メッシュ単位で地図を管理することで、指定された位置が含まれるメッシュと隣接するメッシュを管理することで対応する地図や施設情報を取得することが可能となる。
【0003】
先行技術文献1には、10×10のメッシュに地図データを分割し、各メッシュに4桁のメッシュ番号を付与して、前2桁はX軸方向(東西方向)の位置を表し、後ろ2桁はY軸方向(南北方向)の位置を表し、前2桁の数値は、X軸の正方向にいくほど大きくなり、後ろ2桁の数値はY軸の正にいくほど大きくなっており、このメッシュ番号を用いて隣接するメッシュを抽出する方法が記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−199921号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、この10進数の4桁のメッシュ番号を用いる先行技術文献1では、10×10のメッシュに固定的に分割しており、1次メッシュの場合には対応できるが、各1次メッシュを2次メッシュに、各2次メッシュを3次メッシュ・・・と、通常、地図を複数のメッシュに分割して記憶する場合、複数の次数に階層化して記憶するが、それには対応することができないという問題がある。
【0006】
また、一般的な地域情報の検索方法では、利用者が指定した位置を内包するメッシュを基準として、隣接するメッシュを求め、該メッシュに含まれるPOIを抽出して、距離順等でソートした上で所定件数(例えば、1〜10件)の検索結果を表示する処理が行われる。その後、利用者から次候補(例えば、11件〜20件)がリクエストされた際には、再度、メッシュに含まれるPOIを抽出して、距離順等でソートした上で、11件目以降の候補を抽出する処理を行わなければならず、効率が悪い。
【0007】
本発明は、上記問題点に鑑みてなされたものであり、複数次数に階層化されたメッシュ構造において、ユーザからの位置情報に基づく中心地点の周辺の地域情報の検索を可能にするとともに、その検索を高速に処理することのできる地域情報検索サーバ、地域情報検索システム及び地域情報検索方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
請求項1記載の発明によれば、地域情報検索サーバであって、全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の段階の1次〜n次(nは2以上の整数)のメッシュに階層化されたメッシュ構造において、各POIを一意に特定するPOI識別子を含みPOI情報を記憶するPOI情報データベースと、前記POI識別子及び各POIが位置するメッシュを特定する情報を記憶するPOI検索データベースと、リクエストされた位置情報が示すn次の中心メッシュからn次メッシュについて緯度又は経度方向に1個以上離間する隣接メッシュの集合である区分iが順序付けされた複数の区分i(i=1〜j,jは2以上の整数)の集合からなる順序区分集合に属する各区分iに含まれるメッシュを前記メッシュ構造に基づいて抽出する隣接メッシュ計算部と、前記POI検索データベースを検索して、前記区分iに属するメッシュ内に位置するPOI集合Riを取得するPOI集合検索部と、前記POI集合検索部が取得した前記区分iに位置する前記POI集合Riを前記POI情報に基づいて、ソートするPOI集合ソート部と、前記POI集合ソート部によりソートされた前記POI集合Riに所定の件数のPOIが存在するか否かを判定し、前記POI集合Riに所定の件数のPOIが存在する場合は、前記ソートされたPOI集合Riより、前記POI情報データベースに記憶された所定の件数の前記POI情報を取得するPOI取得部と、区分i又は区分i+1のソートされたPOI集合Ri又はRi+1において、前記取得した所定の件数のPOIの後の所定の件数の先頭のPOIの区分i又はi+1、及び区分i又はi+1内の位置を示す後候補引き継ぎ値を前記取得した所定の件数のPOIとともに送信情報に設定する後候補引き継ぎ値設定部とを具備したことを特徴とする地域情報検索サーバが提供される。
【0009】
請求項2記載の発明によれば、地域情報検索サーバであって、全体地図を単一縮尺の複数のメッシュに分割したメッシュ構造において、各POIを一意に特定するPOI識別子を含みPOI情報を記憶するPOI情報データベースと、前記POI識別子及び各POIが位置するメッシュを特定する情報を記憶するPOI検索データベースと、リクエストされた位置情報が示す中心メッシュからメッシュ数について緯度又は経度方向に1個以上離間する隣接メッシュの集合である区分iが順序付けされた複数の区分i(i=1〜j,jは2以上の整数)の集合からなる順序区分集合に属する各区分iに含まれるメッシュを前記メッシュ構造に基づいて抽出する隣接メッシュ計算部と、前記POI検索データベースを検索して、前記区分iに属するメッシュ内に位置するPOI集合Riを取得するPOI集合検索部と、前記POI集合検索部が取得した前記区分iに位置する前記POI集合Riを前記POI情報に基づいて、ソートするPOI集合ソート部と、前記POI集合ソート部によりソートされた前記POI集合Riに所定の件数のPOIが存在するか否かを判定し、前記POI集合Riに所定の件数のPOIが存在する場合は、前記ソートされたPOI集合Riより、前記POI情報データベースに記憶された所定の件数の前記POI情報を取得するPOI取得部と、区分i又は区分i+1のソートされたPOI集合Ri又はRi+1において、前記取得した所定の件数のPOIの後の所定の件数の先頭のPOIの区分i又はi+1、及び区分i又はi+1内の位置を示す後候補引き継ぎ値を前記取得した所定の件数のPOIとともに送信情報に設定する後候補引き継ぎ値設定部とを具備したことを特徴とする地域情報検索サーバが提供される。
【0010】
請求項3記載の発明によれば、地域情報検索サーバであって、全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の段階の1次〜n次(nは2以上の整数)のメッシュに階層化されたメッシュ構造において、リクエストされた位置情報が示す緯度に基づく値に第1所定値を乗算した第1値に、(i−1)(i=2〜n,nは3以上の整数)が分割されるi(i=2〜n,nは3以上の整数)次メッシュの緯度方向の個数を2次〜n次まで乗算した第2値を乗算した10進整数値を2進数に変換した2進数値をメッシュ座標の緯度コードとして算出する緯度コード算出部と、前記位置情報が示す経度から第2所定値を減算した第3値に、(i−1)(i=2〜n,nは3以上の整数)が分割されるi(i=2〜n,nは3以上の整数)次メッシュの経度方向の個数を2次〜n次まで乗算した第4値を乗算した10進整数値を2進数に変換した2進数値を前記メッシュ座標の経度コードとして算出する経度コード算出部と、各POIを一意に特定するPOI識別子を含みPOI情報を記憶するPOI情報データベースと、前記POI識別子及び各POIが位置するメッシュを特定する情報を記憶するPOI検索データベースと、前記位置情報が示す地点が位置するn次中心メッシュからn次メッシュ数について緯度又は経度方向に1個以上離間する隣接メッシュの集合である区分iが順序付けされた複数の区分i(i=1〜j,jは2以上の整数)の集合からなる順序区分集合に属する各区分iに含まれるn次の隣接メッシュまでの緯度方向及び経度方向に離間するn次メッシュ数を前記緯度コード及び前記経度コードに加減算して、前記区分iに属する前記各隣接メッシュのメッシュ座標を算出する区分i内メッシュ座標算出部と、前記区分iに属する隣接メッシュの前記メッシュ座標に基づいて、前記POI検索データベースを検索して、前記区分iに位置するPOI集合Riを取得するPOI集合検索部と、前記POI集合検索部が取得した前記区分iに位置する前記POI集合Riを前記POI情報に基づいて、ソートするPOI集合ソート部と、前記POI集合ソート部によりソートされた前記POI集合Riに所定の件数のPOIが存在するか否かを判定し、前記POI集合Riに所定の件数が存在する場合は、前記ソートされたPOI集合Riより、所定の件数のPOIを取得するPOI取得部と、区分i又は区分i+1のソートされたPOI集合Ri又はRi+1において、前記取得した所定の件数のPOIの後の所定の件数の先頭のPOIの区分i又はi+1、及び区分i又はi+1内の位置を示す後候補引き継ぎ値及び前記取得した所定の件数のPOIを送信情報に設定する後候補引き継ぎ値設定部とを具備したことを特徴とする地域情報検索サーバが提供される。
【0011】
請求項4記載の発明によれば、地域情報検索サーバであって、全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の段階に階層化され、各段階のメッシュには、緯度の増加とともに1ずつ増加する緯度部分の10進数及び経度の増加とともに1ずつ増加する経度部分の10進数の第1メッシュ番号、もしくは10進数のメッシュ番号であって、該10進数値を2進数で表現したとき、緯度に対応する所定ビットのビット値が緯度の増加とともに1ずつ増加し、経度に対応する所定ビットのビット値が経度の増加とともに1ずつ増加する第2メッシュ番号が付与され、i(i=1〜n−1,nは3以上の整数)次メッシュが緯度及び経度方向にそれぞれ2の冪乗個の(i+1)次メッシュに分割される階層的な分割に係る1〜n段階の1次〜n次メッシュの前記第1メッシュ番号もしくは前記第2メッシュ番号が1次メッシュを最上位桁として次数の昇順に順次連結されて、該n次メッシュを一意に特定するメッシュコードが付与されるメッシュ構造において、リクエストされた位置情報が示す地点が位置するn次中心メッシュのメッシュコードの1次〜n次までの10進数の前記緯度部分及び前記経度部分のそれぞれの前記第1メッシュ番号に基づく10進数値その10進数値の最大値に応じたビット長の緯度部分及び経度部分の2進数値、もしくは前記第2メッシュ番号をその10進数値の最大値に応じたビット長の第1及び第2所定ビットからなる緯度部分及び経度部分の2進数値を、1次メッシュを最上位側に次数の昇順に連結したパックコードを1次〜n次までの各次数についての前記緯度部分及び前記経度部分の前記2進数値をそれぞれ次数の昇順に上位ビット側に順に連結して、緯度コード及び経度コードのメッシュ座標に変換するメッシュ座標変換部と、各POIを一意に特定するPOI識別子を含みPOI情報を記憶するPOI情報データベースと、前記POI識別子及び各POIが位置するメッシュを特定する情報を記憶するPOI検索データベースと、前記中心メッシュからn次メッシュ数について緯度又は経度方向に1個以上離間する隣接メッシュの集合である区分iが順序付けされた複数の区分i(i=1〜j,jは2以上の整数)の集合からなる順序区分集合に属する各区分iに含まれるn次の隣接メッシュまでの緯度方向及び経度方向に離間するn次メッシュ数を前記緯度コード及び前記経度コードに加減算して、前記区分iに属する前記各隣接メッシュのメッシュ座標を算出する区分i内メッシュ座標算出部と、前記区分iに属する隣接メッシュの前記メッシュ座標に基づいて前記POI検索データベースを検索して、前記区分iに位置するPOI集合Riを取得するPOI集合検索部と、前記POI集合検索部が取得した前記区分iに位置する前記POI集合Riを前記POI情報に基づいて、ソートするPOI集合ソート部と、前記POI集合ソート部によりソートされた前記POI集合Riに所定の件数のPOIが存在するか否かを判定し、前記POI集合Riに所定の件数が存在する場合は、前記ソートされたPOI集合Riより、所定の件数のPOIを取得するPOI取得部と、区分i又は区分i+1のソートされたPOI集合Ri又はRi+1において、前記取得した所定の件数のPOIの後の所定の件数の先頭のPOIの区分i又はi+1、及び区分i又はi+1内の位置を示す後候補引き継ぎ値及び前記取得した所定の件数のPOIを送信情報に設定する後候補引き継ぎ値設定部とを具備したことを特徴とする地域情報検索サーバが提供される。
【0012】
請求項5記載の発明によれば、請求項1〜4のいずれかに記載の発明において、前記POI取得部は、前記所定の件数のPOIが前記POI集合Riに存在しない場合は、前記区分i及び前記順序付けによる次の区分i+1についてソートされたPOI集合Ri及びRi+1に基づいて、所定の件数のPOIを検索し、区分i+1でも所定の件数のPOIが取得できない場合は、区分i+2・・・と所定の件数のPOIが取得されるまで区分の範囲を拡大することを特徴する地域情報検索サーバが提供される。
【0013】
請求項6記載の発明によれば、請求項1〜5のいずれかに記載の発明において、前記後候補引き継ぎ値が設定された後候補リクエストに基づいて、前記POIデータベースを検索して、前記後候補引き継ぎ値が示す区分iに位置するPOI集合Riを取得する後候補POI集合検索部と、前記POI集合検索部が取得した前記区分iに位置する前記POI集合Riを前記POI情報に基づいてソートする後候補POI集合ソート部と、前記後候補POI集合ソート部によりソートされた前記POI集合Riに前記引き継ぎ値が示す区分i内の位置が示すPOI以降に所定の件数のPOIが存在するか否かを判定し、前記POI集合Riに所定の件数が存在する場合は、前記ソートされたPOI集合Riより、所定の件数のPOIを取得し、所定の件数のPOIが前記POI集合Riに存在しない場合は、前記区分i及び前記順序付けによる次の区分i+1についてソートされたPOI集合Ri及びRi+1に基づいて、所定の件数のPOIを取得する後候補POI取得部を更に具備したことを特徴とする地域情報検索サーバが提供される。
【0014】
請求項7記載の発明によれば、請求項4記載の発明において、前記POI検索データベースに格納される各POIが位置するメッシュを特定する情報は、各POIが位置するメッシュの前記パックコードであり、前記POI集合Ri取得部は、前記隣接メッシュのメッシュ座標を前記パックコードに変換して、該パックコードに基づいて、前記POI検索データベースを検索して、前記区分iに位置する前記POI集合Riを取得することを特徴とする地域情報検索サーバが提供される。
【0015】
請求項8記載の発明によれば、請求項6記載の発明において、前記後候補のリクエストに基づき、前記後候補POI取得部が取得した前記後の所定の件数のPOIの前の前記所定の件数の最後のPOIの区分及び区分内の位置を示す前候補引き継ぎ値を送信情報に設定する前候補引き継ぎ値設定部を更に備えたことを特徴とする地域情報検索サーバが提供される。
【発明の効果】
【0016】
請求項1または請求項2記載の発明によると、階層化されたメッシュ構造または階層化されていない単一階層のメッシュ構造において、区分iに属する複数の隣接メッシュに属するPOI集合Ri毎にPOIをソートして、N件のPOI情報を取得していくので、検索・ソートの範囲を限定することができ、後候補のN件の検索・ソートの高速化が可能になる。
【0017】
請求項3記載の発明によると、請求項1記載の発明の効果に加えて、中心メッシュの緯度・経度から算出したメッシュ座標に中心メッシュから隣接メッシュまでのまでのメッシュ数を加減算して、区分iに属する隣接メッシュのメッシュ座標を求め、隣接メッシュを特定するので、区分iに属する隣接メッシュを高速に抽出でき、処理が高速になる。
【0018】
請求項4記載の発明によると、請求項1記載の発明の効果に加えて、中心メッシュのメッシュコードから変換したメッシュ座標に中心メッシュまでのメッシュ数を加減算して、区分iに属する隣接メッシュのメッシュ座標を求めて、隣接メッシュを特定するので、区分iに属する隣接メッシュを高速に抽出することができ、処理が高速になる。
【0019】
請求項5記載の発明によると、区分iに所定の件数のPOIが存在しなければ、区分i,i+1,i+2,・・・と順次範囲を広げてPOI集合Riを検索・ソートするので、POI検索・ソートの範囲を限定でき、POI集合の検索・ソートの高速化を図ることができるとともに、処理効率を向上できる。
【0020】
請求項6記載の発明によると、後候補引き継ぎ値に基づいて、後候補の所定の件数を取得するので、後候補の検索・ソートの高速化を図ることができるとともに、処理効率を向上できる。
【0021】
請求項7記載の発明によると、POI検索データベースに、各POIが属するメッシュのパックコードを格納するので、隣接メッシュのパックコードのリストをキーとしてPOI検索データベースの絞り込みとPOI情報データベースの結合を行うことにより、隣接メッシュに位置するPOI集合Riを検索することができる。
【0022】
請求項8記載の発明によると、前候補引き継ぎ値に基づいて、前候補の所定のN件を取得するので、前候補の検索・ソートが高速になるとともに、処理効率を向上できる。
【図面の簡単な説明】
【0023】
【図1】本発明の第1実施形態による地域情報検索システムの概略構成図である。
【図2】図1中の携帯端末装置の機能ブロック図である。
【図3】図1中の地域情報検索サーバの機能ブロック図である。
【図4】図3中のPOIリスト取得部の機能ブロック図である。
【図5】図3中の前後候補取得部の機能プロック図である。
【図6】図1中のPOI情報テーブルの構成図である。
【図7】図1中のPOI検索テーブルの構成図である。
【図8】本発明の実施形態による多階層メッシュ構造を説明するための図である。
【図9】2次メッシュ及び2次メッシュ番号を示す図である。
【図10】n次(nは3以上の整数)メッシュ及びn次メッシュ番号を示す図である。
【図11】POI検索テーブルの作成方法を示すフローチャートである。
【図12】隣接メッシュのメッシュ座標の算出方法を示す図である。
【図13】隣接メッシュのメッシュ座標の算出方法を示す図である。
【図14】地域情報検索サーバのPOIリストの取得方法を示すフローチャートである。
【図15】地域情報検索サーバの前後候補の取得方法を示すフローチャートである。
【図16】区分iを示す図である。
【図17】携帯端末装置と地域情報検索サーバとの間でPOIリスト及び前後候補の取得に係るシーケンスチャートである。
【図18】携帯端末装置のPOIリスト表示例を示す図である。
【図19】携帯端末装置の後候補の表示例を示す図である。
【図20】本発明の第2実施形態による地域情報検索システムの概略構成図である。
【図21】図20中の情報端末装置の機能ブロック図である。
【図22】図20中の地域情報検索サーバの機能ブロック図である。
【図23】図22中のPOIリスト取得部の機能ブロック図である。
【図24】図22中の前後候補取得部の機能ブロック図である。
【図25】図20中のPOI検索テーブルの構成図である。
【図26】情報端末装置と地域情報検索サーバとの間でPOIリスト及び前後候補の 取得に係るシーケンスチャートである。
【図27】情報端末装置のPOIリスト表示例を示す図である。
【図28】情報端末装置の前後候補の表示例を示す図である。
【発明を実施するための形態】
【0024】
第1実施形態
図1は本発明の第1実施形態による地域情報検索システム1の構成図である。図1に示すように、地域情報検索システム1は、携帯端末装置2と、無線基地局4、基地局制御装置6、インターネット等の通信ネットワーク8と、地域情報検索サーバ10と、POI情報検索テーブル12と、POI検索テーブル14を具備する。
【0025】
携帯端末装置2は、携帯電話、スマートフォン、PDA(Personal Digital Assistants)等の移動体端末であり、無線基地局4及び基地局制御装置6等の移動ネットワーク及びインターネット等の通信ネットワーク8を通して、地域情報検索サーバ10に接続される。携帯端末装置2は、地域情報検索サーバ8と、所定の通信プロトコル、例えば、HTTPプロトコルに従って通信する。また、携帯端末装置2は、図示しないGPS(Global Positioning System)や無線基地局4から緯度・経度の位置情報を取得する。通信ネットワーク8は、インターネット等の通信ネットワークである。
【0026】
図2は、図1中の携帯端末装置2の地域情報(以下、POI(Point Of Interest))の取得に係る機能ブロック図である。図2に示すように携帯端末装置2のPOI取得に係る機能ブロックは、イベントキャッチ部52、位置情報取得部54、リクエスト部56、レスポンス受信部58及びデータ表示部60から構成され、これらは、記憶装置に格納された該当プログラムがメインメモリにローディングされて、CPUによるプログラムの実行により実現される。
【0027】
イベントキャッチ部52は、位置情報の取得や後候補のリクエストや前候補のリクエスト等に係るリンク情報が設定された該当の文字部がクリック操作されたこと等の各種のイベントをキャッチして、位置情報の取得や後候補や前候補のリクエストに必要なリンク情報をパラメータとして位置情報取得部54やリクエスト部56に出力する。
【0028】
位置情報取得部54は、イベントキャッチ部52より地域情報検索の指示がされると、無線基地局4や図示しないGPSと所定のプロトコルに従って無線通信を行い、緯度・経度の位置情報を取得して、リクエスト部56に位置情報及びリンク情報が設定されたジャンルを出力し、POIのリクエストを指示する。
【0029】
リクエスト部56は、POIリクエスト部70、後候補リクエスト72及び前候補リクエスト74を有し、POI、後候補や前候補をリクエストするために、クリックしたときに、リンク情報に対応する情報を地図情報検索サーバ8にリクエストする。
【0030】
POIリクエスト部70は、位置情報取得部54より取得された位置情報を指定して、該位置情報により示される中心メッシュの隣接メッシュに位置するPOIリストの送信を地域情報検索サーバ10にリクエスト(例えば、HTTPリクエスト)する。
【0031】
後候補リクエスト部72は、POIリストとともに画面に表示される後候補のリクエストをするための文字「次へ」がマウス等の入力手段によりクリックされると、リンクされている後述する後候補の所定の件数のPOIの昇順の並びにおける先頭のPOIの区分i及び区分内の位置Sの後候補引き継ぎ値を地域情報検索サーバ10に送信して、後候補の送信をリクエスト(例えば、HTTPリクエスト)する。ここで、後候補とは、POIリストが所定の件数(N件,例えば、N=10)表示されているとき、次のN件のPOIリストをいう。
【0032】
前候補リクエスト部74は、POIリストとともに画面に表示される前候補のリクエストをするための文字「前へ」がマウス等の入力手段によりクリックされると、リンクされている後述する前候補のN件のPOIの降順の並びにおける先頭(昇順の並びでは最後)のPOIの区分i及び区分内の位置Sの前候補引き継ぎ値を地域情報検索サーバ10に送信して、前候補の送信をリクエスト(例えば、HTTPリクエスト)する。前候補とは、POIリストがN件表示されているとき、その前のN件のPOIリストをいう。
【0033】
レスポンス受信部58は、地域情報検索サーバ10より、リクエストに対するレスポンスを受信するものであり、POIリスト受信部76、後候補受信部78及び前候補受信部80等を有する。POIリスト受信部76は、POIリストのリクエストのレスポンスであるPOIリスト、後候補引き継ぎ値を受信して、データ表示部60に出力する。後候補受信部78は、後候補リストのリクエストのレスポンスである後候補リスト、後候補引き継ぎ値及び前候補引き継ぎ値を受信して、データ表示部60に出力する。前候補受信部80は、前候補リストのリクエストのレスポンスである前候補リスト、後候補引き継ぎ値及び前候補があれば前候補引き継ぎ値を受信して、データ表示部60に出力する。
【0034】
データ表示部60は、レスポンス受信部58から出力されたレスポンスを画面に表示するのであり、POIリスト表示部82及び前後候補リスト表示部84を有する。POIリスト表示部82は、POIリスト受信部76が受信したPOIリスト及び後候補をリクエストするためにクリックされ、後候補引き継ぎ値がリンクされた「次へ」の文字を画面に表示する。前後候補リスト表示部84は、後候補受信部78や前候補受信部80が受信したが受信した後候補リストや前候補リスト、後候補をリクエストするためにクリックされ、後候補引き継ぎ値がリンクされた「次へ」の文字、及び前候補をリクエストするためにクリックされ、前候補引き継ぎ値がリンクされた「前へ」の文字を画面に表示する。
【0035】
地域情報検索サーバ10は、POI情報テーブル12及びPOI検索テーブル14を有し、以下の機能を有する。
【0036】
(1) POI検索テーブル14を作成する。即ち、POI情報テーブル12から各POI識別子(POIID)及び該POIIDを有するPOIが位置する緯度経度を取得し、緯度経度から後述する式(1),(2)に従って、緯度経度の地点が位置する最高次数のメッシュ(例えば、10次メッシュ)の緯度コード及び経度コードからなるメッシュ座標を算出し、このメッシュ座標を後述の最高次数のパックコードに変換して、パックコード及びPOIIDをPOI検索テーブル14に格納する。尚、POI情報テーブル12に各POIが登録された時点で該POIについてのパックコード及びPOIIDをPOI検索テーブル14に登録するようにしても良い。また、POI検索テーブル14にパックコードではなく、緯度コード及び経度コードから成るメッシュ座標をPOIIDとともに格納するようにしても良い。
【0037】
(2) 本実施形態では、例えば、1次メッシュは、8×8の2次メッシュに分割され、(i−1)(i=3〜n,nは最高次数 (例えば、n=10))には、2×2のi次(i=3〜n)メッシュに分割されている。そして、1次メッシュには、それぞれ2桁の1次メッシュ番号が付与され、2次メッシュには、それぞれ1桁(0〜7)×2の2次メッシュ番号が付与され、(i−1)次メッシュ(i=3〜n,nは最高次数(例えば、n=10))を2×2に分割するi(i=3〜n,nは最高次数)次メッシュには、経度部分と緯度部分に合わせて1桁(0〜3,2進数表現で0ビット目が経度部分のビット、1ビット目が緯度部分のビット)のメッシュ番号が付与された多段階のメッシュ構造の地図である。
【0038】
1次及び2次メッシュのように、緯度部分と経度部分にそれぞれ10進数のメッシュ番号が別々に付与されるメッシュ番号を第1メッシュ番号と呼び、3次メッシュ〜n次メッシュのように、10進数であって、緯度部分と経度部分を合わせて10進数のメッシュ番号が付与されて、その2進表現において、所定ビット(例えば、0ビット目が経度部分、1ビット目が緯度部分)が割り当てられている10進数値を第2メッシュ番号と呼ぶ。1次メッシュ及び2次メッシュは総務省で定められたメッシュであり、3次以降のメッシュは拡張メッシュである。
【0039】
(3) 携帯端末装置2からPOIリストのリクエストとともに送信された位置情報(緯度経度)から後述する式(1),(2)に従って、位置情報が示す地点が位置する最高次数の中心メッシュの緯度コード及び経度コードからなるメッシュ座標を算出して、中心メッシュの後述する区分0や中心メッシュに隣接するメッシュ(隣接メッシュ)の集合である後述する区分i(i=1,2,・・・)からなる順序付け区分集合に属する区分i(i=1,2,・・・)に含まれる隣接メッシュについて、中心メッシュから隣接メッシュのまでの緯度方向及び経度方向のn次(最高次数)メッシュ数を中心メッシュの後述するメッシュ座標の緯度コード及び経度コードに加減算して、隣接メッシュの緯度コード及び経度コードのメッシュ座標を求める。隣接メッシュとは、中心メッシュから中心メッシュと同じ次数のメッシュ数について緯度又は経度方向に1個以上離間するメッシュをいう。区分0に含まれる中心メッシュのメッシュ座標や区分i(i=1,2,・・・,の場合)に含まれる隣接メッシュのメッシュ座標を後述するパックコードに変換し、パックコードのリストを作成して、パックコードリストをキーにしてPOI検索テーブル14による絞り込みとPOI情報テーブル12とのテーブル結合を行って、同一区分i内のPOI集合Riを取得する。POI集合Riを所定のキーに基づいて、昇順にソートして、ソートされたPOI集合Riから所定の件数(以下、N件)を取得するともに、POIの昇順の並びにおける次のN件の先頭のPOIの区分i及び区分内の位置を示す後候補引き継ぎ値へリンクを設定して、N件のPOIリストともに携帯端末装置2にレスポンスする。区分i内にN件が存在しなければ、順序付け区分集合の次の区分i+1に含まれる隣接メッシュのメッシュ座標を算出し、メッシュ座標をパックコードに変換し、当該パックコードリストをキーにして、POI検索テーブル14による絞り込みとPOI情報テーブル12とのテーブル結合を行って、同一区分i+1内のPOI集合Ri+1を取得する。POI集合Ri+1を所定のキーに基づいて、昇順にソートして、ソートされたPOI集合Ri,Ri+1から所定の件数(以下、N件)を取得する。N件が取得できなければ、更に、区分i+2,・・・について同様の処理をして、POI集合Ri,Ri+1,Ri+2,・・・からN件を取得する。即ち、POI集合Rj(j=0〜i)において、Σ|Rj|(j=0〜i),|Rj|はPOI集合Rjの個数))≧Nとなるまで、POI集合Rjが検索される。尚、N件の検索は、区分0が最優先され,区分iが区分i+1に優先する。
【0040】
(4) 後候補や前候補のリクエストがされた場合は、リクエストとともに送信される後候補引き継ぎ値や前候補引き継ぎ値が示す区分iより指定される中心メッシュのメッシュ座標から区分iに含まれる隣接メッシュのメッシュ座標を求め、隣接メッシュのメッシュ座標をパックコードに変換し、パックコードのリストを作成して、パックコードリストをキーにしてPOI検索テーブル14による絞り込みとPOI情報テーブル12とのテーブル結合を行って、同一区分i内のPOI集合Riを取得する。POI集合Riを所定のキーに基づいて昇順(後候補リクエストの場合)または降順(前候補リクエストの場合)にソートし、後候補がリクエストされた場合、後候補引き継ぎ値が示す区分iの区分内の位置から後のN件のPOI、前候補がリクエストされた場合、前候補引き継ぎ値が示す区分iの区分内の位置から前のN件のPOIを(3)と同様にして取得して、このN件及びこのN件の後のN件の候補引き継ぎ値や存在する場合はこのN件の前のN件の前候補引き継ぎ値を携帯端末装置2に後候補や前候補のN件とともにレスポンスする。尚、前候補リクエストの場合は、区分i内にN件が存在しなければ、順序付け集合の前の区分i−1に含まれる隣接メッシュのメッシュ座標を算出し、メッシュ座標をパックコードに変換し、当該パックコードリストをキーにして、POI検索テーブル14による絞り込みとPOI情報テーブル12とのテーブル結合を行って、同一区分i−1内のPOI集合Ri−1を取得する。POI集合Ri−1を所定のキーに基づいて、降順にソートして、ソートされたPOI集合Ri,Ri−1から所定の件数(以下、N件)を取得する。N件が取得できなければ、更に、区分i−2,・・・について同様の処理をして、POI集合Ri,Ri−1,Ri−2,・・・からN件を取得する。
【0041】
地域情報検索サーバ10のハードウェア構成は、CPU、表示装置、入力手段、ROM、メインメモリ、記憶媒体、I/Oコントローラ及び通信インタフェース部等を有する。
【0042】
図3に示すように、地域情報検索サーバ10は、POI検索テーブル作成部148、リクエスト受信部150、POIリスト取得部152、前後候補取得部154及びレスポンス送信部156を有する。
【0043】
図6はPOI情報テーブル12の構成図である。図6に示すように、各POIはPOIを一意に特定するPOIID、POIが位置する緯度経度、POIの名称、POIのジャンル、POIの電話番号、並びに図示しないPOIの詳細情報を提供するURL及びサムネイル画像等を含む。
【0044】
図7は、図1中のPOI検索テーブル14の構成図である。図7に示すように、POI検索テーブル14は、POIIDとパックコードとを紐付けるためのテーブルであり、各POIのPOIID及び該POIが位置するn(最高次数)次メッシュのパックコードが格納される。
【0045】
POI検索テーブル作成部148は、図6に示すPOI情報テーブル12から各POIID及び該POIIDを有するPOIが位置する緯度経度を順次読み出して、後述するように、緯度経度から該緯度経度の地点が位置する最高次数nのメッシュ(例えば、10次メッシュ)のメッシュ座標(緯度コード及び経度コード)を後述の式(1),(2)に従って算出し、メッシュ座標を後述のパックコードに変換して、POIID及びパックコードを図7に示すPOI検索テーブル14に格納する。尚、POI検索テーブル14にはパックコードの代わりに緯度コード及び経度コードから成るメッシュ座標を格納するようにしても良い。
【0046】
図8は、メッシュ構造を示す図である。図9は、2次メッシュ番号を示す図である。図10は、3次〜n(nは3以上の整数)次メッシュのメッシュ番号を示す図である。図8に示すように、全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の段階に階層化されている。例えば、1次メッシュが8×8の2次メッシュに分割され、2次メッシュが2×2の3次メッシュに分割され、3次メッシュが2×2の4次メッシュ、4次メッシュが2×2の5次メッシュ、・・と階層的に分割されている。
【0047】
1次メッシュは、1次メッシュに含まれる任意の地点の緯度をlat、経度をlonとすると、1次メッシュ番号の2桁の緯度部分の10進数値(整数)はlat×1.5となり、1次メッシュ番号の2桁の経度部分の10進数値(整数)は(lon−100)となる。
【0048】
図9に示すように,2次メッシュのメッシュ番号は、2桁が付与されて、上位1桁の緯度部分には、緯度が大きくなるとともに値が大きくなるように0〜7までの数が割り当てられている。例えば、2次メッシュの一番南には0、一番北には7が付与されている。下位1桁の経度部分には、経度が大きくなるとともに値が大きくなるように0〜7までの数が付与されている。例えば、2次メッシュの一番西には0、一番東には7が割り当てられている。
【0049】
図10に示すように、n次(nは3以上)メッシュは2×2に分割されて、左下隅に0、右下隅に1、左上隅に2、右上隅に3が割り当てられている。これにより、0〜3までの10進数値を2ビットの2進数値に変換したとき、上位1ビットが緯度部分となり、下2つのメッシュは0、上2つのメッシュ番号は1となり、緯度が大きいメッシュ番号の値は1大きくなる。下位1ビットは経度部部分となり、左2つのメッシュは0、右2つのメッシュは1となり、経度が大きいメッシュの値は1大きくなる。
【0050】
例えば、1次メッシュのメッシュ番号の緯度部分を53、1次メッシュのメッシュ番号の経度部分を39、2次メッシュのメッシュ番号の緯度部分を4、2次メッシュのメッシュ番号の経度部分を6、3次メッシュのメッシュ番号を0、4次メッシュのメッシュ番号を0、5次メッシュのメッシュ番号を3、6次メッシュのメッシュ番号を0、7次メッシュのメッシュ番号を0、8次メッシュのメッシュ番号を0、9次メッシュのメッシュ番号を0、10次メッシュのメッシュ番号を0とすると、メッシュコードは、53394600300000となる。
【0051】
このように、本実施形態では、全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の段階に階層化され、各段階のメッシュには、緯度の増加とともに0〜最大値まで1ずつ増加する緯度部分の10進数及び経度の増加とともに0〜最大値まで1ずつ増加する経度部分の10進数の第1メッシュ番号、もしくは10進数のメッシュ番号であって、該10進数値を2進数で表現したとき、緯度に対応する所定ビットのビット値が緯度の増加とともに0〜最大値まで1ずつ増加し、経度に対応する所定ビットのビット値が経度の増加とともに0〜最大値まで1ずつ増加する第2メッシュ番号が付与され、i(i=1〜n−1,nは3以上の整数)次メッシュが緯度及び経度方向にそれぞれ2の冪乗個の(i+1)次メッシュに分割される階層的な分割に係る1〜n段階の1次〜n次メッシュの第1メッシュ番号もしくは第2メッシュ番号が1次メッシュを最上位桁として次数の昇順に順次連結されて、該n次メッシュを一意に特定するメッシュコードが付与されるメッシュ構造である。
【0052】
POI検索テーブル作成部148は、POI情報テーブル12から取得した緯度から次式(1)よりn(nは3以上の任意の次数で良いがここでは最高次数)次メッシュのメッシュ座標の緯度コードCaを求める。緯度をlatとする。ここで、緯度が度・分・秒で指定されている場合は、分・秒を度に変換する。
【0053】
Ca=FLOOR(((lat−10)×3)÷2)×(i(i=2〜n)次メッシュの経度方向の数をi=2〜nまで乗算した値)) ・・・ (1)
FLOOR()は小数点以下を切り捨てる関数である。
【0054】
ここで、緯度方向のi(i=2〜n)次メッシュの数をi=2〜nまで乗算した値は、各1次メッシュに関わるn次メッシュの緯度方向の数を意味し、n次メッシュと1次メッシュの縮尺を等しくして、各1次メッシュを該1次メッシュの地図範囲に含まれるn次メッシュで分割したときの緯度方向のn次メッシュの数に等しい。
【0055】
3/2(第1所定値)を乗算するのは、緯度部分のメッシュ番号に合わせるためである。latから10を引くのは、緯度コードの1次メッシュに該当する緯度部分を6ビットで択捉島まで含まれるようにするためであり、こうすることにより、1次メッシュのメッシュ座標の緯度部分P1a、経度部分P1bがそれぞれ6ビットであれば日本の東西南北端点である南鳥島、沖ノ島、与那国島、択捉島の各緯度の緯度部分を格納することができて、処理効率を向上させることができる。
【0056】
このとき、(lat−10)×3/2=lat×3/2−15であり、これは1次メッシュの緯度部分のメッシュ番号から15減算した値となり、緯度10°の緯度コードは0でとなり、緯度10°の緯度部分のメッシュ番号が15と整数であることより、緯度10°のメッシュの2次〜n次メッシュの緯度部分のメッシュ番号は、0もしくは緯度部分の該当ビット値が0となる。
【0057】
2次メッシュが1次メッシュを8×8に分割し、i(i=3〜n)次メッシュが(i−1)(i=3〜n)次メッシュを2×2に分割する場合、緯度方向の2次メッシュの数=23個、i(i=3〜n)次メッシュの緯度方向の数が2個であることから、i(i=2〜n)次メッシュの緯度方向の数をi=2〜nまで乗算した値は、23×2(n-2)=2の(n+1)乗となり、
Ca=FLOOR((((lat−10)×3)÷2)×(2の(n+1)乗))
となる。
【0058】
Caは、北緯10度の地点が含まれる地点から1次メッシュを北に隙間なく並べ、該1次メッシュと縮尺を等しくしたn次メッシュで各1次メッシュを分割したとき、北緯がlatの地点が含まれるn次メッシュまでの緯度方向のn次メッシュの個数−1である。
【0059】
POI検索テーブル作成部148は、経度から次式(2)よりn(nは3以上)次メッシュのメッシュ座標の経度コードCbを求める。経度をlonとする。ここで、経度が度・分・秒で指定されている場合は、分・秒を度に変換する。
【0060】
Cb=FLOOR((lon−100)×i(i=2〜n)次メッシュの経度方向の数をi=2〜nまで乗算した値) ・・・ (2)
FLOOR()は小数点以下を切り捨てる関数である。
【0061】
ここで、経度方向のi(i=2〜n)次メッシュの数をi=2〜nまで乗算した値は、各1次メッシュに関わるn次メッシュの経度方向の数を意味し、n次メッシュと1次メッシュの縮尺を等しくして、各1次メッシュを該1次メッシュの地図範囲に含まれるn次メッシュで分割したときの経度方向のn次メッシュの数に等しい。lonから100を引くのは、東経100度の経度コードを経度部分のメッシュ番号と同じ0とするためである。
【0062】
例えば、2次メッシュが1次メッシュを8×8に分割して、i(i=1〜n)次メッシュが(i−1)(i=1〜n)次メッシュを2×2に分割するとする。この場合、経度方向の2次メッシュの数=23、経度方向のi(i=3〜n)次メッシュの経度方向の数が2であることから、経度方向のi(i=2〜n)次メッシュの数をi=2〜nまで乗算した値は、23×2(n-2)=2の(n+1)乗)となり、
Cb=FLOOR((lon−100)×(2の(n+1)乗))
となる。
【0063】
Cbは、東経100度の地点が含まれる地点から1次メッシュを東に隙間なく並べ、該1次メッシュと縮尺を等しくしたn次メッシュで各1次メッシュを分割したとき、経度がlatの地点が含まれるn次メッシュまでの経度方向のn次メッシュの個数−1である。
【0064】
東経139度46分09.527秒、北緯35度40分41秒の10次の場合について説明する。
【0065】
上記を度で表すと、
lat=35+(40÷60)+(41÷3600)=35.678055
lon=139+(46÷60)+(09.527÷3600)=139.769313
となる。
【0066】
Ca=FLOOR((((lat−10)×3)÷2)×(2の11乗))
=FLOOR(((25.678055)×3)×1024)
=FLOOR(78882.98496)
=78882(10進)
=10011010000100010(2進)
Cb=FLOOR((lon−100)×(2の11乗))
=FLOOR(39.769313×2048)
=FLOOR(81447.553024)
=81447(10進)
=10011111000100111(2進)
本実施形態では、緯度コードの1次の緯度部分は6ビット、2次の緯度部分は3ビット、i(i=3〜n)次の緯度部分は1ビットであり、経度コードの1次の経度部分は6ビット、2次の経度部分は3ビット、i(i=3〜n)次の経度部分は1ビットである。
【0067】
緯度コードCa=C1aC2aC3a・・・C7aC8aC9aC10aとすると、
1次の緯度部分C1a=100100,2次の緯度部分C2a=100,3次の緯度部分C3a=0,4次の緯度部分C4a=0,5次の緯度部分C5a=1,6次の緯度部分Ca=0,7次の緯度部分Ca=0,8次の緯度部分C8a=0,9次の緯度部分C9a=1,10次の緯度部分C10a=0となる。
【0068】
経度コードCb=C1bC2bC3b・・・C7bC8bC9bC10bとすると、
1次の経度部分C1b=100111,2次の経度部分C2b=110,3次の経度部分C3b=0,4次の経度部分C4b=0,5次の経度部分C5b=1,6次の経度部分C6b=0,7次の経度部分C7b=0,8次の経度部分C8b=1,9次の経度部分C9b=1,10次の経度部分C10b=1となる。
【0069】
POI検索テーブル作成部148は、式(1),(2)より算出された緯度コードCa及び経度コードCbのメッシュ座標から各次数i(i=1〜n)の緯度部分Cia及び経度部分Cibについて緯度部分Ciaを経度部分Cibの上位ビット側にし、1次を最上位側にして、次数の昇順に結合して、パックコードに変換する。
【0070】
即ち、緯度コードCa=C1aC2aC3a・・・Cna、経度コードCb=C1bC2bC3b・・・Cnbとすると、パックコードP1aP1bP2aP2bP3・・・Pnは、以下のようになる。
P1a=C1a=100110(2進)=38(10進)
P1b=C1b=100111(2進)=39(10進)
P2a=C2a=100(2進)=4(10進)
P2b=C2b=110(2進)=6(10進)
P3=C3aC3b=00(2進)
P4=C4aC4b=00(2進)
P5=C5aC5b=11(2進)
P6=C6aC6b=00(2進)
P7=C7aC7b=00(2進)
P8=C8aC8b=01(2進)
P9=C9aC9b=11(2進)
P10=C10aC10b=01(2進)
このとき、北緯10度の地点の緯度部分のメッシュ番号は15であり、整数であることから、北緯10度の地点の2次メッシュ〜n次メッシュのメッシュ番号は0となることから、メッシュ座標から算出されるメッシュコードは、緯度経度により与えられるメッシュコードに一致する。
【0071】
メッシュコードについては、
M1a=P1a+15
M1b=P1b
M2a=P2a=4
M2b=P2b=6
M3=P3=0
M4=P4=0
M5=P5=3
M6=P6=0
M7=P7=0
M8=P8=1
M9=P9=3
M10=P10=1
即ち、メッシュコードは(M1a)(M1b)(M2a)(M2b)(M3)(M4)(M5)(M6)(M7)(M8)(M9)(M10)
=533946003000131
となる。
【0072】
POI検索テーブル作成部148は、POIID及びパックコードをPOI検索テーブル14に格納する。尚、POI検索テーブル14には、POI情報テーブル12にPOIが登録された時点で該POIについてのPOIID及びパックコードを登録するようにしても良い。また、POI情報テーブル12中の緯度経度が変更になったPOIについては、該POIのPOIID及びパックコードをPOI検索テーブル14から一旦削除してから、POI情報テーブル12から変更に係るPOIの緯度経度を取得して、該緯度経度からパックコードの再計算を行って、POIID及びパックコードをPOI検索テーブル14に登録するようにする。
【0073】
図11はPOI検索テーブル14の作成方法を示す図である。以下、図11を参照して、POI検索テーブル14の作成方法の説明をする。ステップS20で、POI情報テーブル12よりPOIID及び緯度経度を取得する。ステップS22で、次のPOIIDが有るか否かを判定する。肯定判定ならば、ステップS24に進み、否定判定ならば、POI検索テーブル14の作成方法の処理を終了する。ステップS24で、取得した緯度から前述した式(1)に従って、緯度コードを算出する。
【0074】
ステップS26で、取得した経度から前述した式(2)に従って、経度コードを算出する。ステップS28で緯度コード及び経度コードから上述したパックコードに変換する。ステップS30で、POIID及びパックコードをPOI検索テーブル14に書き込み、ステップS20に戻る。ステップS20〜S30を繰り返して、POI情報テーブル12に格納されている全てのPOIIDについて、POIの緯度経度からメッシュ座標に変換し、メッシュ座標をパックコードに変換して、POIID及びパックコードをPOI検索テーブル14に書き込み、ステップS20に戻る。
【0075】
図3中のリクエスト受信部150は、携帯端末装置2よりリクエストを受信するものであり、POIリストリクエスト受信部160、後候補リクエスト受信部162及び前候補リクエスト受信部164を有する。POIリストリクエスト受信部160は、POIリストのリクエストを受信して、緯度経度の位置情報をPOIリスト取得部152に出力する。後候補リクエスト受信部162は、後候補のリクエストとともに受信した後候補引き継ぎ値を前後候補取得部154に出力する。前候補リクエスト受信部164は、前候補のリクエストとともに受信した前候補引き継ぎ値を前後候補取得部154に出力する。
【0076】
POIリスト取得部152は、緯度経度の地点が位置する最高次数の中心メッシュ に位置するPOIリスト及び該中心メッシュの隣接メッシュに位置するPOIリスト並びに後候補引き継ぎ値を取得するものであり、図4に示すように、メッシュ座標算出部190、区分i内メッシュ座標算出部192、POI集合Ri検索部194、POI集合Riソート部196、N件取得部198、後候補引き継ぎ値設定部200及び結果生成部202を有する。メッシュ座標算出部190及び区分i内メッシュ座標算出部192は隣接メッシュ計算部を構成する。尚、後述するように、緯度経度の地点が位置する最高次数の中心メッシュについてのPOIリストに限らず、任意の次数の中心メッシュについてPOIリストを取得することができる。
【0077】
メッシュ座標算出部190は、POIリストリクエスト受信部160が受信した緯度経度から前述の式(1),(2)に従って、該緯度経度の地点が含まれる最高次数のメッシュの緯度コード及び経度コードからなるメッシュ座標を算出する。
【0078】
次に、緯度経度からメッシュ座標を算出する方法を説明する。携帯端末装置2より緯度経度の位置情報を取得して、取得した緯度から緯度コードを前述した式(1)に従って算出する。そして、取得した経度から経度コードを前述した式(2)に従って算出する。
【0079】
図12及び図13は、隣接メッシュのメッシュ座標の算出方法を示す図である。以下、図12及び図13を参照して、隣接メッシュのメッシュ座標を算出する方法を説明する。本例では、10次メッシュの場合を示している。携帯端末装置2より受信した緯度経度を「東経139.754394度、北緯35.669921度」とすると、前述した式(1),(2)により算出した、
緯度コードは、10011010000001010(Ca001010と記載する)
経度コードは、10011111000001001(Cb001001と記載する)
となる。
【0080】
パックコードP1aP1bP2aP2bP3P4P5P6P7P8P9P10は,P1a=100110、P1b=100111、P2a=100、P2b=110、P3=00、P4=00、P5=00、P6=00、P7=11、P8-=00、P9=10、P10=01となる。
【0081】
上記のように、緯度経度の地点が位置する中心メッシュM33のメッシュコードは53394600003021(以下、M003021,M=53394600と記載する)となる。
【0082】
式(1)より、緯度コードは、北緯10度の地点が含まれる地点から1次メッシュを北に隙間なく並べ、該1次メッシュと縮尺を等しくしたn次(例えば、10次)メッシュで各1次メッシュを分割したとき、北緯がlatの地点が含まれる10次メッシュまでの緯度方向のn次メッシュの個数−1であることから、中心メッシュM33から緯度方向にi個10次メッシュが離間するメッシュの緯度コードは中心メッシュM33の緯度コードCa001010にiの2進数値を緯度の方向に従って加減算した値である。
【0083】
式(2)より、経度コードは、東経100度の地点が含まれる地点から1次メッシュを東に隙間なく並べ、該1次メッシュと縮尺を等しくしたn次(例えば、10次)メッシュで各1次メッシュを分割したとき、東経がlonの地点が含まれるn次メッシュまでの経度方向のn次メッシュの個数−1であることから、中心メッシュM33から経度方向にi個10次メッシュが離間するメッシュの経度コードは中心メッシュM33の緯度コードCa001010にiの2進数値を経度の方向に従って加減算した値である。
【0084】
よって、メッシュM11の緯度コードはCa001000、経度コードはCb000111、メッシュコードはM002111、メッシュM12の緯度コードはCa001000、経度コードはCb001000、メッシュコードはM003000、メッシュM13の緯度コードはCa001000、経度コードはCb001001、メッシュコードはM003001、メッシュM14の緯度コードはCa001000、経度コードはCb001010、メッシュコードはM003010、メッシュM15の緯度コードはCa001000、経度コードはCb001011、メッシュコードはM003011となる。メッシュMij(i=2〜5,j=1〜5)についても、同様にして、緯度コード及び経度コードが求められる。
【0085】
即ち、図8に示すように、中心メッシュM33をn次メッシュとすると、中心メッシュM33から離間するn次メッシュの個数分だけ離間する方向に応じて、中心メッシュの緯度コード又は経度コードに加減算する、例えば、東に1個離間する場合は、経度コードに1加算し、東に2個離間する場合は、経度コードに2加算し、西に1個離間する場合は、経度コードに1減算し、西に2個離間する場合は、経度コードに2減算し、北に1個離間する場合は、緯度コードに1加算し、北に2個離間する場合は、緯度コードに2加算し、南に1個離間する場合は、緯度コードに1減算し、南に2個離間する場合は、緯度コードに2減算すれば良い。
【0086】
このように、中心メッシュの隣接メッシュのメッシュ座標は、中心メッシュのメッシュ座標に当該隣接メッシュが中心メッシュから離間するn次メッシュの個数をその緯度方向及び経度方向に応じて加減算することにより、隣接メッシュのメッシュ座標を算出することができる。
【0087】
区分i内メッシュ座標算出部192は、上記のように、区分i(i=1,2,・・・)に属する隣接メッシュのメッシュ座標に中心メッシュから緯度方向及び経度方向に離間するn次メッシュの個数を中心メッシュの緯度コード及び経度コードに加減算して、隣接メッシュのメッシュ座標を算出し、メッシュ座標からパックコードに変換して、区分iに属する隣接メッシュのパックコードのリストを作成する。
【0088】
区分0の場合は、中心メッシュのメッシュ座標から変換したパックコードのみからなるリストとなる。また、区分iはN件取得部198により区分j(j=0〜i)より合算してN件のPOIが取得できない場合は、隣接メッシュ座標の算出及びパックコードの変換に係る区分が区分i,i+1,・・・、と順次変更される。
【0089】
尚、緯度コードCa=C1aC2aC3a・・・Cna、経度コードCb=C1bC2bC3b・・・Cnbとすると、パックコードはC1aC1bC2aC2bC3aC3b・・・CnaCnbとなる。
【0090】
区分0は中心メッシュのみからなる集合、区分1は中心メッシュから緯度方向または経度方向にn次メッシュが1個離れた8個のn次の隣接メッシュの集合である。区分2はn次中心メッシュから緯度方向または経度方向にn次メッシュが2個離れた16個のn次隣接メッシュの集合であり、一般に、区分i(i=1,・・・)は中心メッシュから緯度方向または経度方向にn次メッシュがi個離れた隣接メッシュの集合である。
【0091】
POI集合Ri検索部194は、区分iに属するPOI集合Riを検索するものであり、パックコードのリストをキーにしてPOI検索テーブル14による絞り込みとPOI情報テーブル12とのテーブル結合を行って、同一区分i内のPOIのリストであるPOI集合Riを取得する。このとき、POIリクエストにジャンルが指定されている場合は、指定されたジャンルに合致するPOIが検索される。
【0092】
このように、中心メッシュのメッシュ座標に、中心メッシュから隣接メッシュまでのn次メッシュのn次メッシュ数を加減算して、隣接メッシュのメッシュ座標を求め、メッシュ座標からパックコードに変換して、パックコードリストを作成して、POI集合Riを取得しているので高速にPOI集合Riを検索することができる。
【0093】
緯度経度の地点が位置する最高次数の中心メッシュに限らず、任意の次数の中心メッシュについて、POIリストを以下のようにして取得することができる。例えば、最高次数が10次の場合に、POI検索テーブル14には、最高次数10次のパックコードが格納されているとすると、POI緯度経度の地点が位置する9次のメッシュに位置するPOIリストを以下のようにして求める。
【0094】
メッシュ座標算出部190は、9次の中心メッシュのメッシュ座標を算出する。区分i内メッシュ座標算出部192は、区分0については、9次の中心メッシュのメッシュ座標から9次の中心メッシュのパックコードを作成し、区分i(i>0)については、9次の中心メッシュのメッシュ座標から9次の隣接メッシュのメッシュ座標を算出して、9次の隣接メッシュのパックコードのリストを作成する。
【0095】
9次の中心メッシュの9次のパックコード又は9次の隣接メッシュの9次のパックコードのリストに含まれる各パックコードP1aP1bP2aP2bP3P4P5P6P7P8P9とし、P10L=00(2進数)、P10H=11(2進数)と定義すると、POI集合Ri検索部194は、パックコードP1aP1bP2aP2bP3P4P5P6P7P8P9P10LからパックコードP1aP1bP2aP2bP3P4P5P6P7P8P9P10Hまでの範囲で、10次のパックコードが格納されたPOI検索テーブル14による絞り込みとPOI情報テーブル12とのテーブル結合を行って、9次のメッシュに含まれるPOI集合Riを検索する。
【0096】
また、一般に、n次(n=1〜最高次数−1)については、パックコードP1aP1bP2aP2b・・・Pnとし、P(n+1)L=・・・=P10L=00(2進数)、P(n+1)H=・・・=P10H=11(2進数)と定義すると、パックコードP1aP1bP2aP2b・・・PnP(n+1)L・・・P10LからパックコードP1aP1bP2aP2b・・・PnP(n+1)H・・・P10Hの範囲でPOI検索テーブル14からパックコードを検索すれば良い。
【0097】
POI集合Riソート部196は、POI集合Riを特定のPOI情報(例えば、POIID)に従って、昇順にソートする。尚、携帯端末装置2より受信した緯度経度とPOIの緯度経度より、その間の距離に基づいてソートしても良い。
【0098】
N件取得部198は、ソートされたPOI集合Rj(j=0〜i)において、合算してN件のPOIを取得する。N件が取得できない場合は、区分i内隣接メッシュ座標算出部192により、区分i+1に属する隣接メッシュのメッシュ座標を算出し、POI集合Ri検索部194により、区分i+1に位置するPOI集合Ri+1を検索し、POI集合Riソート部196により、POI集合Ri+1をPOIIDに従って昇順にソートし、区分j(j=0〜i,i+1)において合算してN件のPOIを取得する。N件が取得できなければ、更に、区分i+2、・・・、とPOIの検索の区分の範囲を広げて、区分j(j=0〜i,i+1,i+2,・・・)において合算してN件のPOIを取得する。このとき、区分iが区分i+1よりも優先される。
【0099】
後候補引き継ぎ値設定部200は、N件取得部198が取得したN件の次のN件の先頭のPOIが含まれる区分i(中心メッシュのメッシュ座標+番号i)及び次のN件のソートされたPOI集合Riにおける先頭のPOIの位置(並びの順の番号)の後候補引き継ぎ値を設定する。具体的には、N件のPOIの後のN件の先頭のPOIの区分i(nxt_i)及び区分内の位置(nxt_s)の後候補引き継ぎ値を以下のように設定する。
【0100】
(1)nxt_i=N件取得部198が取得したN件のPOIの最後の区分のi,(2)該最後の区分iが区分0と同じであれば、nxt_s=該最後の区分i内で取得したPOI数、(3)該最後の区分iが区分0と異なる場合は、nxt_s=該最後の区分i内で取得したPOI数、(4)(2),(3)の結果、nxt_s=区分i内に含まれるPOI数であれば、nxt_i=該最後の区分のi+1、nxt_s=0(先頭)となる。
【0101】
結果生成部202は、N件のPOIリスト(各POIの店名、POIの店名のリンク情報としてその店の詳細情報を提供するURL、サムネイル画像等)並びに後候補をリクエストするための「次へ」の文字を表示される画面要素に後候補引継ぎ値並びに中心メッシュを特定するための情報としての中心緯度経度もしくは中心メッシュのメッシュ座標、メッシュコードの引き継ぎ値へのリンクが設定された結果を作成する。
【0102】
図3中の前後候補取得部154は、携帯端末装置2のユーザにより、後候補引き継ぎ値及び中心メッシュを特定するための中心緯度経度等の引き継ぎ値へリンクされた「次へ」や前候補引き継ぎ値及び中心メッシュを特定するための中心緯度経度等の引き継ぎ値へリンクされた「前へ」がクリックされて、後候補や前候補がリクエストされたとき、リクエストとともに送信され、後候補リクエスト受信部162や前候補リクエスト受信部164が受信した後候補引き継ぎ値や前候補引き継ぎ値並びに中心メッシュを特定するための中心緯度経度等の引き継ぎ値に基づいて、「次へ」/「前へ」のN件の後候補/前候補のPOIリスト、並びに後候補引き継ぎ値と前候補引継ぎ値(前のN件の先頭(POIの降順の並びにおいて)のPOIの区分i及び区分内の位置)を取得するものであり、図5に示すように、区分i内メッシュ座標算出部212、POI集合Ri検索部214、POI集合Riソート部216、後候補N件取得部218、前候補N件取得部220、後候補引き継ぎ値設定部222、前候補引き継ぎ値設定部224及び結果生成部226を有する。
【0103】
区分i内メッシュ座標算出部212は、図4中の区分i内メッシュ座標算出部192と同様に区分iに属する隣接メッシュのメッシュ座標を後候補引き継ぎ値や前候補引き継ぎ値の区分iにより算出する。後候補N件取得部218や前候補N件取得部220により後候補引き継ぎ値の区分i、または前候補引き継ぎ値の区分iにおいて、N件が取得できない場合は、隣接メッシュのメッシュ座標の算出及びパックリスト作成の対象となる区分が、後候補リクエストの場合は、区分i+1,i+2,・・・、前候補リクエストの場合は、区分i−1,i−2,・・・と変更されるが、処理は区分i内メッシュ座標算出部192と同様である。後候補リクエストと前候補リクエストの場合では、順序付けされた順序区分集合において、前者の場合は昇順に、後者の場合は降順に区分が検索される。後候補引き継ぎ値もしくは前候補引き継ぎ値とともに、引き継がれる中心メッシュを特定するための情報としての中心緯度経度もしくは中心メッシュのメッシュ座標、メッシュコードの引き継ぎ値より、任意の次数について中心メッシュのメッシュ座標を算出する。
【0104】
POI集合Ri検索部214は、POI集合Ri検索部194と同様に、区分iに属するPOI集合Riを検索するものであり、パックコードリストをキーにしてPOI検索テーブル14による絞り込みとPOI情報テーブル12とのテーブル結合を行って、同一区分i内のPOIのリストであるPOI集合Riを取得する。尚、緯度経度の地点が位置する最高次数の中心メッシュに限らず、任意の次数の中心メッシュについてのPOIリストを、POI集合Ri検索部194と同様の処理をすることにより取得することができる。
【0105】
POI集合Riソート部216は、POI集合Riを特定のPOI情報(POIID)に従って、昇順(後候補リクエストされた場合)、または降順(前候補リクエストされた場合)にソートする。
【0106】
後候補N件取得部218は、昇順にソートされたPOI集合Ri(iは、後候補引き継ぎ値の区分のi)において、後候補引き継ぎ値の区分i内の位置から後候補のN件のPOIを取得する。例えば、OFFSET関数を用いて、ソートされたPOI集合Riにおいて、後候補引き継ぎ値の区分内の先頭の位置からN件のPOIを取得する。
【0107】
N件が取得できない場合は、区分i内隣接メッシュ座標算出部212により、区分i+1に属する隣接メッシュのメッシュ座標の算出及びパックリストの作成をし、POI集合Ri検索部214により、パックリストをキーとしてPOI検索テーブル14の絞り込みとPOI情報テーブル12とのテーブル結合により、区分i+1に位置するPOI集合Ri+1を検索し、POI集合Riソート部216により、POI集合Ri+1をPOIIDに従って昇順にソートし、区分i,i+1において、後候補引き継ぎ値の区分内の位置から後のN件のPOIを取得する。N件が取得できなければ、更に、区分i+2、・・・、とPOIの検索の区分の範囲を広げて、区分i,i+1,i+2,・・・から合算してN件のPOIを取得する。
【0108】
前候補N件取得部220は、降順にソートされたPOI集合Ri(iは前候補引き継ぎ値の区分のi)において、前候補引き継ぎ値の区分i内の位置から前のN件のPOIを取得する。例えば、OFFSET関数を用いて、降順にソートされたPOI集合Riにおいて、区分i内の先頭の位置からN件のPOIを取得する。N件が取得できない場合は、区分i内メッシュ座標算出部212により、区分i−1に属する隣接メッシュのメッシュ座標の算出及びパックリストの作成をし、POI集合Ri検索部214により、パックリストをキーとしてPOI検索テーブル14の絞り込みとPOI情報テーブル12とのテーブル結合により、区分i−1に位置するPOI集合Ri−1を検索し、POI集合Riソート部216により、POI集合Ri−1をPOIIDに従って降順にソートし、区分i,i−1において、前候補引き継ぎ値の区分内の位置から前のN件のPOIを取得する。N件が取得できなければ、更に、区分i−2、・・・、とPOIの検索の区分の範囲を広げて、区分i,i−1,i−2・・・から合算してN件のPOIを取得する。
【0109】
後候補引き継ぎ値設定部222は、後候補N件取得部218や前候補N件取得部220が取得したN件の次のN件の先頭のPOIの区分及び区分内の位置を示す後候補引き継ぎ値を設定する。N件の次のN件の先頭のPOIの区分i(nxt_i)と区分内での位置(nxt_s)の後候補引き継ぎ値を以下のように設定する。
【0110】
後候補がリクエストされた場合は、(1)nxt_i=後候補N件取得部218が取得したN件の後候補の最後の区分のi,(2)該最後の区分iが後候補引き継ぎ値の区分iと同じであれば、nxt_s=後候補引き継ぎ値の区分内の位置+区分i内で取得したPOI数、(3)該最後の区分iが後候補引き継ぎ値の区分iと異なる場合は、nxt_s=該最後の区分i内で取得したPOI数、(4)(2),(3)の結果、nxt_s=該最後の区分i内に含まれるPOI数であれば、nxt_i=該最後の区分のi+1、nxt_s=0(先頭)となる。
【0111】
前候補がリクエストされた場合、(1)前候補引き継ぎ値の区分内の位置がゼロ(先頭)の場合、nxt_i=前候補引き継ぎ値の区分のi+1、nxt_s=ゼロ(先頭)、(2)前候補引き継ぎ値の区分内の位置がゼロ(先頭)以外の場合、nxt_i=前候補引き継ぎ値の区分のi、nxt_s=前候補引き継ぎ値の区分内のPOI数―前候補引き継ぎ値の区分内の位置となる。
【0112】
前候補引き継ぎ値設定部224は、後候補N件取得部218や前候補N件取得部220が取得したN件の前のN件の先頭のPOIの区分及び区分内の位置を示す前候補引き継ぎ値を設定する。N件の前のN件の先頭のPOIの区分i(prv_i)と区分内の位置(prv_s)の前候補引き継ぎ値を以下の様に設定する。
【0113】
後候補がリクエストされた場合は、(1)後候補引き継ぎ値の区分内の位置がゼロ(先頭)の場合、prv_i=後候補引き継ぎ値の区分のi―1、prv_s=ゼロ(先頭)、(2)後候補引き継ぎ値の区分内の位置がゼロ(先頭)以外の場合、prv_i=後候補引き継ぎ値の区分のi、prv_s=後候補引き継ぎ値の区分内のPOI数―後候補引き継ぎ値の区分内の位置となる。
【0114】
前候補がリクエストされた場合、(1)prv_i=前候補N件取得部220が取得した前候補のN件の最後の区分のi,(2)該最後の区分iが前候補引き継ぎ値の区分iと同じであれば、prv_s=区分内の位置+区分i内で取得できたPOI数、(3)該最後の区分iが前候補引き継ぎ値の区分iと異なるならば、prv_s=該最後の区分i内に含まれるPOI数、(4)(2)、(3)の結果、prv_sが前候補引き継ぎ値の区分iに含まれるPOI数と同じになる場合は、prv_i=該最後の区分のi−1,prv_s=ゼロ(先頭)となる。
【0115】
結果生成部226は、後候補N件取得部218や前候補N件取得部220が取得したN件のPOIリスト並びに後候補や前候補をリクエストするための「次へ」と「前へ」の文字を表示される画面要素に後候補引き継ぎ値や前候補引き継ぎ値並びに中心メッシュを特定するための情報としての中心緯度経度もしくは中心メッシュのメッシュ座標、メッシュコードの引き継ぎ値へのリンクが設定された結果を生成する。
【0116】
図3中のレスポンス送信部156は携帯端末装置2からのリクエストに対してレスポンス(例えば、HTTPレスポンス)をするものであり、POIリストレスポンス部170及び前後候補レスポンス部172を有する。POIリストレスポンス部170は、POIリスト取得部152が取得したN件のPOIリスト及び後候補引き継ぎ値を携帯端末装置2にレスポンス(例えば、HTTPレスポンス)する。前後候補レスポンス部172は、前後候補取得部154が取得したN件の後候補及び後候補引き継ぎ値、前候補引き継ぎ値を携帯端末装置2にレスポンス(例えば、HTTPレスポンス)する。
【0117】
図14及び図15は、地域情報検索方法を示すフローチャートである。図16は、区分iを示す図である。図17は、携帯端末装置2と地域情報検索サーバ10との間のシーケンスチャートである。以下、これらの図面を参照して地域情報検索方法の説明をする。
【0118】
携帯端末装置2は、ユーザの操作に従って、地域情報検索サーバ10にアクセスして、地域情報検索ページのレスポンスを受信すると、画面に表示する。ユーザは、地域情報検索ページのPOIリストをリクエストするためのリンク情報が設定されている特定のジャンルの文字(和食等)をクリックすると、携帯端末装置2は、図示しないGPSや無線基地局4より現在位置p(緯度経度)を取得し、図17中の(2)に示すように、地域情報検索サーバ10に位置情報及びジャンル等を指定して、POIリストのリクエストをする。
【0119】
図14中のステップS100で、地域情報検索サーバ10は、ユーザから現在位置pを受信する。ステップS102で、現在位置pが含まれる最高次数の中心メッシュを抽出する。例えば、緯度経度から前述した式(1),(2)に従って、中心メッシュのメッシュ座標を算出する。ステップS104で、iに0を代入して、iを初期化する。
【0120】
ステップS106で、抽出したメッシュを中心としてメッシュのグループ(区分i)を生成する。最初の処理では中心メッシュのみからなる区分0が抽出される。中心メッシュのメッシュ座標をパックコードに変換してパックコードのリストを作成する。
【0121】
ステップS108で、パックコードのリストをキーにしてPOI検索テーブル14による絞り込みとPOI情報テーブル12とのテーブル結合を行って、区分iに含まれるPOI集合Riを検索する。
【0122】
ステップS110で、POI集合Riを特定の基準に従って昇順にソートする。例えば、POIIDに基づいて、POI集合Riをソートする。ステップS112で、POI集合Rj(j=0〜i)の個数が所定値Nを満たすかを判定する。ステップ114で、Σ|Rj|(j=0〜i,|Rj|はPOI集合Rjの個数)≧Nであるか否かを判定する。肯定判定ならば、ステップS118に進む。否定判定ならば、ステップS116に進む。尚、初回は中心メッシュからN件が検索される。
【0123】
ステップS116で、区分iの範囲を区分i+1に設定し、区分i+1に含まれる隣接メッシュのメッシュ座標をパックコードに変換してパックコードのリストを作成する。区分i+1に属する隣接メッシュのメッシュ座標は、中心メッシュのメッシュ座標の緯度コード又は経度コードにi+1を加減算することにより得られる。
【0124】
図16に示すように、区分0は中心メッシュM33のみから成る集合、区分1は中心メッシュM33から緯度または経度方向に1個のn次メッシュが離間する8個の隣接メッシュの集合であり、区分2が中心メッシュM33から緯度または経度方向に2個n次メッシュが離間する16個の隣接メッシュの集合であり、区分3が中心メッシュM33から緯度または経度方向に3個のn次メッシュが離間する24個の隣接メッシュの集合である。
【0125】
例えば、区分1の場合は、8個の隣接メッシュのメッシュ座標は、(M33の緯度コード+1,M33の経度コード−1),(M33の緯度コード+1,M33の経度コード+0),(M33の緯度コード+1,M33の経度コード+1),(M33の緯度コード+0,M33の経度コード−1),(M33の緯度コード+0,M33の経度コード+1),(M33の緯度コード−1,M33の経度コード−1),(M33の緯度コード−1,M33の経度コード+0),(M33の緯度コード−1,M33の経度コード+1)である。
【0126】
ステップS108で、パックコードのリストをキーにしてPOI検索テーブル14による絞り込みとPOI情報テーブル12とのテーブル結合を行って、区分iに含まれるPOI集合Riを検索する。
【0127】
ステップS110でPOIIDに基づいてPOI集合Ri+1をソートして、ステップS112でPOI集合Ri,Ri+1がN件を満たすか否かを判定する。N件を満たさない場合は、ソートされたPOI集合Ri、Ri+1、・・・がN件を満たすまで、ステップS116及びステップS108〜S114を繰り返す。
【0128】
ステップS118でN件のPOIを取得する。ステップS120でPOI情報のリストの検索結果を生成する。ステップS122で区分iと区分内での位置Sを後候補引き継ぎ値として設定して、図17中の(4)に示すように、検索結果+後候補引き継ぎ値+図示しない中心メッシュを特定するための情報としての中心緯度経度もしくは中心メッシュのメッシュ座標、メッシュコード等の引き継ぎ値を含むPOIリストレスポンスを携帯端末装置2に送信する。N件のPOIの後のN件の先頭のPOIの区分i(nxt_i)及び区分内の位置(nxt_s)の後候補引き継ぎ値を以下のように設定する。
【0129】
(1)nxt_i=最後の区分(N件のPOIを取得したときの最後の区分)のi,(2)最後の区分iが区分0と同じであれば、nxt_s=最後の区分i内で取得したPOI数、(3)最後の区分iが区分0と異なる場合は、nxt_s=区分i内で取得したPOI数、(4)(2),(3)の結果、nxt_s=区分i内に含まれるPOI数であれば、nxt_i=最後の区分のi+1、nxt_s=0(先頭)となる。
【0130】
携帯端末装置2は、図17中の(5)に示すように、各POI名称に詳細を提供するURLがリンクされたPOIリスト及び表示した画面要素に後候補リクエストするための後候補引き継ぎ値並びに中心メッシュを特定するための情報としての中心緯度経度もしくは中心メッシュのメッシュ座標、メッシュコードの引き継ぎ値へリンクされた「次へ」の文字を表示する。図18に示すように、例えば、N=10とすると、Aレストラン〜Jレストランの名称にURLのリンク情報が設定されたPOIリストと表示された画面要素に区分i及び区分内の位置の後候補引き継ぎ値にリンクされた「次へ」の文字が表示される。図示しないがサムネイル画像を表示しても良い。
【0131】
ユーザは携帯端末装置2を操作して、「次へ」をクリックしたとする。図17中の(6)に示すように、携帯端末装置2は後候補引き継ぎ値を送信して、後候補のリクエストをする。地域情報検索サーバ10は、図15中のステップS130で、前/後候補のリクエストを待機している。ステップS132で、リクエストが有ったか否かを判定する。肯定判定ならば、ステップS134に進む。否定判定ならば、ステップS130に戻る。ステップ134で、前/後のリクエストを受信する。
【0132】
ステップS136で、後候補/前候補引き継ぎ値を受信して、例えば、区分iより中心メッシュのメッシュ座標を取得して、図14中のステップS106〜ステップS110と同様の処理を実行して、隣接メッシュのメッシュ座標を算出して、メッシュ座標をパックコードに変換して、パックコードリストを作成し、パックコードリストをキーにしてPOI検索テーブル14による絞り込みとPOI情報テーブル12とのテーブル結合を行って区分i内のPOI集合Riを取得し、POI集合Riをソートする。このとき、後候補がリクエストされていれば、PO集合Riを昇順にソートし、前候補がリクエストされていれば、PO集合Riを降順にソートする。ここでは、後候補がリクエストされたので、POI集合Riを昇順にソートする。尚、iは後候補引き継ぎ値の区分のi又は前候補引き継ぎ値の区分のiである。
【0133】
ステップS138で、区分i、区分i内の位置SからOFFSET関数(区分i内の位置から指定した件数のPOI(ここでは、N件を指定)取得する関数であり、区分i内でN件が取得できなければ、取得件数を出力する)を取得する。ステップS140で、取得件数がN以上であるか否かを判定する。肯定判定ならば、ステップS160に進む。否定判定ならば、ステップS142に進む。
【0134】
ステップS142で、後候補リクエストであるか否かを判定する。肯定判定ならば、ステップS143に進み、否定判定ならば、ステップS150に進む。ここでは、後候補がリクエストされているので、ステップS143に進む。ステップS143で区分iの範囲を区分i+1に設定する。
【0135】
ステップS145で、区分i+1に含まれる隣接メッシュのメッシュ座標を(i+1)及び中心メッシュのメッシュ座標より算出し、メッシュ座標をパックコードに変換してパックコードのリストを作成し、パックコードのリストをキーにしてPOI検索テーブル14による絞り込みとPOI情報テーブル12とのテーブル結合を行って、区分i+1に含まれるPOI集合Ri+1を検索する。
【0136】
ステップS146で、POI集合Ri+1を特定の基準(例えば、POIID)に従って昇順にソートする。ステップS138に戻って、後候補引き継ぎ値の区分i内の位置からN件が取得できるまで、ステップS138〜S140,S142,S143,S145,S146を繰り返す。
【0137】
ステップS160で、後候補のリストの検索結果を生成する。ステップS162で、N件の次のN件の先頭のPOIの区分i(nxt_i)と区分内の位置(nxt_s)の後候補引き継ぎ値を以下の様に設定する。
【0138】
後候補がリクエストされているので、(1)nxt_i=N件の後候補を取得した時の最後の区分のi,(2)該最後の区分iが後候補引き継ぎ値の区分iと同じであれば、nxt_s=後候補引き継ぎ値の区分内の位置+区分i内で取得したPOI数、(3)該最後の区分iが後候補引き継ぎ値の区分iと異なる場合は、nxt_s=該最後の区分i内で取得したPOI数、(4)(2),(3)の結果、nxt_s=区分i内に含まれるPOI数であれば、nxt_i=該最後の区分のi+1、nxt_s=0(先頭)となる。
【0139】
ステップS164でN件の前のN件の先頭(降順の並びにおいて)の区分i(prv_i)と区分内の位置(prv_s)の前候補引き継ぎ値を以下の様に設定する。
【0140】
後候補がリクエストされているので、(1)後候補引き継ぎ値の区分内の位置がゼロ(先頭)の場合、prv_i=後候補引き継ぎ値の区分のi―1、prv_s=ゼロ(先頭)、(2)後候補引き継ぎ値の区分内の位置がゼロ(先頭)以外の場合、prv_i=後候補引き継ぎ値の区分のi、prv_s=後候補引き継ぎ値の区分内のPOI数―後候補引き継ぎ値の区分内の位置となる。
【0141】
図17中の(8)に示すように、携帯端末装置2に検索結果のPOIリスト+後候補引き継ぎ値+前候補引き継ぎ値+図示しない中心メッシュを特定するための情報として中心緯度経度もしくは中心メッシュのメッシュ座標、メッシュコード等の引き継ぎ値を後候補レスポンスする。図17中の(9)に示すように、携帯端末装置2は後候補リストを画面に表示する。図19は後候補リストの表示画面であり、図18のPOIリスト画面に加えて、前候補リクエストするための前候補引き継ぎ値がリンクされた「前へ」の文字が表示されている。
【0142】
図17中の(10)に示すようにユーザが携帯端末装置2を操作して、「前へ」をクリックすると、携帯端末装置2は地域情報検索サーバ10に前候補引き継ぎ値を送信して、前候補リクエストする。後候補リクエストの場合と同様にステップS130〜ステップS136の処理を行う。このとき、POI集合Riを降順にソートする。
【0143】
ステップS138で、降順にソートされたPOI集合Riから区分i、区分i内の位置Sに基づいて、OFFSET関数を用いて区分i内の位置から前のN件を取得する。ステップS140で、取得件数がN以上であるか否かを判定する。肯定判定ならば、ステップS160に進む。否定判定ならば、ステップS142に進む。
【0144】
ステップS142で、後候補リクエストであるか否かを判定する。肯定判定ならば、ステップS143に進み、否定判定ならば、ステップS150に進む。ここでは、前候補がリクエストされているので、ステップS150に進む。ステップS150で区分iの範囲を区分i−1に設定する。
【0145】
ステップS152で、区分i−1に含まれる隣接メッシュのメッシュ座標を(i−1)及び中心メッシュのメッシュ座標より算出し、隣接メッシュのメッシュ座標をパックコードに変換してパックコードのリストを作成し、パックコードのリストをキーにしてPOI検索テーブル14による絞り込みとPOI情報テーブル12とのテーブル結合を行って、区分i−1に含まれるPOI集合Ri−1を検索する。
【0146】
ステップS154で、POI集合Ri−1を特定の基準(例えば、POIID)に従って降順にソートする。ステップS138に戻って、後候補引き継ぎ値の区分i内の位置からN件が取得できるまで、ステップS138〜S140,S150,S152,S154を繰り返す。
【0147】
ステップS160で前候補のリストの検索結果を生成する。ステップS162でN件の次の後のN件の先頭のPOIの区分i(nxt_i)と区分内の位置(nxt_s)の後候補引き継ぎ値を以下の様に設定する。
【0148】
前候補がリクエストされているので、(1)前候補引き継ぎ値の区分内の位置がゼロ(先頭)の場合、nxt_i=前候補引き継ぎ値の区分のi+1、nxt_s=ゼロ(先頭)、(2)前候補引き継ぎ値の区分内の位置がゼロ(先頭)以外の場合、nxt_i=前候補引き継ぎ値の区分のi、nxt_s=前候補引き継ぎ値の区分内のPOI数―前候補引き継ぎ値の区分内の位置となる。
【0149】
ステップS164でN件の前のN件の先頭(降順の並びにおいて)のPOIの区分i(prv_i)と区分内の位置(prv_s)の前候補引き継ぎ値を以下の様に設定する。
【0150】
前候補がリクエストされているので、(1)prv_i=N件の前候補を取得した最後の区分のi,(2)該最後の区分iが前候補引き継ぎ値の区分iと同じであれば、prv_s=前候補引き継ぎ値の区分i内で取得できたPOI数、(3)該最後の区分iが前候補引き継ぎ値の区分iと異なるならば、prv_s=該最後の区分i内で取得できたPOI数、(4)(2)、(3)の結果、prv_sが該最後の区分i内に含まれるPOI数と同じになる場合は、prv_i=該最後の区分のi−1,prv_s=ゼロ(先頭)となる。
【0151】
図17中の(12)に示すように、地域情報検索サーバ10は携帯端末装置2に前候補レスポンス(検索結果+後候補引き継ぎ値+図示しない中心メッシュを特定するための情報としての中心緯度経度もしくは中心メッシュのメッシュ座標、メッシュコードの引き継ぎ値)する。前候補が存在する場合は、前候補引き継ぎ値もレスポンスする。携帯端末装置2は図17中の(13)に示すように、前候補リストを画面に表示する。
【0152】
本実施形態によれば、多階層に分割されたメッシュ構造においても、中心メッシュの隣接メッシュをメッシュ座標により抽出することができる。また、中心メッシュのメッシュ座標を式(1),(2)より算出して、メッシュ座標に中心メッシュからの隣接メッシュまでのn次メッシュの個数を加減算して、隣接メッシュのメッシュ座標を算出して、隣接メッシュを抽出するので、隣接メッシュを高速に抽出することができ、隣接メッシュに位置するPOIを高速に検索できる。順序付けされた区分iの順序区分集合において、区分iからPOI集合Riを検索して、ソートするので、検索・ソートの処理範囲が限定されて、検索・ソートの高速化を図ることができる。
【0153】
後候補引き継ぎ値や前候補引き継ぎ値のリンク情報をPOIリストや前後候補リストとともに送信しておき、後候補リクエストや前候補リクエストに後候補引き継ぎ値や前候補引き継ぎ値を地域情報検索サーバ10に送信するので、後候補引き継ぎ値や前候補引き継ぎ値の区分i及び区分i内の位置に基づいてPOI集合Riを検索し、後候補や前候補のN件を取得するので、検索範囲及びソートの範囲を限定でき、無駄な処理を省くことができ、処理効率を向上させ、後候補や前候補を高速に取得できる。
【0154】
第2実施形態
図20は本発明の第2実施形態による地域情報検索システム248の構成図である。図20に示すように、地域情報検索システム248は、複数の情報端末装置250#i(i=1〜n)と、該端末装置250#i(i=1〜n)がインターネット等の通信ネットワーク8を通して接続された地域情報検索サーバ252とを具備する。符号250#iは複数の情報端末装置の任意の一つを指すが、以下では250と省略して記す。本実施形態では、第1実施形態とは異なりPOIリストとともに地図画像を表示する形態であり、また、中心メッシュの次数が第1実施形態とは異なっている。
【0155】
情報端末装置250は、PC(Personal Computer)、カーナビゲーション装置、デジタルテレビ等、通信ネットワーク8を通して、所定の通信プロトコル、例えば、HTTP(Hyper Text Transfer Protocol)に従って、地域情報検索サービスの提供を受ける端末装置である。尚、通信プロトコルは、地域情報検索サーバ252との間で通信ネットワーク8を介して通信が可能であれば、HTTP以外の他のプロトコルであっても勿論良い。
【0156】
図21は情報端末装置250のPOIの取得に係る機能ブロック図である。図21に示すように、情報端末装置250のPOI取得に係る機能ブロックは、イベントキャッチ部300、リクエスト部302、レスポンス受信部304及びデータ表示部305から構成され、これらは、記憶装置に格納された該当プログラムがメインメモリにローディングされて、CPUによるプログラムの実行により実現される。
【0157】
イベントキャッチ部300は、位置情報リストのリクエスト、画像データのリクエスト、POIリストのリクエスト、後候補のリクエスト及び前候補のリクエストなどのリンクが設定された該当の文字がクリック操作されたことの各種のイベントをキャッチして、位置情報のリクエスト、地図画像のリクエスト、後候補や前候補のリクエストに必要なリンクをパラメータとしてリクエスト部302に出力する。
【0158】
リクエスト部302は、位置情報リクエスト部350、地図画像データリクエスト部352及びPOIリストリクエスト部354を有する。位置情報リクエスト部350は、ユーザにより検索窓に入力された表示対象の地図を指定する住所、郵便番号や施設名等を指定し、該当する緯度経度の位置情報リストの送信を地域情報検索サーバ252にリクエスト(例えば、HTTPリクエスト)する。位置情報等の表示対象の地図を指定する方法は、検索キーワードを指定すること以外にも指定可能であり、それぞれの指定方法に従って指定すれば良い。
【0159】
地図画像データリクエスト部352は、画面に表示する地図の緯度経度の位置情報、例えば、位置情報リストの中でクリック操作等により、選択された緯度経度の地点が含まれる地図画像データの送信を地域情報検索サーバ252にリクエスト(例えば、HTTPリクエスト)する。
【0160】
このとき、地域情報検索サーバ252では、地図画像データのレスポンスは、地図画像ファイル単位に行うことから、地図画像データのリクエストは選択された緯度経度の地点を地図表示画面の中心に表示するのに必要な地図画像ファイル数に応じて行われる。このとき、地図画像データとともにその緯度経度1(左下隅の緯度経度),緯度経度2(右上隅の緯度経度)がレスポンスされる。尚、緯度経度1,2の代わりにメッシュコードでも良い。
【0161】
POIリクエスト部354は、図2中のPOIリストリクエスト部70と同様の処理を行う。尚、POIをリクエストするためのリンクがクリックされると、位置情報としての緯度経度(例えば、画面中心のメッシュの緯度経度1,2)を地域情報検索サーバ252に送信して、POIリストをリクエストする。後候補リクエスト部356及び前候補リクエスト部358は、図2中の後候補リクエスト部72及び前候補リクエスト部74と同様の処理をする。
【0162】
レスポンス受信部304は、地域情報検索サーバ252より、リクエストに対するレスポンスを受信するものであり、位置情報受信部360、地図画像データ受信部362、POIリスト受信部364、後候補受信部366及び前候補受信部368を有する。位置情報受信部360は、位置情報リクエスト部350の位置情報リクエストに対する地域情報検索サーバ252からのレスポンスである位置情報リストを受信する。地図画像データ受信部362は、地図画像データリクエスト部352の地図画像データリクエストに対する地域情報検索サーバ252からのレスポンスである地図画像データ並びに地図画像データの地域範囲を示す緯度経度1,2を受信する。POIリスト受信部364、後候補受信部366及び前候補受信部368は、図2中のPOIリスト受信部76、後候補受信部78及び前候補受信部80と同様の処理をする。
【0163】
データ表示部305は、レスポンス受信部304から出力されたレスポンスを画面に表示するのであり、地図画像データ表示部370、POIリスト表示部372及び前後候補リスト表示部374を有する。地図画像データ表示部370は、地図画像データレスポンス受信部362が受信した地図画像データ及び当該地図画像データの地域範囲から、表示対象の地図画像データを編集して地図表示画面データを生成し、地図表示画面上に地図を表示する。POIリスト表示部372及び前後候補表示部374は、図2中のPOIリスト表示部82及び前後候補表示部84と同様の処理を行うが、後述するように、POIリストや前後候補の表示態様が地図画像とともに表示する点で第1実施形態とは異なる。
【0164】
図22は、地域情報検索サーバ252のPOIリスト取得に係る機能ブロック図である。図22に示すように、地域情報検索サーバ252は、POI検索テーブル作成部398、リクエスト受信部400、位置情報取得部402、地図画像データ取得部406、POIリスト取得部408、前後候補取得部410及びレスポンス送信部412を有する。
【0165】
POI検索テーブル作成部398は、図3中のPOI検索テーブル作成部148と同様にPOI検索テーブル256を作成するが、各POIについて、最高次数のパックコードだけでなく、複数次数のパックコードを作成する点がPOI検索テーブル作成部148と異なる。メッシュ構造やアプリケーションに応じた次数のメッシュに基づいて、地域情報を検索するためである。
【0166】
リクエスト受信部400は、情報端末装置250よりリクエストを受信するものであり、位置情報リクエスト受信部420、地図画像データリクエスト受信部422、POIリストリクエスト受信部423、後候補リクエスト受信部424及び前候補リクエスト受信部426を有する。位置情報リクエスト受信部420は、情報端末装置250から住所、施設名、郵便番号等の検索キーワードが指定された位置情報リストのリクエストを受信して、検索キーワードを位置情報取得部402に出力する。地図画像データリクエスト受信部422は、情報端末装置250から位置情報が指定された地図画像データのリクエストを受信して、位置情報を地図画像データ取得部406に出力する。
【0167】
地図画像データ取得部406は、地図画像データリクエスト受信部422が受信した位置情報に基づいて、メッシュ分割された地図を管理する図示しない地図メッシュDBを検索し、位置情報により指示される地点の地図画像データ及び地図画像データの地域範囲(緯度経度1,2)を取得する。
【0168】
POIリスト取得部408は、図23に示すように、メッシュ座標算出部450、区分iメッシュ座標算出部451、POI集合Ri検索部452、POI集合Riソート部196、N件取得部198、後候補引き継ぎ値設定部200及び結果生成部4523有し、図4中の構成要素と実質的に同一の構成要素には同一の符号を附している。メッシュ座標算出部450及び区分i内メッシュ座標算出部451は隣接メッシュ計算部を構成する。
【0169】
メッシュ座標算出部450は、POIリストリクエスト受信部423が受信した緯度経度、例えば、緯度経度1,2から中心地点の緯度経度を算出し、緯度経度に基づいて、該緯度経度の地点が位置する所定の次数(例えば、9次メッシュ、または、緯度経度1,2に地図範囲が一致するメッシュの次数、以下、この次数をnで表す)の中心メッシュのメッシュ座標を前述の式(1),(2)より算出する。
【0170】
区分i内メッシュ座標算出部451は、図4中の区分i内メッシュ座標算出部192と同様の処理を行い、中心メッシュや隣接メッシュのメッシュ座標を次数nのパックコードに変換して、パックコードのリストを作成する。
【0171】
POI集合Ri検索部452は、図4中のPOI集合Ri検索部194の同様の処理を行い、パックコードのリストをキーにして、POI検索テーブル256に格納されているn次のパックコードを検索して、POI検索テーブル256の絞り込みとPOI情報テーブル254とのテーブル結合を行って、同一区分i内のPOIのリストを取得する。
【0172】
結果生成部452は、N件のPOIリスト(各POIの店名、緯度・経度、リンク情報としてその店の詳細情報(住所、電話番号等)を提供するURL等)並びに後候補をリクエストするための「次へ」の文字が表示される画面要素に上述した後候補引き継ぎ値へのリンクが設定された結果を生成する。
【0173】
前後候補取得部410は、図24に示すように、区分i内メッシュ座標算出部460、POI集合Ri検索部461、POI集合Riソート部216、後候補N件取得部218、前候補N件取得部220、後候補引き継ぎ値設定部222、前候補引き継ぎ値設定部224及び結果生成部462を有し、図5中の構成要素と実質的に同一の構成要素には同一の符号を附している。
【0174】
区分i内メッシュ座標算出部460は、区分iに属する隣接メッシュのメッシュ座標を中心メッシュのメッシュ座標より算出し、中心メッシュのメッシュ座標、又は隣接メッシュのメッシュ座標を区分i内メッシュ座標算出部451と同様に次数nのパックコードに変換して、パックコードのリストを作成する。
【0175】
POI集合Ri検索部461は、パックコードのリストをキーにして、POI検索テーブル256に格納されているn次のパックコードを検索して、POI検索テーブル256の絞り込みとPOI情報テーブル254とのテーブル結合を行って、同一区分i内のPOIのリストを取得する。
【0176】
結果生成部462は、後候補N件取得部218や前候補N件取得部220が取得したN件のPOIリスト及び表示される画面要素に後候補や前候補をリクエストするための後候補引き継ぎ値や前候補引き継ぎ値へのリンクが設定された結果を生成する。
【0177】
図22中のレスポンス送信部412は情報端末装置250からのリクエストに対してレスポンス(例えば、HTTPレスポンス)をするものであり、位置情報レスポンス430、地図画像データレスポンス部432、POIリストレスポンス部434及び前後候補レスポンス部436を有する。
【0178】
位置情報レスポンス430は、位置情報取得部430が取得した位置情報リストを情報端末装置250にレスポンス(例えば、HTTPレスポンス)する。地図画像データレスポンス部432は、地図画像データレスポンス部432は、地図画像データレスポンス部432が取得した地図画像データ及び地図範囲(緯度経度1,2)をレスポンス(例えば、HTTPレスポンス)する。POIリストレスポンス部434及び前後候補レスポンス部436は、図3中のPOIリストレスポンス部82及び前後候補レスポンス部84と同様の処理を行うが、地図画像の対応する位置にアイコンや吹き出し等を表示するためPOI情報が第1実施形態と比べてより詳細になっている。
【0179】
図20中のPOI情報データベース254は図1中のPOI情報テーブル12と同様にPOI情報を記憶するが、POI情報テーブル12よりも詳細なPOI情報を記憶している。図25は、図20中のPOI検索テーブル256の構成図である。図25に示すように、POI検索テーブル256には、各POIのPOIID及び複数次数(例えば、9次,8次など)のパックコードが格納されている。尚、最高次数のパックコードよりも低次数のパックコードについては、最高次数のパックコードの1次から低次数までの一部が低次数のパックコードとなるため、必ずしも次数毎にパックコードをPOI検索データベース256に記憶する必要がないが、パックコードを各次数毎にPOI検索データベース256に記憶することにより、最高次数のパックコードから低次数のパックコードを算出するオーバへッドを無くすためである。
【0180】
図26は情報端末装置250と地域情報検索サーバ252との間の地域情報検索方法を示すシーケンスチャートであり、図27及び図28は画面表示例を示す図である。以下、これらの図面並びに図14及び図15を参照して、地域情報検索方法の説明をする。
【0181】
情報端末装置250のユーザは、位置検索キーワードを入力すると、情報端末装置250は、図26中の(20)に示すように、地域情報検索サーバ252に位置検索キーワードを指定し、位置情報をリクエストする。地域情報検索サーバ252は、位置検索キーワードに基づいて、POI情報テーブル254を検索して、位置検索キーワードに該当する位置情報リストを取得して、図26中の(22)に示すように、位置情報リストをレスポンスとして、情報端末装置250に送信する。
【0182】
地域情報検索サーバ252からレスポンスされた位置情報リストが画面に表示されて、ユーザは画面に表示された位置情報リストの中から位置情報(例えば、緯度経度1,2)を選択すると、位置情報を指定して、図26中の(24)に示すように、地域情報検索サーバ252に地図画像データの送信をリクエストする。地域情報検索サーバ252は、図26中の(26)に示すように、位置情報に基づいて、画像データ及び緯度経度1,2を情報端末装置250に地図画像データレスポンスする。
【0183】
情報端末装置250は、画像データレスポンスを受信して、図26中の(27)に示すように、地図画像データを画面に表示する。情報端末装置250のユーザはPOIリストリクエストのジャンル等の文字をクリックすると、情報端末装置250は、図26中の(28)に示すように、位置情報、例えば、画面中心のメッシュの緯度経度1,2を送信して、POIリストをリクエストする。
【0184】
図14中のステップS100で、地域情報検索サーバ7は、ユーザから位置情報(緯度経度1,2)pを受信する。ステップS300で、位置情報pの地点が含まれるメッシュを抽出する。例えば、緯度経度1,2から地図範囲の中心地点の緯度経度を算出し,次数n(例えば、9次メッシュ又は緯度経度1,2に対応するメッシュの次数)及び中心地点の緯度経度から、前述した式(1),(2)より中心地点が位置するn次のメッシュのメッシュ座標を算出する。
【0185】
図14中のステップS104〜S106を行う。ステップS108で、区分iに含まれるPOI集合Riを区分iの中心メッシュのメッシュ座標または隣接メッシュのメッシュ座標から変換したn次パックコードリストをキーとして、POI検索テーブル256に格納されている次数nのパックコードを検索し、POI検索テーブル256による絞り込みとPOI情報テーブル254とのテーブル結合を行って、同一区分i内のPOIのリストを取得する。
【0186】
図14中のステップS110〜S122で、N件のPOIを取得するとともに、後候補引き継ぎ値を設定して、図26中の(30)に示すように、検索結果+後候補引き継ぎ値を含むPOIリストのレスポンスを情報端末装置250に送信する。
【0187】
情報端末装置250は、図26中の(31)及び図27に示すように、所定の画面の領域に、番号が付されたPOIの詳細を提供するサーバのURLがリンクされたPOI名称のリスト、表示した画面要素に後候補をリクエストするために後候補引き継ぎ値がリンクされた「次へ」の文字及び各POIが位置する地図画面上の該当する位置にPOIリストにおける該当する番号が付されたアイコンを地図表示画面に表示する。図27中の破線は、n次メッシュの境界(区分i(i=0,1,2,3の境界))を示す。図27において、区分0から番号1〜3のPOIが取得され、区分1から残りの番号4〜10のPOIが得られている。
【0188】
尚,POIリストの表示態様は、地図+アイコン+「次へ」の表示態様、地図+POIリスト+POIリストのPOI名称がクリックされると、地図画面の該当の位置にPOI詳細情報が吹き出しに表示されるような態様でも良い。また、この表示形態は、情報処理装置250に限らず、携帯端末装置においても適用可能である。
【0189】
例えば、POIのリストを表示せずに、地図を画面に表示するとともに、N件のPOIの地図上の該当位置に番号の付されたアイコンを表示し、アイコンをタッチパネルによりクリックしたり、アイコンの番号や「次へ」や「前へ」のリンクと携帯電話のキーとを対応付けたりすることにより、詳細情報を表示したり、後候補のリクエストや前候補のリクエストを行うようにしても良い。
【0190】
図26中の(32)〜(40)の処理は、図17中の(6)〜(13)の処理と同様であるが、後候補や前候補がリクエストされた場合に、図15中のステップS145,S152で、POI集合Riを検索する際に、中心メッシュや隣接メッシュのn次のパックコードのリストの作成、パックコードのリストをキーにしてPOI検索テーブル256の絞り込みとPOI情報テーブル252との結合を行う。
【0191】
図28に示すように、「次へ」がクリックされた場合は、後候補のPOIのリストが番号とともにURLがリンクされたPOI名称のリスト、後候補をリクエストするために後候補引き継ぎ値や前候補引き継ぎ値へのリンクが設定された「次へ」や「前へ」の文字、各POIに番号が付されたPOIリスト及び各POIが位置する地図画面上の該当する位置にPOIリストにおける番号が付されたアイコン及び前回POIリストに表示された各POIが位置する地図画面上の該当する位置にアイコンのみを表示する。図28では、区分1から番号11〜20のPOIが得られている。
【0192】
本実施形態によれば、第1実施形態と同様の効果がある上に、POIリストと地図とを共に表示するような形態においても実施可能となる。
【0193】
本実施形態では、緯度経度から前述の式(1),(2)を用いてメッシュ座標を算出する例を説明したが、メッシュコードからメッシュ座標を算出することも可能である。
【0194】
例えば、(2桁の1次メッシュの緯度部分−15)を6ビットの2進数値に変換し、2桁の1次メッシュのメッシュ番号の経度部分を6ビットの2進数値に変換し、1桁の2次メッシュのメッシュ番号の緯度部分を3ビットの2進数値に変換し、1桁の2次メッシュのメッシュ番号の経度部分を3ビットの2進数値に変換して、3次〜n次メッシュについては、1桁の10進数値を2ビットの2進数値に変換して、これら変換した2進数値を1次メッシュから昇順、且つ上位ビット側に結合して、パックコードを生成する。
【0195】
例えば、メッシュコードが5339460030000の場合、パックコードP1aP1bP2aP2bP3P4P5P6P7P8P9とすると、P1a=100110(2進)=38(10進)、P1b=100111(2進)=39(10進)、P2a=100(2進)=4(10進)、P2b=110(2進)=6(10進)、P3=00(2進)=0(10進)、P4=00(2進)=0(10進)、P5=11(2進)=3(10進)、P6=00(2進)=0(10進)、P7-=00(2進)=0(10進)、P8=00(2進)=0(10進)、P9=00(2進)=0(10進)となる。
【0196】
ここで、経度部分から15を引くのは、6ビットで択捉島まで含まれるようにするためであり、こうすることにより、1次メッシュの緯度部分P1a、経度部分P1bがそれぞれ6ビットであれば日本の東西南北端点である南鳥島、沖ノ島、与那国島、択捉島の各緯度経度をパックコードとして格納することができる。
【0197】
そして、パックコードを緯度部分と経度部分に分割して、緯度部分及び経度部分についてそれぞれ、1次メッシュから昇順に上位ビット側にして、2進数値に連結し、緯度コード及び経度コードのメッシュ座標を作成する。
【0198】
例えば、パックコードを(P1a)(P1b)(P2b)(P3)(P4)・・(P9)
=100100-100111-100-110-00-00-11-00-00-00-00
とすると、
緯度コードCa=1001101000010000となり、
経度コードCb=1001111100010000となる。
【0199】
このように、メッシュコードから緯度コード及び経度コードのメッシュ座標を算出することができる。尚、緯度経度の地点が位置するメッシュのメッシュコードから算出したメッシュ座標は、緯度経度から前述の式(1),(2)より算出したメッシュ座標と一致する。
【0200】
例えば、メッシュコードから変換した緯度コード及び経度コードのメッシュ座標は、図13に示すようになる。これにより、図14に示すように、隣接メッシュのメッシュコードから算出したメッシュ座標は、中心メッシュから隣接メッシュまでの離間するn次メッシュ数を緯度コード及び経度コードに、緯度方向及び経度方向に応じて加減算することにより得られる。
【0201】
そして、位置情報に基づいて、中心メッシュのメッシュコードを算出し、上述のように、中心メッシュのメッシュコードからメッシュ座標に変換し、中心メッシュのメッシュ座標から隣接メッシュのメッシュ座標を求め、メッシュ座標をパックコードに変換し、パックコードのリストを作成し、パックコードのリストをキーとしてPOI検索テーブルによる絞り込みとPOI情報テーブルとのテーブル結合を行って、POIリストを取得するようにしても良い。尚、メッシュコードは、携帯端末装置2や情報端末装置250から受信した緯度経度に基づいて、各地図メッシュを管理する図示しない地図DBを検索して取得しても良いし、緯度経度から算出しても良い。
【0202】
また、地図DBから取得したメッシュコードをメッシュ座標に変換して、メッシュ座標を緯度経度1,2とともにメッシュDBに格納しておき、携帯端末装置2や情報端末装置250から受信した緯度経度に基づいて、メッシュDBを検索して、中心メッシュのメッシュ座標を取得するようにしても良い。
【0203】
また、POI検索テーブルには、パックコードではなく、パックコードをメッシュコードに変換し、メッシュコードを格納しておき、中心メッシュや隣接メッシュのメッシュ座標をパックコードに変換し、パックコードをメッシュコードに変換して、メッシュコードのリストをキーにPOI検索テーブルによる絞り込みとPOI情報テーブルとのテーブル結合をするようにしても良い。
【0204】
また、中心メッシュのメッシュコードに、中心メッシュから隣接メッシュまでの離間するn次メッシュ数をn次メッシュ番号に加減算((n−1)次〜1次までの該当する緯度及び経度部分のメッシュ番号の桁上がりを計算し)して、隣接メッシュを抽出するようにしても良い。
【0205】
また、POI検索テーブルにメッシュ座標を格納して、中心メッシュや隣接メッシュのメッシュ座標のリストをキーにPOI検索テーブルによる絞り込みとPOI情報テーブルの結合をするようにしても良い。
【0206】
また、POI情報テーブルにメッシュコードを格納しておき、POI情報テーブルよりメッシュコードを取得し、メッシュコードよりパックコードに変換して、POI検索テーブルにパックコードをPOIIDとともに格納するようにしても良い。
【0207】
また、階層化されたメッシュ構造ではなく、全体地図を単一縮尺(n次メッシュ、例えば、10次メッシュに対応する縮尺)の複数のメッシュに分割したメッシュ構造においても、式(1),(2)の緯度,経度方向のi(i=1〜n)次メッシュの数を任意の1個の1次メッシュに相当する範囲の地図を単一縮尺の該当するメッシュで分割したときの、緯度、経度方向のそれぞれメッシュ数で置き換えることにより緯度コード、経度コードのメッシュ座標を算出することができる。また、当該単一縮尺の各メッシュに上述した階層化された該当するn次メッシュと同じメッシュコードを割り当てておくことにより、各メッシュのパックコード、並びに緯度コード及び経度コードのメッシュ座標を算出することができる。
【0208】
そして、POI情報テーブル12に記録された各POIの緯度・経度から上述したように、メッシュ座標を求めて、メッシュ座標からパックコードを求めて、POI検索テーブル14を作成する。リクエストされた緯度・経度から上述したように、中心メッシュのメッシュ座標を求め、中心メッシュのメッシュ座標から区分i(i=1,・・・)に属する隣接メッシュのメッシュ座標を求め、中心メッシュ又は隣接メッシュのメッシュ座標からパックコードを求めて、パックコードのリストを作成して、パックコードリストをキーにしてPOI検索テーブル14による絞り込みとPOI情報テーブル12とのテーブル結合を行って、同一区分i内のPOI集合Riを取得することにより、単一階層のメッシュ構造においても、階層化されたメッシュ構造の場合と同様にPOIリストを検索することができる。
【符号の説明】
【0209】
2 携帯端末装置
8 通信ネットワーク
250 情報端末装置
10,252 地域情報検索サーバ
12,254 POI情報テーブル
14,256 POI検索テーブル
【特許請求の範囲】
【請求項1】
地域情報検索サーバであって、
全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の段階の1次〜n次(nは2以上の整数)のメッシュに階層化されたメッシュ構造において、
各POIを一意に特定するPOI識別子を含みPOI情報を記憶するPOI情報データベースと、
前記POI識別子及び各POIが位置するメッシュを特定する情報を記憶するPOI検索データベースと、
リクエストされた位置情報が示すn次の中心メッシュからn次メッシュ数について緯度又は経度方向に1個以上離間する隣接メッシュの集合である区分iが順序付けされた複数の区分i(i=1〜j,jは2以上の整数)の集合からなる順序区分集合に属する各区分iに含まれるメッシュを前記メッシュ構造に基づいて抽出する隣接メッシュ計算部と、
前記POI検索データベースを検索して、前記区分iに属するメッシュ内に位置するPOI集合Riを取得するPOI集合検索部と、
前記POI集合検索部が取得した前記区分iに位置する前記POI集合Riを前記POI情報に基づいて、ソートするPOI集合ソート部と、
前記POI集合ソート部によりソートされた前記POI集合Riに所定の件数のPOIが存在するか否かを判定し、前記POI集合Riに所定の件数のPOIが存在する場合は、前記ソートされたPOI集合Riより、前記POI情報データベースに記憶された所定の件数の前記POI情報を取得するPOI取得部と、
区分i又は区分i+1のソートされたPOI集合Ri又はRi+1において、前記取得した所定の件数のPOIの後の所定の件数の先頭のPOIの区分i又はi+1、及び区分i又はi+1内の位置を示す後候補引き継ぎ値を前記取得した所定の件数のPOIとともに送信情報に設定する後候補引き継ぎ値設定部と、
を具備したことを特徴とする地域情報検索サーバ。
【請求項2】
地域情報検索サーバであって、
全体地図を単一縮尺の複数のメッシュに分割したメッシュ構造において、
各POIを一意に特定するPOI識別子を含みPOI情報を記憶するPOI情報データベースと、
前記POI識別子及び各POIが位置するメッシュを特定する情報を記憶するPOI検索データベースと、
リクエストされた位置情報が示す中心メッシュからメッシュ数について緯度又は経度方向に1個以上離間する隣接メッシュの集合である区分iが順序付けされた複数の区分i(i=1〜j,jは2以上の整数)の集合からなる順序区分集合に属する各区分iに含まれるメッシュを前記メッシュ構造に基づいて抽出する隣接メッシュ計算部と、
前記POI検索データベースを検索して、前記区分iに属するメッシュ内に位置するPOI集合Riを取得するPOI集合検索部と、
前記POI集合検索部が取得した前記区分iに位置する前記POI集合Riを前記POI情報に基づいて、ソートするPOI集合ソート部と、
前記POI集合ソート部によりソートされた前記POI集合Riに所定の件数のPOIが存在するか否かを判定し、前記POI集合Riに所定の件数のPOIが存在する場合は、前記ソートされたPOI集合Riより、前記POI情報データベースに記憶された所定の件数の前記POI情報を取得するPOI取得部と、
区分i又は区分i+1のソートされたPOI集合Ri又はRi+1において、前記取得した所定の件数のPOIの後の所定の件数の先頭のPOIの区分i又はi+1、及び区分i又はi+1内の位置を示す後候補引き継ぎ値を前記取得した所定の件数のPOIとともに送信情報に設定する後候補引き継ぎ値設定部と、
を具備したことを特徴とする地域情報検索サーバ。
【請求項3】
地域情報検索サーバであって、
全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の段階の1次〜n次(nは2以上の整数)のメッシュに階層化されたメッシュ構造において、
リクエストされた位置情報が示す緯度に基づく値に第1所定値を乗算した第1値に、(i−1)(i=2〜n,nは3以上の整数)が分割されるi(i=2〜n,nは3以上の整数)次メッシュの緯度方向の個数を2次〜n次まで乗算した第2値を乗算した10進整数値を2進数に変換した2進数値をメッシュ座標の緯度コードとして算出する緯度コード算出部と、
前記位置情報が示す経度から第2所定値を減算した第3値に、(i−1)(i=2〜n,nは3以上の整数)が分割されるi(i=2〜n,nは3以上の整数)次メッシュの経度方向の個数を2次〜n次まで乗算した第4値を乗算した10進整数値を2進数に変換した2進数値を前記メッシュ座標の経度コードとして算出する経度コード算出部と、
各POIを一意に特定するPOI識別子を含みPOI情報を記憶するPOI情報データベースと、
前記POI識別子及び各POIが位置するメッシュを特定する情報を記憶するPOI検索データベースと、
前記位置情報が示す地点が位置するn次中心メッシュからn次メッシュ数について緯度又は経度方向に1個以上離間する隣接メッシュの集合である区分iが順序付けされた複数の区分i(i=1〜j,jは2以上の整数)の集合からなる順序区分集合に属する各区分iに含まれるn次の隣接メッシュまでの緯度方向及び経度方向に離間するn次メッシュ数を前記緯度コード及び前記経度コードに加減算して、前記区分iに属する前記各隣接メッシュのメッシュ座標を算出する区分i内メッシュ座標算出部と、
前記区分iに属する隣接メッシュの前記メッシュ座標に基づいて、前記POI検索データベースを検索して、前記区分iに位置するPOI集合Riを取得するPOI集合検索部と、
前記POI集合検索部が取得した前記区分iに位置する前記POI集合Riを前記POI情報に基づいて、ソートするPOI集合ソート部と、
前記POI集合ソート部によりソートされた前記POI集合Riに所定の件数のPOIが存在するか否かを判定し、前記POI集合Riに所定の件数が存在する場合は、前記ソートされたPOI集合Riより、所定の件数のPOIを取得するPOI取得部と、
区分i又は区分i+1のソートされたPOI集合Ri又はRi+1において、前記取得した所定の件数のPOIの後の所定の件数の先頭のPOIの区分i又はi+1、及び区分i又はi+1内の位置を示す後候補引き継ぎ値及び前記取得した所定の件数のPOIを送信情報に設定する後候補引き継ぎ値設定部と,
を具備したことを特徴とする地域情報検索サーバ。
【請求項4】
地域情報検索サーバであって、
全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の段階に階層化され、各段階のメッシュには、緯度の増加とともに1ずつ増加する緯度部分の10進数及び経度の増加とともに1ずつ増加する経度部分の10進数の第1メッシュ番号、もしくは10進数のメッシュ番号であって、該10進数値を2進数で表現したとき、緯度に対応する所定ビットのビット値が緯度の増加とともに1ずつ増加し、経度に対応する所定ビットのビット値が経度の増加とともに1ずつ増加する第2メッシュ番号が付与され、i(i=1〜n−1,nは3以上の整数)次メッシュが緯度及び経度方向にそれぞれ2の冪乗個の(i+1)次メッシュに分割される階層的な分割に係る1〜n段階の1次〜n次メッシュの前記第1メッシュ番号もしくは前記第2メッシュ番号が1次メッシュを最上位桁として次数の昇順に順次連結されて、該n次メッシュを一意に特定するメッシュコードが付与されるメッシュ構造において、
リクエストされた位置情報が示す地点が位置するn次中心メッシュのメッシュコードの1次〜n次までの10進数の前記緯度部分及び前記経度部分のそれぞれの前記第1メッシュ番号に基づく10進数値その10進数値の最大値に応じたビット長の緯度部分及び経度部分の2進数値、もしくは前記第2メッシュ番号をその10進数値の最大値に応じたビット長の第1及び第2所定ビットからなる緯度部分及び経度部分の2進数値を、1次メッシュを最上位側に次数の昇順に連結したパックコードを1次〜n次までの各次数についての前記緯度部分及び前記経度部分の前記2進数値をそれぞれ次数の昇順に上位ビット側に順に連結して、緯度コード及び経度コードのメッシュ座標に変換するメッシュ座標変換部と、
各POIを一意に特定するPOI識別子を含みPOI情報を記憶するPOI情報データベースと、
前記POI識別子及び各POIが位置するメッシュを特定する情報を記憶するPOI検索データベースと、
前記中心メッシュから、該中心メッシュからn次メッシュ数について緯度又は経度方向に1個以上離間する隣接メッシュの集合である区分iが順序付けされた複数の区分i(i=1〜j,jは2以上の整数)の集合からなる順序区分集合に属する各区分iに含まれるn次の隣接メッシュまでの緯度方向及び経度方向に離間するn次メッシュ数を前記緯度コード及び前記経度コードに加減算して、前記区分iに属する前記各隣接メッシュのメッシュ座標を算出する区分i内メッシュ座標算出部と、
前記区分iに属する隣接メッシュの前記メッシュ座標に基づいて前記POI検索データベースを検索して、前記区分iに位置するPOI集合Riを取得するPOI集合検索部と、
前記POI集合検索部が取得した前記区分iに位置する前記POI集合Riを前記POI情報に基づいて、ソートするPOI集合ソート部と、
前記POI集合ソート部によりソートされた前記POI集合Riに所定の件数のPOIが存在するか否かを判定し、前記POI集合Riに所定の件数が存在する場合は、前記ソートされたPOI集合Riより、所定の件数のPOIを取得するPOI取得部と、
区分i又は区分i+1のソートされたPOI集合Ri又はRi+1において、前記取得した所定の件数のPOIの後の所定の件数の先頭のPOIの区分i又はi+1、及び区分i又はi+1内の位置を示す後候補引き継ぎ値及び前記取得した所定の件数のPOIを送信情報に設定する後候補引き継ぎ値設定部と、
を具備したことを特徴とする地域情報検索サーバ。
【請求項5】
前記POI取得部は、前記所定の件数のPOIが前記POI集合Riに存在しない場合は、前記区分i及び前記順序付けによる次の区分i+1についてソートされたPOI集合Ri及びRi+1に基づいて、所定の件数のPOIを検索し、区分i+1でも所定の件数のPOIが取得できない場合は、区分i+2・・・と所定の件数のPOIが取得されるまで区分の範囲を拡大することを特徴する請求項1〜4のいずれかに記載の地域情報検索サーバ。
【請求項6】
前記後候補引き継ぎ値が設定された後候補リクエストに基づいて、前記POIデータベースを検索して、前記後候補引き継ぎ値が示す区分iに位置するPOI集合Riを取得する後候補POI集合検索部と、前記POI集合検索部が取得した前記区分iに位置する前記POI集合Riを前記POI情報に基づいてソートする後候補POI集合ソート部と、前記後候補POI集合ソート部によりソートされた前記POI集合Riに前記引き継ぎ値が示す区分i内の位置が示すPOI以降に所定の件数のPOIが存在するか否かを判定し、前記POI集合Riに所定の件数が存在する場合は、前記ソートされたPOI集合Riより、所定の件数のPOIを取得し、所定の件数のPOIが前記POI集合Riに存在しない場合は、前記区分i及び前記順序付けによる次の区分i+1についてソートされたPOI集合Ri及びRi+1に基づいて、所定の件数のPOIを取得する後候補POI取得部を更に具備した請求項1〜5のいずれかに記載の地域情報検索サーバ。
【請求項7】
前記POI検索データベースに格納される各POIが位置するメッシュを特定する情報は、各POIが位置するメッシュの前記パックコードであり、前記POI集合Ri取得部は、前記隣接メッシュのメッシュ座標を前記パックコードに変換して、該パックコードに基づいて、前記POI検索データベースを検索して、前記区分iに位置する前記POI集合Riを取得することを特徴とする請求項4記載の地域情報検索サーバ。
【請求項8】
前記後候補のリクエストに基づき、前記後候補POI取得部が取得した前記後の所定の件数のPOIの前の前記所定の件数の最後のPOIの区分及び区分内の位置を示す前候補引き継ぎ値を送信情報に設定する前候補引き継ぎ値設定部を更に備えた請求項6記載の地域情報検索サーバ。
【請求項9】
地域情報検索方法であって、
位置情報を送信してPOI情報の送信をリクエストするステップと、
全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の段階の1次〜n次(nは2以上の整数)のメッシュに階層化されたメッシュ構造において、
前記位置情報が示す緯度に基づく値に第1所定値を乗算した第1値に、(i−1)(i=2〜n,nは3以上の整数)が分割されるi(i=2〜n,nは3以上の整数)次メッシュの緯度方向の個数を2次〜n次まで乗算した第2値を乗算した10進整数値を2進数に変換した2進数値をメッシュ座標の緯度コードとして算出するステップと、
前記位置情報が示す経度から第2所定値を減算した第3値に、(i−1)(i=2〜n,nは3以上の整数)が分割されるi(i=2〜n,nは3以上の整数)次メッシュの経度方向の個数を2次〜n次まで乗算した第4値を乗算した10進整数値を2進数に変換した2進数値を前記メッシュ座標の経度コードとして算出するステップと、
前記位置情報が示す地点が位置するn次中心メッシュからn次メッシュ数について緯度又は経度方向に1個以上離間する隣接メッシュの集合である区分iが順序付けされた複数の区分i(i=1〜j,jは2以上の整数)の集合からなる順序区分集合に属する各区分iに含まれるn次の隣接メッシュまでの緯度方向及び経度方向に離間するn次メッシュ数を前記緯度コード及び前記経度コードに加減算して、前記区分iに属する前記各隣接メッシュのメッシュ座標を算出するステップと、
前記区分iに属する隣接メッシュの前記メッシュ座標に基づいて、各POIを一意に特定するPOI識別子及び各POIが位置するメッシュを特定する情報を記憶するPOI検索データベースを検索して、前記区分iに位置するPOI集合Riを取得するステップと、
前記ステップで取得した前記区分iに位置する前記POI集合Riを前記POI情報に基づいて、ソートするステップと、
前記ステップによりソートされた前記POI集合Riに所定の件数のPOIが存在するか否かを判定し、前記POI集合Riに所定の件数が存在する場合は、前記ソートされたPOI集合Riより、所定の件数のPOIを取得し、所定の件数のPOIが前記POI集合Riにない場合は、前記区分i及び前記順序付けによる次の区分i+1についてソートされたPOI集合Ri及びRi+1に基づいて、所定の件数のPOIを取得するステップと、
区分i又は区分i+1のソートされたPOI集合Ri又はRi+1において、前記取得した所定の件数のPOIの後の所定の件数の先頭のPOIの区分i又はi+1、及び区分i又はi+1内の位置を示す後候補引き継ぎ値及び前記取得した所定の件数のPOIを送信情報に設定するステップと、
前記所定の件数のPOI及び前記後候補引き継ぎ値が設定された前記送信情報をレスポンスするステップと、
を具備したことを特徴とする地域情報検索方法。
【請求項10】
地域情報検索方法であって、
位置情報を送信してPOI情報の送信をリクエストするステップと、
全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の段階に階層化され、各段階のメッシュには、緯度の増加とともに1ずつ増加する緯度部分の10進数及び経度の増加とともに1ずつ増加する経度部分の10進数の第1メッシュ番号、もしくは10進数のメッシュ番号であって、該10進数値を2進数で表現したとき、緯度に対応する所定ビットのビット値が緯度の増加とともに1ずつ増加し、経度に対応する所定ビットのビット値が経度の増加とともに1ずつ増加する第2メッシュ番号が付与され、i(i=1〜n−1,nは3以上の整数)次メッシュが緯度及び経度方向にそれぞれ2の冪乗個の(i+1)次メッシュに分割される階層的な分割に係る1〜n段階の1次〜n次メッシュの前記第1メッシュ番号もしくは前記第2メッシュ番号が1次メッシュを最上位桁として次数の昇順に順次連結されて、該n次メッシュを一意に特定するメッシュコードが付与されるメッシュ構造において、
リクエストされた位置情報が示すn次中心メッシュのメッシュコードの1次〜n次までの10進数の前記緯度部分及び前記経度部分のそれぞれの前記第1メッシュ番号に基づく10進数値その10進数値の最大値に応じたビット長の緯度部分及び経度部分の2進数値、もしくは前記第2メッシュ番号をその10進数値の最大値に応じたビット長の第1及び第2所定ビットからなる緯度部分及び経度部分の2進数値を、1次メッシュを最上位側に次数の昇順に連結したパックコードを1次〜n次までの各次数についての前記緯度部分及び前記経度部分の前記2進数値をそれぞれ次数の昇順に上位ビット側に順に連結して、緯度コード及び経度コードのメッシュ座標に変換するステップと、
前記位置情報が示す地点が位置する中心メッシュからn次メッシュ数について緯度又は経度方向に1個以上離間する隣接メッシュの集合である区分iが順序付けされた複数の区分i(i=1〜j,jは2以上の整数)の集合からなる順序区分集合に属する各区分iに含まれるn次の隣接メッシュまでの緯度方向及び経度方向に離間するn次メッシュ数を前記緯度コード及び前記経度コードに加減算して、前記区分iに属する前記各隣接メッシュのメッシュ座標を算出するステップと、
前記区分iに属する隣接メッシュの前記メッシュ座標に基づいて、各POIを一意に特定するPOI識別子及び各POIが位置するメッシュを特定する情報を記憶するPOI検索データベースを検索して、前記区分iに位置するPOI集合Riを取得するステップと、
前記ステップで取得した前記区分iに位置する前記POI集合Riを前記POI情報に基づいて、ソートするステップと、
前記ステップによりソートされた前記POI集合Riに所定の件数のPOIが存在するか否かを判定し、前記POI集合Riに所定の件数が存在する場合は、前記ソートされたPOI集合Riより、所定の件数のPOIを取得し、所定の件数のPOIが前記POI集合Riにない場合は、前記区分i及び前記順序付けによる次の区分i+1についてソートされたPOI集合Ri及びRi+1に基づいて、所定の件数のPOIを取得するステップと、
区分i又は区分i+1のソートされたPOI集合Ri又はRi+1において、前記取得した所定の件数のPOIの後の所定の件数の先頭のPOIの区分i又はi+1、及び区分i又はi+1内の位置を示す後候補引き継ぎ値及び前記取得した所定の件数のPOIを送信情報に設定するステップと、
前記所定の件数のPOI及び前記後候補引き継ぎ値が設定された前記送信情報をレスポンスするステップと、
を具備したことを特徴とする地域情報検索方法。
【請求項1】
地域情報検索サーバであって、
全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の段階の1次〜n次(nは2以上の整数)のメッシュに階層化されたメッシュ構造において、
各POIを一意に特定するPOI識別子を含みPOI情報を記憶するPOI情報データベースと、
前記POI識別子及び各POIが位置するメッシュを特定する情報を記憶するPOI検索データベースと、
リクエストされた位置情報が示すn次の中心メッシュからn次メッシュ数について緯度又は経度方向に1個以上離間する隣接メッシュの集合である区分iが順序付けされた複数の区分i(i=1〜j,jは2以上の整数)の集合からなる順序区分集合に属する各区分iに含まれるメッシュを前記メッシュ構造に基づいて抽出する隣接メッシュ計算部と、
前記POI検索データベースを検索して、前記区分iに属するメッシュ内に位置するPOI集合Riを取得するPOI集合検索部と、
前記POI集合検索部が取得した前記区分iに位置する前記POI集合Riを前記POI情報に基づいて、ソートするPOI集合ソート部と、
前記POI集合ソート部によりソートされた前記POI集合Riに所定の件数のPOIが存在するか否かを判定し、前記POI集合Riに所定の件数のPOIが存在する場合は、前記ソートされたPOI集合Riより、前記POI情報データベースに記憶された所定の件数の前記POI情報を取得するPOI取得部と、
区分i又は区分i+1のソートされたPOI集合Ri又はRi+1において、前記取得した所定の件数のPOIの後の所定の件数の先頭のPOIの区分i又はi+1、及び区分i又はi+1内の位置を示す後候補引き継ぎ値を前記取得した所定の件数のPOIとともに送信情報に設定する後候補引き継ぎ値設定部と、
を具備したことを特徴とする地域情報検索サーバ。
【請求項2】
地域情報検索サーバであって、
全体地図を単一縮尺の複数のメッシュに分割したメッシュ構造において、
各POIを一意に特定するPOI識別子を含みPOI情報を記憶するPOI情報データベースと、
前記POI識別子及び各POIが位置するメッシュを特定する情報を記憶するPOI検索データベースと、
リクエストされた位置情報が示す中心メッシュからメッシュ数について緯度又は経度方向に1個以上離間する隣接メッシュの集合である区分iが順序付けされた複数の区分i(i=1〜j,jは2以上の整数)の集合からなる順序区分集合に属する各区分iに含まれるメッシュを前記メッシュ構造に基づいて抽出する隣接メッシュ計算部と、
前記POI検索データベースを検索して、前記区分iに属するメッシュ内に位置するPOI集合Riを取得するPOI集合検索部と、
前記POI集合検索部が取得した前記区分iに位置する前記POI集合Riを前記POI情報に基づいて、ソートするPOI集合ソート部と、
前記POI集合ソート部によりソートされた前記POI集合Riに所定の件数のPOIが存在するか否かを判定し、前記POI集合Riに所定の件数のPOIが存在する場合は、前記ソートされたPOI集合Riより、前記POI情報データベースに記憶された所定の件数の前記POI情報を取得するPOI取得部と、
区分i又は区分i+1のソートされたPOI集合Ri又はRi+1において、前記取得した所定の件数のPOIの後の所定の件数の先頭のPOIの区分i又はi+1、及び区分i又はi+1内の位置を示す後候補引き継ぎ値を前記取得した所定の件数のPOIとともに送信情報に設定する後候補引き継ぎ値設定部と、
を具備したことを特徴とする地域情報検索サーバ。
【請求項3】
地域情報検索サーバであって、
全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の段階の1次〜n次(nは2以上の整数)のメッシュに階層化されたメッシュ構造において、
リクエストされた位置情報が示す緯度に基づく値に第1所定値を乗算した第1値に、(i−1)(i=2〜n,nは3以上の整数)が分割されるi(i=2〜n,nは3以上の整数)次メッシュの緯度方向の個数を2次〜n次まで乗算した第2値を乗算した10進整数値を2進数に変換した2進数値をメッシュ座標の緯度コードとして算出する緯度コード算出部と、
前記位置情報が示す経度から第2所定値を減算した第3値に、(i−1)(i=2〜n,nは3以上の整数)が分割されるi(i=2〜n,nは3以上の整数)次メッシュの経度方向の個数を2次〜n次まで乗算した第4値を乗算した10進整数値を2進数に変換した2進数値を前記メッシュ座標の経度コードとして算出する経度コード算出部と、
各POIを一意に特定するPOI識別子を含みPOI情報を記憶するPOI情報データベースと、
前記POI識別子及び各POIが位置するメッシュを特定する情報を記憶するPOI検索データベースと、
前記位置情報が示す地点が位置するn次中心メッシュからn次メッシュ数について緯度又は経度方向に1個以上離間する隣接メッシュの集合である区分iが順序付けされた複数の区分i(i=1〜j,jは2以上の整数)の集合からなる順序区分集合に属する各区分iに含まれるn次の隣接メッシュまでの緯度方向及び経度方向に離間するn次メッシュ数を前記緯度コード及び前記経度コードに加減算して、前記区分iに属する前記各隣接メッシュのメッシュ座標を算出する区分i内メッシュ座標算出部と、
前記区分iに属する隣接メッシュの前記メッシュ座標に基づいて、前記POI検索データベースを検索して、前記区分iに位置するPOI集合Riを取得するPOI集合検索部と、
前記POI集合検索部が取得した前記区分iに位置する前記POI集合Riを前記POI情報に基づいて、ソートするPOI集合ソート部と、
前記POI集合ソート部によりソートされた前記POI集合Riに所定の件数のPOIが存在するか否かを判定し、前記POI集合Riに所定の件数が存在する場合は、前記ソートされたPOI集合Riより、所定の件数のPOIを取得するPOI取得部と、
区分i又は区分i+1のソートされたPOI集合Ri又はRi+1において、前記取得した所定の件数のPOIの後の所定の件数の先頭のPOIの区分i又はi+1、及び区分i又はi+1内の位置を示す後候補引き継ぎ値及び前記取得した所定の件数のPOIを送信情報に設定する後候補引き継ぎ値設定部と,
を具備したことを特徴とする地域情報検索サーバ。
【請求項4】
地域情報検索サーバであって、
全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の段階に階層化され、各段階のメッシュには、緯度の増加とともに1ずつ増加する緯度部分の10進数及び経度の増加とともに1ずつ増加する経度部分の10進数の第1メッシュ番号、もしくは10進数のメッシュ番号であって、該10進数値を2進数で表現したとき、緯度に対応する所定ビットのビット値が緯度の増加とともに1ずつ増加し、経度に対応する所定ビットのビット値が経度の増加とともに1ずつ増加する第2メッシュ番号が付与され、i(i=1〜n−1,nは3以上の整数)次メッシュが緯度及び経度方向にそれぞれ2の冪乗個の(i+1)次メッシュに分割される階層的な分割に係る1〜n段階の1次〜n次メッシュの前記第1メッシュ番号もしくは前記第2メッシュ番号が1次メッシュを最上位桁として次数の昇順に順次連結されて、該n次メッシュを一意に特定するメッシュコードが付与されるメッシュ構造において、
リクエストされた位置情報が示す地点が位置するn次中心メッシュのメッシュコードの1次〜n次までの10進数の前記緯度部分及び前記経度部分のそれぞれの前記第1メッシュ番号に基づく10進数値その10進数値の最大値に応じたビット長の緯度部分及び経度部分の2進数値、もしくは前記第2メッシュ番号をその10進数値の最大値に応じたビット長の第1及び第2所定ビットからなる緯度部分及び経度部分の2進数値を、1次メッシュを最上位側に次数の昇順に連結したパックコードを1次〜n次までの各次数についての前記緯度部分及び前記経度部分の前記2進数値をそれぞれ次数の昇順に上位ビット側に順に連結して、緯度コード及び経度コードのメッシュ座標に変換するメッシュ座標変換部と、
各POIを一意に特定するPOI識別子を含みPOI情報を記憶するPOI情報データベースと、
前記POI識別子及び各POIが位置するメッシュを特定する情報を記憶するPOI検索データベースと、
前記中心メッシュから、該中心メッシュからn次メッシュ数について緯度又は経度方向に1個以上離間する隣接メッシュの集合である区分iが順序付けされた複数の区分i(i=1〜j,jは2以上の整数)の集合からなる順序区分集合に属する各区分iに含まれるn次の隣接メッシュまでの緯度方向及び経度方向に離間するn次メッシュ数を前記緯度コード及び前記経度コードに加減算して、前記区分iに属する前記各隣接メッシュのメッシュ座標を算出する区分i内メッシュ座標算出部と、
前記区分iに属する隣接メッシュの前記メッシュ座標に基づいて前記POI検索データベースを検索して、前記区分iに位置するPOI集合Riを取得するPOI集合検索部と、
前記POI集合検索部が取得した前記区分iに位置する前記POI集合Riを前記POI情報に基づいて、ソートするPOI集合ソート部と、
前記POI集合ソート部によりソートされた前記POI集合Riに所定の件数のPOIが存在するか否かを判定し、前記POI集合Riに所定の件数が存在する場合は、前記ソートされたPOI集合Riより、所定の件数のPOIを取得するPOI取得部と、
区分i又は区分i+1のソートされたPOI集合Ri又はRi+1において、前記取得した所定の件数のPOIの後の所定の件数の先頭のPOIの区分i又はi+1、及び区分i又はi+1内の位置を示す後候補引き継ぎ値及び前記取得した所定の件数のPOIを送信情報に設定する後候補引き継ぎ値設定部と、
を具備したことを特徴とする地域情報検索サーバ。
【請求項5】
前記POI取得部は、前記所定の件数のPOIが前記POI集合Riに存在しない場合は、前記区分i及び前記順序付けによる次の区分i+1についてソートされたPOI集合Ri及びRi+1に基づいて、所定の件数のPOIを検索し、区分i+1でも所定の件数のPOIが取得できない場合は、区分i+2・・・と所定の件数のPOIが取得されるまで区分の範囲を拡大することを特徴する請求項1〜4のいずれかに記載の地域情報検索サーバ。
【請求項6】
前記後候補引き継ぎ値が設定された後候補リクエストに基づいて、前記POIデータベースを検索して、前記後候補引き継ぎ値が示す区分iに位置するPOI集合Riを取得する後候補POI集合検索部と、前記POI集合検索部が取得した前記区分iに位置する前記POI集合Riを前記POI情報に基づいてソートする後候補POI集合ソート部と、前記後候補POI集合ソート部によりソートされた前記POI集合Riに前記引き継ぎ値が示す区分i内の位置が示すPOI以降に所定の件数のPOIが存在するか否かを判定し、前記POI集合Riに所定の件数が存在する場合は、前記ソートされたPOI集合Riより、所定の件数のPOIを取得し、所定の件数のPOIが前記POI集合Riに存在しない場合は、前記区分i及び前記順序付けによる次の区分i+1についてソートされたPOI集合Ri及びRi+1に基づいて、所定の件数のPOIを取得する後候補POI取得部を更に具備した請求項1〜5のいずれかに記載の地域情報検索サーバ。
【請求項7】
前記POI検索データベースに格納される各POIが位置するメッシュを特定する情報は、各POIが位置するメッシュの前記パックコードであり、前記POI集合Ri取得部は、前記隣接メッシュのメッシュ座標を前記パックコードに変換して、該パックコードに基づいて、前記POI検索データベースを検索して、前記区分iに位置する前記POI集合Riを取得することを特徴とする請求項4記載の地域情報検索サーバ。
【請求項8】
前記後候補のリクエストに基づき、前記後候補POI取得部が取得した前記後の所定の件数のPOIの前の前記所定の件数の最後のPOIの区分及び区分内の位置を示す前候補引き継ぎ値を送信情報に設定する前候補引き継ぎ値設定部を更に備えた請求項6記載の地域情報検索サーバ。
【請求項9】
地域情報検索方法であって、
位置情報を送信してPOI情報の送信をリクエストするステップと、
全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の段階の1次〜n次(nは2以上の整数)のメッシュに階層化されたメッシュ構造において、
前記位置情報が示す緯度に基づく値に第1所定値を乗算した第1値に、(i−1)(i=2〜n,nは3以上の整数)が分割されるi(i=2〜n,nは3以上の整数)次メッシュの緯度方向の個数を2次〜n次まで乗算した第2値を乗算した10進整数値を2進数に変換した2進数値をメッシュ座標の緯度コードとして算出するステップと、
前記位置情報が示す経度から第2所定値を減算した第3値に、(i−1)(i=2〜n,nは3以上の整数)が分割されるi(i=2〜n,nは3以上の整数)次メッシュの経度方向の個数を2次〜n次まで乗算した第4値を乗算した10進整数値を2進数に変換した2進数値を前記メッシュ座標の経度コードとして算出するステップと、
前記位置情報が示す地点が位置するn次中心メッシュからn次メッシュ数について緯度又は経度方向に1個以上離間する隣接メッシュの集合である区分iが順序付けされた複数の区分i(i=1〜j,jは2以上の整数)の集合からなる順序区分集合に属する各区分iに含まれるn次の隣接メッシュまでの緯度方向及び経度方向に離間するn次メッシュ数を前記緯度コード及び前記経度コードに加減算して、前記区分iに属する前記各隣接メッシュのメッシュ座標を算出するステップと、
前記区分iに属する隣接メッシュの前記メッシュ座標に基づいて、各POIを一意に特定するPOI識別子及び各POIが位置するメッシュを特定する情報を記憶するPOI検索データベースを検索して、前記区分iに位置するPOI集合Riを取得するステップと、
前記ステップで取得した前記区分iに位置する前記POI集合Riを前記POI情報に基づいて、ソートするステップと、
前記ステップによりソートされた前記POI集合Riに所定の件数のPOIが存在するか否かを判定し、前記POI集合Riに所定の件数が存在する場合は、前記ソートされたPOI集合Riより、所定の件数のPOIを取得し、所定の件数のPOIが前記POI集合Riにない場合は、前記区分i及び前記順序付けによる次の区分i+1についてソートされたPOI集合Ri及びRi+1に基づいて、所定の件数のPOIを取得するステップと、
区分i又は区分i+1のソートされたPOI集合Ri又はRi+1において、前記取得した所定の件数のPOIの後の所定の件数の先頭のPOIの区分i又はi+1、及び区分i又はi+1内の位置を示す後候補引き継ぎ値及び前記取得した所定の件数のPOIを送信情報に設定するステップと、
前記所定の件数のPOI及び前記後候補引き継ぎ値が設定された前記送信情報をレスポンスするステップと、
を具備したことを特徴とする地域情報検索方法。
【請求項10】
地域情報検索方法であって、
位置情報を送信してPOI情報の送信をリクエストするステップと、
全体地図を複数のメッシュに分割して、縮尺に応じて当該メッシュのサイズが異なる複数の段階に階層化され、各段階のメッシュには、緯度の増加とともに1ずつ増加する緯度部分の10進数及び経度の増加とともに1ずつ増加する経度部分の10進数の第1メッシュ番号、もしくは10進数のメッシュ番号であって、該10進数値を2進数で表現したとき、緯度に対応する所定ビットのビット値が緯度の増加とともに1ずつ増加し、経度に対応する所定ビットのビット値が経度の増加とともに1ずつ増加する第2メッシュ番号が付与され、i(i=1〜n−1,nは3以上の整数)次メッシュが緯度及び経度方向にそれぞれ2の冪乗個の(i+1)次メッシュに分割される階層的な分割に係る1〜n段階の1次〜n次メッシュの前記第1メッシュ番号もしくは前記第2メッシュ番号が1次メッシュを最上位桁として次数の昇順に順次連結されて、該n次メッシュを一意に特定するメッシュコードが付与されるメッシュ構造において、
リクエストされた位置情報が示すn次中心メッシュのメッシュコードの1次〜n次までの10進数の前記緯度部分及び前記経度部分のそれぞれの前記第1メッシュ番号に基づく10進数値その10進数値の最大値に応じたビット長の緯度部分及び経度部分の2進数値、もしくは前記第2メッシュ番号をその10進数値の最大値に応じたビット長の第1及び第2所定ビットからなる緯度部分及び経度部分の2進数値を、1次メッシュを最上位側に次数の昇順に連結したパックコードを1次〜n次までの各次数についての前記緯度部分及び前記経度部分の前記2進数値をそれぞれ次数の昇順に上位ビット側に順に連結して、緯度コード及び経度コードのメッシュ座標に変換するステップと、
前記位置情報が示す地点が位置する中心メッシュからn次メッシュ数について緯度又は経度方向に1個以上離間する隣接メッシュの集合である区分iが順序付けされた複数の区分i(i=1〜j,jは2以上の整数)の集合からなる順序区分集合に属する各区分iに含まれるn次の隣接メッシュまでの緯度方向及び経度方向に離間するn次メッシュ数を前記緯度コード及び前記経度コードに加減算して、前記区分iに属する前記各隣接メッシュのメッシュ座標を算出するステップと、
前記区分iに属する隣接メッシュの前記メッシュ座標に基づいて、各POIを一意に特定するPOI識別子及び各POIが位置するメッシュを特定する情報を記憶するPOI検索データベースを検索して、前記区分iに位置するPOI集合Riを取得するステップと、
前記ステップで取得した前記区分iに位置する前記POI集合Riを前記POI情報に基づいて、ソートするステップと、
前記ステップによりソートされた前記POI集合Riに所定の件数のPOIが存在するか否かを判定し、前記POI集合Riに所定の件数が存在する場合は、前記ソートされたPOI集合Riより、所定の件数のPOIを取得し、所定の件数のPOIが前記POI集合Riにない場合は、前記区分i及び前記順序付けによる次の区分i+1についてソートされたPOI集合Ri及びRi+1に基づいて、所定の件数のPOIを取得するステップと、
区分i又は区分i+1のソートされたPOI集合Ri又はRi+1において、前記取得した所定の件数のPOIの後の所定の件数の先頭のPOIの区分i又はi+1、及び区分i又はi+1内の位置を示す後候補引き継ぎ値及び前記取得した所定の件数のPOIを送信情報に設定するステップと、
前記所定の件数のPOI及び前記後候補引き継ぎ値が設定された前記送信情報をレスポンスするステップと、
を具備したことを特徴とする地域情報検索方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【公開番号】特開2011−141682(P2011−141682A)
【公開日】平成23年7月21日(2011.7.21)
【国際特許分類】
【出願番号】特願2010−1461(P2010−1461)
【出願日】平成22年1月6日(2010.1.6)
【出願人】(500257300)ヤフー株式会社 (1,128)
【Fターム(参考)】
【公開日】平成23年7月21日(2011.7.21)
【国際特許分類】
【出願日】平成22年1月6日(2010.1.6)
【出願人】(500257300)ヤフー株式会社 (1,128)
【Fターム(参考)】
[ Back to top ]