(57)【要約】【課題】市町村合併等によって地名が変更された場合でも、ユーザが指定した日時に応じた適切な地名情報を提供することを目的とする。【解決手段】地名を示す地名情報と、前記地名が有効である期間を示す有効期間情報と、地名がカバーする領域を示す領域情報とを定義している地名データを具備する地名データベースを使用して地名を検索する地名検索装置であって、ユーザの指示により特定された位置情報と日時情報を取得する取得手段と、前記取得手段により取得された位置情報を包含している領域情報を具備し、且つ前記取得手段により取得された日時情報に対応する有効期間情報を具備する地名データを、前記地名データベースから検索する検索手段とを有する。【選択図】図５
2015201004.tif 000002
【特許請求の範囲】
【請求項１】
地名を示す地名情報と、前記地名が有効である期間を示す有効期間情報と、地名がカバーする領域を示す領域情報とを定義している地名データを具備する地名データベースを使用して地名を検索する情報処理装置であって、
ユーザの指示により特定された位置情報と日時情報を取得する取得手段と、
前記取得手段により取得された位置情報を包含している領域情報を具備し、且つ前記取得手段により取得された日時情報に対応する有効期間情報を具備する地名データを、前記地名データベースから検索する検索手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記検索された前記地名データが複数である場合、前記複数の地名データのそれぞれにおける前記領域情報の間で、包括関係を求めることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記検索手段により検索された地名データに含まれている地名情報を出力する出力手段を有することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記出力手段は、包括関係に応じて、その一部または全てを階層的に出力する手段であることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
地名を示す地名情報と、前記地名が有効である期間を示す有効期間情報と、地名がカバーする領域を示す領域情報とを定義している地名データを具備する地名データベースを使用して地名を検索する情報処理方法であって、
ユーザの指示により特定された位置情報と日時情報を取得する取得工程と、
前記取得工程で取得された位置情報を包含している領域情報を具備し、且つ前記取得工程で取得された日時情報に対応する有効期間情報を具備する地名データを、前記地名データベースから検索する検索工程と、
を有することを特徴とする情報処理方法。
【請求項６】
地名を示す地名情報と、前記地名が有効である期間を示す有効期間情報と、地名がカバーする領域を示す領域情報とを定義している地名データを具備する地名データベースを使用してユーザにより指定された地名に対応するデータを検索する情報処理装置であって、
前記地名データベースにおける複数の地名データのそれぞれにおける前記地名情報から、ユーザが指定した地名を検索し、検索された前記地名情報に対応する地名データのリストを作成するリスト作成手段と、
前記リストに含まれている地名データの有効期間情報と領域情報とをそれぞれ、データに対応する日時情報と位置情報と比較することで、ユーザが指定した前記地名に対応するデータを検索する検索手段と、
を有することを特徴とする情報処理装置。
【請求項７】
検索された前記地名情報が複数である場合、前記検索された複数の前記地名情報のそれぞれに対応する領域を包括する大きな地名があれば、最も多く包括されている領域を最小の領域情報とみなし、この最小の領域情報に対応する地名データのみを検索することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記検索手段により検索された位置情報を出力する出力手段を有することを特徴とする請求項６に記載の情報処理装置。
【請求項９】
地名データのグループに含まれている全ての地名データの座標矩形の総和を求め、上位から検索し、この検索に外れた場合、その後の処理を実行しないことを特徴とする請求項６に記載の情報処理装置。
【請求項１０】
複数の情報が地名入力欄に入力された場合、前記地名入力欄に入力された情報のそれぞれをキーとして検索した結果が全て包括関係にあれば、前記キーの全てを満たす最小の地名データの領域を、検索結果として選択することを特徴とする請求項６に記載の情報処理装置。
【請求項１１】
データの位置情報の精度に誤差があることによって、正確な地名を判定できなければ、前記位置情報に最も近い領域を持つ地名データを選択し、ユーザが指定した位置情報に該当する地名が見つからない旨のメッセージを表示することを特徴とする請求項６に記載の情報処理装置。
【請求項１２】
ユーザが指定した地名に基づいて、地名を具備する画像データを検索し、この検索された画像データから、前記ユーザが指定した地名に対応する位置を求め、この求めた位置に対応する画像データを検索することを特徴とする請求項６に記載の情報処理装置。
【請求項１３】
地名を示す地名情報と、前記地名が有効である期間を示す有効期間情報と、地名がカバーする領域を示す領域情報とを定義している地名データを具備する地名データベースを使用してデータを検索する情報処理方法であって、
前記地名データベースにおける複数の地名データのそれぞれにおける前記地名情報から、ユーザが指定した地名を検索し、検索された前記地名情報に対応する地名データのリストを作成するリスト作成工程と、
前記リストに含まれている地名データの有効期間情報と領域情報とをそれぞれ、データに対応する日時情報と位置情報と比較することで、ユーザが指定した前記地名に対応するデータを検索する検索工程と、
を有することを特徴とする情報処理方法。
【請求項１４】
請求項５に記載の情報処理方法または請求項１３に記載の情報処理方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、地名を検索する、または地名に対応するデータを検索する情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来、ＧＰＳなどによって得られる位置情報（緯度・経度の座標値）を活用して地名を特定する技術がある。この場合、位置情報と地名とが１対１の関係であると、例えば地名が変更される場合、位置情報に対して特定される地名も変更されることが望ましい場合がある。特許文献１には、将来、地名変更が予定されている地名については、変更後の新地名を表示することが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１４６３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、例えばユーザが名称変更前の地名を検索したい場合、特許文献１に記載のように新たな地名に置換されていると、変更前の地名を検索することができない場合がある。
【０００５】
本発明は、地名が変更された場合でも、ユーザの指示により特定された日時に応じた適切な地名情報、またはユーザが指定した地名に対応する適切なデータを検索することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の情報処理装置は、地名を示す地名情報と、前記地名が有効である期間を示す有効期間情報と、地名がカバーする領域を示す領域情報とを定義している地名データを具備する地名データベースを使用して地名を検索する地名検索装置であって、ユーザの指示により特定された位置情報と日時情報を取得する取得手段と、前記取得手段により取得された位置情報を包含している領域情報を具備し、且つ前記取得手段により取得された日時情報に対応する有効期間情報を具備する地名データを、前記地名データベースから検索する検索手段とを有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、地名が変更された場合でも、ユーザの指示により特定された日時に応じた適切な地名情報、またはユーザが指定した地名に対応する適切なデータを検索することができるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態１に係るＰＣ００１の概略構成を示すブロック図である。
【図２】ＰＣ００１を含むネットワークＮＷ１の概略構成を示すブロック図である。
【図３】地名データベース１００と地名データ１０１とを説明する図である。
【図４】地名データベース１００と地名データのグループ１０６とを示す図である。
【図５】位置情報に基づいて地名を検索するフローチャートである。
【図６】地名に基づいて位置情報を検索する動作を示すフローチャートである。
【図７】領域情報１０５の説明図である。
【図８】位置情報が領域情報１０５に含まれるかを調べるフローチャートである。
【図９】領域の包括関係を説明する図である。
【図１０】地名を表示するアプリケーション３００を示す図である。
【図１１】地名で画像を検索するアプリケーションの説明図である。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照して本発明の好適な実施形態を詳しく説明する。
【実施形態１】
【００１０】
図１は、本発明の実施形態１に係るＰＣ００１の概略構成を示すブロック図である。
【００１１】
ＣＰＵ００２は、ＰＣ００１の各部を制御する。ＣＰＵ００２は、必要に応じてメモリ００３にデータを一時的に格納し、また、バッファリング等を行う。外部記憶装置００４は、ＣＰＵ００２が読み出すアプリケーションプログラムやＯＳなどをインストールし、また各種ファイルなどを格納するディスク装置である。ネットワーク通信部００５は、ＰＣ００１をネットワークに接続して各種通信を行い、ネットワーク接続部００６は、ネットワーク通信部００５をネットワーク媒体に接続するための接続部である。ネットワーク通信部００５とネットワーク接続部００６とは、有線ＬＡＮ、無線ＬＡＮのうちの少なくとも一方に対応する。具体的には、対応ＬＡＮに応じて必要な機能及び形態をとる。
【００１２】
操作部００７は、キーボードやマウスなどからなり、表示部００８は、ＬＣＤなどからなる。
【００１３】
図２は、ＰＣ００１を含むネットワークＮＷ１の概略構成を示すブロック図である。
【００１４】
ＰＣ００１は、ローカルエリアネットワーク０１０に接続され、ＰＣ００１の外部におかれた情報にアクセスができる。データは、外部記憶装置００４に保存される他に、ローカルエリアネットワーク０１０に接続されたファイルサーバ０１１に保存される。また、ＰＣ００１がルーター０１２を経由してインターネット０１３に接続されている場合、データは、インターネット０１３上のサービス０１４から提供されてもよい。
【００１５】
次に、実施形態１のベースとなる地名データベース１００について説明する。
【００１６】
図３は、地名データベース１００と地名データ１０１とを説明する図である。
【００１７】
地名データベース１００は、複数の地名データ１０１を含み、検索可能なデータベースである。地名データベース１００は、外部記憶装置００４に保存される他に、ローカルエリアネットワーク０１０に接続されたファイルサーバ０１１に保存されていてもよい。また、ルーター０１２を経由してＰＣ００１がインターネット０１３に接続されている場合、データは、インターネット０１３のサービス０１４によって提供されるようにしてもよい。サービス０１４によってデータが提供される場合、地名データ１０１の情報の組み込みを前記サービスに合わせて最適化するようにしてもよい。
【００１８】
また地名データベース１００が、外部記憶装置００４に記憶されている場合、ＰＣ００１のユーザにより適宜地名データベース１００の内容を更新することができる。またファイルサーバ０１１、サービス０１４に地名データベース１００が記憶されている場合、それぞれの管理者が、適宜更新を行うことができる。
【００１９】
図３に示すように、地名データ１０１、１０１−１，１０１−２，１０１−３，１０１−４，１０１−５のそれぞれは、インデックス１０２と、地名情報１０３と、有効期間情報１０４と、領域情報１０５とを含む。
【００２０】
インデックス１０２は、異なる地名データの間で、同じ値が定義されないように、ユニークな値が定義され、この値で地名データ１０１の１つを一意に引き出すことが可能な地名データベース１００上の管理番号である。
【００２１】
地名情報１０３は、文字列で定義され、少なくとも１つの地名が定義される。本実施形態では、例えばユーザが文字入力した地名に該当する地名データを、地名データベース内で検索することができる。ただし、同じ地名であっても複数の呼称や複数の記載形式がある場合や、ユーザが入力する文字に軽微な誤りがある場合がある。そこで、例えば「虎ノ門」「虎の門」「とらのもん」など、同じ地名を示す複数の表記が存在する場合、区切り文字などで区切って複数の地名を列挙してもよい。複数の地名が列挙された場合、区切り文字で分離して、複数の地名を取出し、それぞれに対して処理する。検索時に、複数の地名のうちの１つの地名でも合致すれば、その地名の地名データ１０１が、検索条件に一致した（該当した）として処理する。逆に、データの地名を表示する際に、複数の地名の全ての候補を表示するようにしてもよく、また、複数の候補を代表して、それらのうちの先頭の地名を表示するようにしてもよい。また、複数の地名を高速で検索するために、地名情報１０３を区切り文字で分離した各地名とインデックス１０２とを関連づけて、地名をインデックス化して文字列順に配置したリストであるインデックスリストを別途作成するようにしてもよい。
【００２２】
有効期間情報１０４は、対応する地名が定義された日時である開始日時と、地名が変更された終了日時とが定義された情報である。
【００２３】
本実施形態では、特定の日時に対応する地名を検索するために、有効期間情報１０４を用いて地名を検索する。例えばユーザにより日時が指定された場合に、その日時を含む有効期間情報１０４に該当する地名データを検索することで、ユーザ指定の日時に対応する地名を検索することができる。
【００２４】
なお、開始日時が不明な場合には、「不明」とし、その開始日は日時判定の対象外とする。また例えば地名が変更されている場合に、過去の地名の終了日時が不明である場合がある。この場合、この過去の地名の地名データを作成した時点の日時が、仮の終了日時として自動的に定義されてもよい。ただしこの場合、当該過去の地名の実際の終了日時が仮の終了日時と異なる場合があり、ユーザが指定した日時に対して地名を検索すると、当該日時に本来は該当しないはずの当該過去の地名が検索されてしまう場合がある。そこで、仮の終了日時が定義された地名データに対して最新フラグをセットする。最新フラグをセットすることによって、終了日として仮の日時を定義した地名を、日時判定の対象外とすることができる。なお、終了日時に限らず、仮の開始日時を定義した場合も同様に処理される。
【００２５】
さらに、例えば地名データベース１００の管理者が終了日時を定義した場合、その終了日時を本来の終了日時として、上記最新フラグを解除し、当該地名データを日時判定の対象としてもよい。
【００２６】
前記以外の有効な日時が定義されている場合、ユーザが指定した日時が、その地名が使用された開始日よりも後であって、しかも、終了日より前である場合に、該当する（検索条件に一致する）と判断する。
【００２７】
領域情報１０５は、地名がカバーする領域を示す情報である。本実施形態では、特定の位置情報と領域情報１０５を比較することで、当該特定の位置情報に対応する地名を検索することができる。
【００２８】
図７は、領域情報１０５の説明図である。
【００２９】
地名データ１０１における領域情報１０５は、１または複数の矩形で構築される。例えば図７の例では、大小２つの矩形で構成されている。地図上の実際の領域は矩形ではないことが多いが、領域情報のデータ容量を抑えるために、本実施形態における領域情報１０５では、実際の領域を包含する矩形が定義されている。ただし１つの矩形であると実際の領域との誤差が大きくなることがあるため、複数の矩形を組み合わせて領域を定義している。
【００３０】
１つの矩形は、最小緯度、最小経度、最大緯度、最大経度の４つの値によって構成され、最小経度から最大経度までの幅を持ち、最小緯度から最大緯度までの高さを持つ。矩形の最小サイズは、点であり、この点は、最小経度と最大経度とが互いに同じ値であり、かつ、最小緯度と最大緯度とが互いに同じ値である。
【００３１】
領域情報１０５が有効であるかどうかを高速で判断するためには、次のようにする。つまり、複数の領域における各緯度、各経度のうちで最小緯度・最小経度・最大緯度・最大経度を予め求め、別に定義する。そして、ユーザが指定した位置と、前記複数の領域における最小緯度・最小経度・最大緯度・最大経度で囲まれる領域とを比較することによって、位置検索する。ユーザが指定した位置が、前記複数の領域における最小緯度・最小経度・最大緯度・最大経度に含まれている場合にのみ、領域情報を詳細に比較する。このようにすれば、ユーザが指定した位置が領域情報１０５に含まれるかどうかを大まかに判断することができるので、領域情報１０５が有効であるかどうかを高速で判断することができる。
【００３２】
領域情報１０５を矩形群で定義する代わりに、複数の領域のそれぞれを構成する複数の点を結んだ多角形として、領域情報を定義するようにしてもよい。また、該当する場合（検索条件に一致した場合）にビットを１とする多角形を描画し、該当部分を塗りつぶした２値のイメージデータとイメージデータの先頭のオフセット位置座標値で表現するようにしてもよい。また、地名データの定義と全て同じデータ構成をとらなくても、既存の該当する情報とを組み合わせて使ってもよい。なお、例えばベクタ形式等、任意の領域情報を使用するようにしてもよい。
【００３３】
次に、前記実施形態において、デジカメ写真等の画像データが持っている緯度、経度の位置情報に基づいて、その位置情報に対応する最新の地名を検索する動作について説明する。
【００３４】
図１０は、地名を表示するアプリケーション３００の説明図である。
【００３５】
アプリケーション３００は、これから表示しようとする対象である画像ファイルを指定するデータ選択部３０１と、選択された画像ファイルの情報を表示する情報表示部３０２とを含む。
【００３６】
また、アプリケーション３００は、コンピュータ上のアプリケーションプログラムだけでなく、ブラウザから呼び出され制御されるネットワーク上のサービスであってもよい。
【００３７】
ユーザが選択したデータ３０３が、データ選択部３０１において選択されると、アプリケーション３００は、データ３０３に埋め込まれている撮影地の位置情報３０５（ＥＸＩＦファイル内のタグ情報）を取り出す。そして、この取り出した位置情報３０５を緯度経度に変換する。位置情報３０５が存在する場合、地名データベース１００を座標（緯度経度）に基づいて検索し、該当する（検索された地名データにおける地名情報が有効である）地名データのインデックスリストを得る。
【００３８】
情報表示部３０２で、「地名検索する場合に撮影日を考慮」３０６がチェックされていると、アプリケーション３００は、データ３０３に埋め込まれている撮影日の情報３０４を取出す。なお、この撮影日の情報３０４もＥＸＩＦファイルのタグ情報として画像ファイル内に記憶されている。そして、先ほど求めた座標によるインデックスリストの地名データ１０１中の有効期間１０４が、撮影日の日時を含んでいるかを判定する。撮影日の日時３０４が有効期間１０４に含まれていなければ、つまり、有効期間内でなければ、その地名データ１０１をリストから除外する。
【００３９】
情報表示部３０２で、「現在の地名を表示」３０７がチェックされていると、撮影日をデータから取り出さずに、現在の日時を使用して検索する。
【００４０】
情報表示部３０２で、「最小範囲の地名を表示」３０８がチェックされていると、アプリケーション３００は、検索されたインデックスリストの座標による面積を比較し、面積が最小である地名データを選択し、その地名を表示する。情報表示部３０２で、「最小範囲の地名を表示」３０８がチェックされていなければ、インデックスリストの座標による面積でソートし、大きな面積から順番に該当データ（ヒットしたデータ）を表示する。例えば「日本」「東京都」「大田区」「下丸子」のように面積の大きい順に表示する。
【００４１】
ユーザが「地名検索する場合に撮影日を考慮」３０６をチェックした場合や、チェックを外した場合、ユーザに対して、撮影日に基づいて地名変更や領域変更のデータを絞り込む旨をダイアログなどに表示するようにしてもよい。また、ユーザが「最小範囲の地名を表示」３０８をチェックしているときや、チェックを外したときにも、ユーザに対して、最小範囲の地名を表示する場合には市町村のうちで最小の単位での地名が表示される旨を表示するようにしてもよい。
【００４２】
次に、前記実施形態において、データの位置情報を地名に変換して表示する動作を具体的に説明する。
【００４３】
図５は、位置情報に基づいて地名を検索する動作を示すフローチャートである。図５に示すフローチャートは、ＰＣ００１またはサービス０１４を提供するサーバにおいて実行される。ここでは、ＰＣ００１において処理が実行される例を示す。具体的には、図５に示すフローチャートの処理に対応するプログラムがＰＣ００１の不図示の補助記憶装置に記憶されている。そしてＣＰＵ００２がそのプログラムをメモリ００３上で実行することで、図５に示すフローチャートの処理が実現される。
【００４４】
前記実施形態において、データの位置情報（緯度、経度情報の全て）を地名に変換して表示する処理について、ＰＣ００１上またはインターネット０１３のサービス０１４上で動作するプログラムのフローチャートを用いて説明する。
【００４５】
６００でＣＰＵ００２は、ユーザによる操作部００７に対する指示に応じて、対象データを選択する。ＣＰＵ００２は、ユーザが選択した対象データから、６０１で、位置情報を取り出し、６０２で、作成日時を取出す。具体的には、対象データに対応するＥＸＩＦ形式の画像ファイルのタグ情報を参照する。地名データベース１００の地名データ１０１を全て見るために、６０３で、ＣＰＵ００２は、地名データベース１００のアクセスポイントを０にリワインドし（初期化し）、６０４で、地名データベース１００から、最初の地名データ１０１を取出す。
【００４６】
ＣＰＵ００２は、６０６で、地名データ１０１から、領域情報１０５を取出し、６０７では、６０１で取出した位置情報が、領域情報１０５に含まれるか否かを判定する。位置情報が領域情報１０５に含まれていなければ、前記ＣＰＵ００２は、６１２で、次の地名データ１０１を取得し、この取得した地名データ１０１が最終データではないと６０５で判断されると、６０４からの判定処理を繰り返す。
【００４７】
６０７では、６０１で取出した位置情報が地名データ１０１に含まれていると判断すると、ＣＰＵ００２は、６０８で、ユーザが「日時情報を考慮する」ように指示しているかを調べる。ユーザが日時情報を考慮するように指示していれば、６０９で、地名データ１０１から地名の有効期間１０４を取得する。前記ＣＰＵ００２は、６００で選択されたデータの日時情報が有効期間１０４に含まれるか否かを、６１０で判定し、含まれていれば、有効期間１０４に含まれている地名データ１０１が検索条件に一致するとしてリストに追加する（６１１）。
【００４８】
以上の６００〜６１２における処理により、例えばユーザが画像を選択し、また日時情報を考慮した地名検索を指示した場合、当該画像の撮影日時と撮影場所に対応する地名を含むリストが作成される。例えば現在の地名が変更される前に撮影された画像や、現在の地名とは異なる地名であった場所で撮影された画像である場合、その撮影当時の地名を含むリストが作成される。
【００４９】
また、上記リストでは、また領域の包含関係は考慮されていない。つまり、例えば「東京」と「日本」が地名として検索された場合、その包含関係は特定されていない。そこで６１３〜６２５における処理により、リスト内の領域の包含関係を特定する。
【００５０】
前記ＣＰＵ００２は、６０５で、地名データの調査が全て終了したと判断されると、６１３で、調査中に生成されたリストを順次調べるためにリストをリワインドして、次の地名データ１０１を調べる。
【００５１】
前記ＣＰＵ００２は、６１５で、リストから地名データ１０１を取得し、その領域情報１０５を得る（６１６）。前記ＣＰＵ００２は、前記得た領域情報１０５と、リスト中の他の地名データ１０１の領域情報１０５とを比較するために、リストの他の地名データ１０１について、６１９から６２２の処理を繰り返して実行する。前記ＣＰＵ００２は、６２３で、領域情報１０５を比較し、地名データ１の領域１０５が地名データ２の領域１０５に含まれる場合、６２４で、その包括関係を記憶する。前記ＣＰＵ００２は、６１４で、リストの走査が全て完了したと判断すると、全ての地名データの包括関係が判明する。
【００５２】
以上で、包括関係も判明した地名データ１０１のリストが作成される。前記ＣＰＵ００２は、地名として該当する（検索条件に一致する）地名データ１０１の地名情報１０３を表示する（６１８）。複数の地名データ１０１がある場合、前記ＣＰＵ００２は、前記包括関係において、より大きな領域から順次表示することによって、地名データ１０１を階層的に出力するようにしてもよい。または、前記ＣＰＵ００２は、複数の領域に包括されている最小の領域のみを地名として表示するようにしてもよい。
【００５３】
次に、前記実施形態において、上記図５における６０７の処理である、画像に対応する位置が地名データの領域情報が示す領域に含まれるか判定する処理について説明する。
【００５４】
図８は、対象位置（ユーザが指定した位置）が領域情報１０５に含まれるかを調べるフローチャートである。つまり、図８は、前記実施形態において座標を検索する方法を示す図であり、ＰＣ００１上またはインターネット０１３のサービス０１４上で動作するプログラムの動作を示すフローチャートである。
【００５５】
前記ＣＰＵ００２は、２００、２０１で、地名データ１０１から領域情報１０５を取得し、領域の矩形を順次見るために、２０２、２０３，２０９で、ループ制御を行う。前記ＣＰＵ００２は、２０４で、対象緯度（ユーザが指定した位置情報における緯度）が、領域の最小緯度と同じか大きいかを判定する。前記ＣＰＵ００２は、２０５で、最大緯度（対象位置における最大緯度）が、領域の最大緯度と同じか小さいかを判定する。前記ＣＰＵ００２は、２０６で、対象経度（ユーザが指定した位置情報における経度）が、領域の最小経度と同じか大きいかを判定する。前記ＣＰＵ００２は２０７で、対象経度が、領域の最大経度と同じか小さいかを判定する。前記ＣＰＵ００２は、２０４、２０５、２０６、２０７の全てを満たす場合に、該当するもの（検索条件と一致した）として、地名データ１０１のインデックス１０２をリストに登録する（２０８）。
【００５６】
次に、図５の６２３において、地名データ１が地名データ２に含まれるか否かを判定する処理について説明する。
【００５７】
図９は、領域の包括関係を求める方法を説明する図である。  ここでは、ビットのイメージで範囲を示し、それが重なる領域を見て、領域の包含関係を判断する。まず、領域情報１０５を、１または０の２値を持つビットマップイメージに展開する。生成するサイズは、地名データ１のｉｍａｇｅ５０１と地名データ２のｉｍａｇｅ５０３との和の最小オフセットから始まる最大サイズであるとし、１ピクセルが最低単位となるようにする。地名データ１のｉｍａｇｅ５０１の座標で、該当するビットの値を１とし、それ以外を０とする。
【００５８】
これと同様にして、地名データ２のｉｍａｇｅ５０３の座標に応じて、該当する部分を１とし、それ以外を０とする。Ｉｍａｇｅ５０４は、地名データ１のｉｍａｇｅ５０１とＩｍａｇｅ５０３との論理和（ＯＲ）である。ここで、地名データ１のｉｍａｇｅ５０１と地名データ２のＩｍａｇｅ５０３のそれぞれに対して、Ｉｍａｇｅ５０４との排他的論理和（ＸＯＲ）を求める。排他的論理和により求められた領域においては、比較対象の２つの領域のうち、どちらか一方のみに該当する領域が１となる。
【００５９】
本実施形態では、比較対象の２つの画像の論理和を求める。そして、その論理和の結果と、比較対象の２つの画像のそれぞれについて、排他的論理和を求める。そして、その排他的論理和の結果が全て０であるか判定することで、比較対象の２つの画像の論理和を求めることができる。
【００６０】
例えばＩｍａｇｅ５０１がＩｍａｇｅ５０３に含まれている場合、それらの論理和であるＩｍａｇｅ５０４はＩｍａｇｅ５０３と等価となる。そのため、Ｉｍａｇｅ５０３とＩｍａｇｅ５０４の排他的論理和により得られた画像では全てが０になる。またＩｍａｇｅ５０１とＩｍａｇｅ５０４の排他的論理和により得られた画像では、全てが０になることはない。
【００６１】
地名データ１のｉｍａｇｅ５０１とＩｍａｇｅ５０４との排他的論理和（ＸＯＲ）が、Ｉｍａｇｅ５０５である。Ｉｍａｇｅ５０５は全てが０でないため、Ｉｍａｇｅ５０１がＩｍａｇｅ５０４を含むとは判定されない。
【００６２】
一方、Ｉｍａｇｅ５０３とＩｍａｇｅ５０４の排他的論理和の結果が、Ｉｍａｇｅ５０６である。Ｉｍａｇｅ５０６は全てが０であるため、Ｉｍａｇｅ５０３がＩｍａｇｅ５０１を包含すると判定することができる。
【００６３】
なお、上記２つの判定結果の両方とも全て０になれば、地名データ１のｉｍａｇｅ５０１が地名データ２のｉｍａｇｅ５０３と同じ領域を持っていると考えられる。
【００６４】
また、例えば比較対象の２つの画像の一部のみが重なる場合でも、上記判定によれば、排他的論理和の結果が、全て０にならない。よって、この場合でも、２つの画像が包含関係にないことを判定することができる。
【００６５】
例えば市町村合併などで一部の地域が他の市に併合されるなどで、重複部分が異なる領域になっていることが考えられる。この場合も、例えば画像に対応する位置が上記一部の地域であった場合に、併合前後の２つの地名を、包括関係がないデータとして抽出することができる。
【００６６】
包括関係を迅速に調べる場合、該当する可能性があるのかないのかを大きく判断するために、次のようにする。つまり、領域情報１０５の全体の最小緯度、最小経度、最大緯度、最大経度を求める。地名データ毎に全体を比較し、地名データの領域が、含まれる場合にのみ、その地名データの領域を候補として詳細に確認するようにしてもよい。逆に、大きな単位は小さな単位を全て包括する領域情報を持っている可能性があるので、地名データ１０１の領域情報１０５のみを使用して、包括されているかを検索し、座標だけで判断できる場合は、このようにしてもよい。
【００６７】
次に、地名に基づいて画像を検索するアプリケーション３００Ａについて説明する。
【００６８】
図１１は、地名に基づいて画像を検索するアプリケーション３００Ａの説明図である。
【００６９】
アプリケーション３００Ａは、画像検索方法を指示する画像検索部３１１と、検索された画像を表示する画像表示部３１０とによって構成されている。アプリケーション３００Ａは、コンピュータ上のアプリケーションプログラムだけでなく、ブラウザから呼び出され制御されるネットワーク上のサービスでもよい。
【００７０】
地名に基づいて検索する場合、「撮影地で検索」チェックボックス３１２をチェックし、これを有効にし、「地名で検索」ラジオボタン３１３を選択し、地名入力欄３１４に地名を入力する。「検索」ボタン３１７がクリックされると、検索が開始される。地名に基づいて検索すると、図３、図４に示す地名情報１０３に記載されている通りである。
【００７１】
「地名検索する場合に撮影日を考慮」チェックボックス３１５がチェックされていると、アプリケーション３００Ａは、地名データ１０１に埋め込まれている撮影日の情報を取出す。そして、先ほど求めた座標によるインデックスのリスト中の地名データ１０１の有効期間情報１０４に、撮影日の日時が含まれているかを判定する。撮影日の日時が含まれていなければ、その地名データ１０１のインデックス１０２をリストから除外する。
【００７２】
複数の地名データ１０１が検出された場合、各地名データ１０１の領域情報１０５と、データ（撮影地）の位置情報とを比較し、該当する場合には、それぞれの地名データ１０１の持つリストに、地名を登録する。
【００７３】
複数の地名データ１０１のリストを絞り込む方法としては、地名データＡの座標情報が地名データＢの座標情報を含む場合、「小さい範囲のみ表示」チェックボックス３１６をチェックしたか否によって、動作が異なる。「小さい範囲のみ表示」チェックボックス３１６がチェックされれば、地名データＡを対象外とし、地名データＢのみを抽出する。逆に、「小さい範囲のみ表示」チェックボックス３１６がチェックされていなければ、地名データＡを抽出する。
【００７４】
詳細に全てを表示するように設定されている場合、地名データＡと地名データＢとの内容を区切って、データを同時に表示してもよい。地名データＡ、Ｂの双方に存在しているデータは、地名データＡを表示せずに、地名データＢのみを表示するようにしてもよい。
【００７５】
ユーザが「地名検索で撮影日を考慮」のチェックボックス３１５を、チェックした時やチェックをはずした時には、ユーザに対して、撮影日に応じて、地名変更や領域変更のデータを絞り込む旨を、ダイアログなどによって表示してもよい。また、ユーザが「小さい範囲のみ表示」のチェックボックス３１６を、チェックした時やチェックを外した時にも、ユーザに対して、「小さい範囲のみ表示」にした場合、同一名称の市町村のうちで最小の単位での該当データのみが表示される旨を表示してもよい。
【実施形態２】
【００７６】
本発明の実施形態２は、ユーザが地名を指定し、この指定した地名に対応するデータを位置情報と日時情報から検索する実施形態である。
【００７７】
実施形態１のように、複数の位置情報がデータに含まれている場合に、該当するデータを地名で検索し、表示する方法について説明する。
【００７８】
図６は、地名に基づいて位置情報を検索する動作を示すフローチャートである。図６に示すフローチャートは、ＰＣ００１またはサービス０１４を提供するサーバにおいて実行される。ここでは、ＰＣ００１において処理が実行される例を示す。具体的には、図６に示すフローチャートの処理に対応するプログラムがＰＣ００１の不図示の補助記憶装置に記憶されている。そしてＣＰＵ００２がそのプログラムをメモリ００３上で実行することで、図６に示すフローチャートの処理が実現される。
【００７９】
７００で、ＣＰＵ００２は、ユーザによる指示に応じて地名を入力する。最初にユーザが入力した地名を含む地名データ１０１を、全ての地名データ１０１から検索し、該当する（検索条件に一致する）地名データ１０１をリストアップする。ＣＰＵ００２は、７０１で、地名データベース１００をリワインドし、７０３で、地名データベース１００から最初の地名データ１０１を取得する。前記ＣＰＵ００２は、７０４で、地名データ１０１から地名情報を取得する。地名情報１０３を区切り文字で分離することによって、複数の地名を定義することが可能である。
【００８０】
よって、前記ＣＰＵ００２は、７０５で、ユーザが入力した地名と地名情報１０３とが一致するかを判断し、一致しなければ、７０６で、次の地名情報１０３の候補を取出し、判断を繰り返す。地名が一致すれば、前記ＣＰＵ００２は、一致した地名データをリストに登録し（７０７）、次の地名データ１０１で同じ処理を繰り返す（７０８）。全部の地名情報１０３を走査し、一致しなければ、前記ＣＰＵ００２は、次の地名データ１０３で同じ処理を繰り返す。
【００８１】
以上の７００〜７０８の処理により、地名データベースにおいてユーザが入力した地名に該当する地名データがリストアップされる。
【００８２】
全部の地名データ１０３について走査が終わると、ユーザが入力した地名に対応する地名データ１０３のリストが生成される。地名データ１０１が複数あれば、７０９からの処理において、全ての地名データ１０１に対応するデータをリストアップするために、前記ＣＰＵ００２は、地名データ分の繰り返し処理を実行する。前記ＣＰＵ００２は、まず７１１で、７０７の処理により作成されたリスト内に含まれる地名データ１０３を、地名データベース１００から取り出す。前記ＣＰＵ００２は、７１２で取得された地名データ１０１から領域情報１０５を取出す。対象データ群がこの地名データ１０１の領域情報１０５に該当するかを調べるために、前記ＣＰＵ００２は、７１５からの処理で、対象データの全てを走査する処理を実行する。
【００８３】
前記ＣＰＵ００２は、７１７で、対象データの位置情報を取出し、７１８で、対象データ（ユーザが入力したデータ）の位置情報が地名データ１０１の領域情報１０５に含まれるかを判断する。含まれていれば、前記ＣＰＵ００２は、７１９で、ユーザが日時情報を考慮するように指示しているかを調べ、ユーザが日時情報を考慮するように指示していれば、７２１で、対象データの日時情報を取得する。前記ＣＰＵ００２は、７２０で、地名データ１０１から地名の有効期間１０４を取得し、７２２で、対象データの日時情報が有効期間１０４に含まれるかを判定し、含まれていれば、該当データをリストに追加する。
【００８４】
以上の７０９〜７２４の処理により、ユーザが入力した地名と、その地名が用いられた時期に対応するデータをリストアップすることができる。例えば対象データが画像の場合、ユーザが入力した地名において、その地名が用いられていた時期に撮影された画像をリストアップすることができる。
【００８５】
以上で、ユーザが指定した地名に対応する地名データ１０１のリストと、それに該当するデータのリストとが作成されるので、前記ＣＰＵ００２は、該当するデータのリストの項目を結果として表示する（７１４）。
【００８６】
複数の地名データ１０１があれば、地名データ毎に分離して該当データを表示するようにしてもよい。または、前述の方法で地名データ１０１の包括関係を調べ、包括関係について、より大きな領域に対応するデータから順次表示するようにしてもよい。または、より小さな領域に該当するデータから順次表示してもよいし、複数の領域に包括されている最小の領域である地名データ１０１で検索されたデータのみを表示するようにしてもよい。
【００８７】
次に、地名データのグループ１０６について説明する。
【００８８】
図４は、地名データベース１００と地名データのグループ１０６とを示す図である。
【００８９】
前記実施形態では、領域データに基づいて、包括関係を判断するが、ここでは、地名データ１０１を拡張した地名データのグループ１０６を定義する。
【００９０】
地名は、市町村のように、ある領域を包括する、より大きな単位があり、それにも独自の地名が付けられ、または同じ地名が付けられている。例えば、図４において、「さいたま」１０３は、「浦和区」１０１−６、「中央区」１０１−８、「大宮区」１０１−７、「岩槻」１０１−９を包含している。または、千葉県、千葉市等のように、同じ地名（千葉）が付けられている。
【００９１】
図３の１０１に示すように、その領域情報１０５には、これら全ての領域が定義されている。しかし、図４に示す地名データのグループ１０６においては、「さいたま」に関して、領域を示す代わりに、地名データ１０１−６、１０１−７、１０１−８、１０１−９のインデックス番号１０２が定義されている。地名データのグループ１０６を定義する場合、地名データベース１００において、インデックス１０２の値で、領域を区別したり、互いに異なるデータベースとして定義するようにしてもよい。また、地名データのグループ１０６自体を、国・県・市・町・村のように階層化し、より大きな範囲を示す上位から検索することによって、領域における検索を高速化させてもよい。
【００９２】
地名情報１０３や有効期間情報１０４による検索時には、地名データ１０１と同じ処理で検索できる。
【００９３】
領域による検索時には、地名データ１０１の領域情報１０５による検索を終えた後に、そのインデックス１０２を含む地名データのグループ１０６を検索することによって、階層のより上位の地名を検索する。
【００９４】
逆に、地名データのグループ１０６に含まれている全ての地名データ１０１の座標矩形の総和を求め、上位から検索し、この検索に外れた場合、その後の処理を実行しないようにしてもよい。
このようにすることによって、外れた対象については吟味する必要がないので、外れた対象についても対象を１つ１つ吟味する場合よりも、高速に対象に辿り着く。
【００９５】
地名データのグループ１０６における有効期間情報１０４は、グループ内の全てのインデックスが示すデータの有効期間情報１０４を満たすものとする。もし、有効期間情報１０４が異なる要素があれば、有効期間情報１０４が異なる複数の地名データのグループ１０６を生成する。
【００９６】
地名データのグループ１０６を用いるか用いないかは、地名データ１０１の数などに応じて決めるようにしてもよい。また、地名データのグループ１０６で包括関係を判定する方法と、地名データ１０１の領域で包括関係を判定する方法との両方を同時に定義するようにしてもよい。複数のグループをまとめた大グループを想定するようにしてもよい。
【００９７】
なお、前記実施形態において、複数の該当する地名を絞り込む手段として、図１１に示す地名入力欄３１４に加えて、「撮影日で検索」３１８で定義された日時を、地名のための日時情報として、追加して絞り込む。この場合、地名データ１０１のリストを作成する際に、日時と有効期間とを比較し、該当しないものを除外する。
【００９８】
前記実施形態において、図１１に示す地名を検索するために、「東京都 大田区 下丸子」のように複数の情報が、地名入力欄３１４に入力された場合、それぞれのキー（東京都 、大田区、下丸子）で検索した結果が全て包括関係にあることが判明したとする。この場合、「東京都」かつ「大田区」かつ「下丸子」の３つの条件を満たす最小の地名データの領域を、検索結果として選択する。
【００９９】
データの位置情報の精度に誤差があれば、正確な地名を判定できない場合がある。この場合、例えば、位置情報が、地名がない海上を示している場合、最も近い領域を持つ地名データを選択する。そして、ユーザが指定した位置情報に該当する地名が見つからない旨のメッセージを表示する。
【０１００】
ユーザが指定した地名に基づいて、地名を具備する画像データを検索し、この検索された画像データから、ユーザが指定した地名に対応する位置を求め、この求めた位置に対応する画像データを検索するようにしてもよい。この場合、例えば、ユーザが昔の地名等を指定し、この指定された昔の地名に対応する画像データ、例えば写真を検索する。そして、この検索された写真に付与されている位置情報（つまり、ユーザが指定した地名に対応する位置情報）を求め、この求めた位置情報に対応する写真を多数検索するようにしてもよい。
【０１０１】
以上の図５で示した処理では、ユーザがデータを選択することで、そのデータに対応する位置情報、日時情報を取得し、その取得された位置、日時に対応する地名を検索する例を示した。しかしこれに限らず、ユーザが位置や日時を例えば表示画面上で直接指定し、その指定により取得された位置情報、日時情報に対応する地名を検索する場合であってもよい。
【０１０２】
また、図５に示した処理では、データに対応する位置、日時に対応する地名を出力する例を示した。しかしこれに限らず、地名と、さらにその地名の有効期間を示す情報（テキスト等）を出力する場合であってもよい。
【０１０３】
さらに、図６に示した処理では、ユーザが入力した地名について、その地名に対応する位置、時期に該当するデータを検索する例を示した。しかしこれに限らず、その地名に対応する位置、時期を特定し、その位置、時期を示す情報（例えばテキスト）を出力する場合であってもよい。
【０１０４】
なお、前記実施形態の機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵまたはＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記憶媒体から読み出されたプログラムコード自体が前記実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成する。
【０１０５】
プログラムコードを供給するための記憶媒体として、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【０１０６】
また、本発明は、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでない。つまり、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOperating System（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１０７】
さらに、本発明は、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後の場合も含まれる。つまり、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１０８】
また、本実施形態の機能を実現するためのプログラムコードを、１つのコンピュータ（ＣＰＵ、ＭＰＵ）で実行する場合であってもよいし、複数のコンピュータが協働することによって実行する場合であってもよい。さらに、プログラムコードをコンピュータが実行する場合であってもよく、プログラムコードの機能を実現するための回路等のハードウェアを設けてもよい。またはプログラムコードの一部をハードウェアで実現し、残りの部分をコンピュータが実行する場合であってもよい。
【符号の説明】
【０１０９】
１００…地名データベース、
１０１…地名データ、
１０３…地名情報、
１０４…有効期間情報、
１０５…領域情報。
【図１】
2015201004.tif 000003
【図２】
2015201004.tif 000004
【図３】
2015201004.tif 000005
【図４】
2015201004.tif 000006
【図５】
2015201004.tif 000007
【図６】
2015201004.tif 000008
【図７】
2015201004.tif 000009
【図８】
2015201004.tif 000010
【図１１】
2015201004.tif 000011
【図９】
2015201004.tif 000012
【図１０】
2015201004.tif 000013