(57)【特許請求の範囲】
【請求項１】
住所情報を入力する住所情報入力部と、
上記住所情報入力部により入力された住所情報を、行政区画で階層的に構成された木構造に変換し、当該木構造の各枝の少なくとも最下層のノードに緯度・経度情報を関連付けて成る住所木情報を生成し、当該生成した上記住所木情報を高速アクセス可能なメモリに記憶させる住所木情報生成部とを備えたことを特徴とする住所／緯度経度変換装置。
【請求項２】
上記住所木情報における各階層の各ノードに割り当てられる各名称と、当該各名称から上記住所木情報における各階層の各ノードへのポインタとから成るインデックス情報を生成し、当該生成したインデックス情報を上記メモリに記憶させるインデックス情報生成部を更に備えたことを特徴とする請求項１に記載の住所／緯度経度変換装置。
【請求項３】
上記インデックス情報は、上記各階層の各ノードに割り当てられる複数の名称を、１文字単位で階層的に構成された木構造で表し、当該木構造の各枝の最下層のノードに上記ポインタを関連付けて成る情報であることを特徴とする請求項２に記載の住所／緯度経度変換装置。
【請求項４】
住所情報を緯度・経度情報に変換するジオコーディング部と、当該ジオコーディング部により変換された緯度・経度情報を用いて所定のアプリケーション処理を行うアプリケーション部とを備えて構成された地理情報システムであって、
上記ジオコーディング部は、
上記住所情報を入力する住所情報入力部と、
上記住所情報入力部により入力された住所情報を、行政区画で階層的に構成された木構造に変換し、当該木構造の各枝の少なくとも最下層のノードに緯度・経度情報を関連付けて成る住所木情報を生成し、当該生成した上記住所木情報を高速アクセス可能なメモリに記憶させる住所木情報生成部とを備え、
上記アプリケーション部は、
上記所定のアプリケーション処理を行う要求が発生されたときに、上記メモリに記憶された上記住所木情報を参照し、上記要求の内容に応じて処理対象とされたデータに含まれる住所情報に対応する上記緯度・経度情報を取得する緯度・経度情報取得部と、
上記緯度・経度情報取得部により取得された上記緯度・経度情報を用いて上記所定のアプリケーション処理を行う処理実行部とを備えたことを特徴とする地理情報システム。
【請求項５】
上記ジオコーディング部は、上記住所木情報における各階層の各ノードに割り当てられる各名称と、当該各名称から上記住所木情報における各階層の各ノードへのポインタとから成るインデックス情報を生成し、当該生成したインデックス情報を上記メモリに記憶させるインデックス情報生成部を更に備え、
上記緯度・経度情報取得部は、上記処理対象とされたデータに含まれる住所情報をもとに上記インデックス情報を参照することにより、上記インデックス情報により示されるポインタに従って上記住所木情報における該当ノードを探索し、当該該当ノードからさらに上記住所木情報を下位層に向かって探索していき、上記緯度・経度情報が関連付けられたノードから上記緯度・経度情報を取得することを特徴とする請求項４に記載の地理情報システム。
【請求項６】
上記インデックス情報は、上記各階層の各ノードに割り当てられる複数の名称を、１文字単位で階層的に構成された木構造で表し、当該木構造の各枝の最下層のノードに上記ポインタを関連付けて成る情報であることを特徴とする請求項５に記載の地理情報システム。
【請求項７】
上記住所情報入力部、上記住所木情報生成部および上記インデックス情報生成部の処理は、上記アプリケーション部が起動されたときに実行することを特徴とする請求項５または６に記載の地理情報システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、住所／緯度経度変換装置およびこれを用いた地理情報システムに関し、特に、住所の地理的情報を緯度・経度の座標情報に変換する住所／緯度経度変換装置、および、当該住所／緯度経度変換装置により変換された緯度・経度情報を用いて所定の処理を行う地理情報システムに用いて好適なものである。
【背景技術】
【０００２】
従来、住所や地名などの地理的情報を緯度・経度の座標情報に変換する技術が知られている（例えば、特許文献１，２参照）。このような技術はジオコーディングと呼ばれ、地図を使用するアプリケーションにおいて広く活用されている。例えば、ジオコーディングと、ＧＩＳ（Geographic Information System）と呼ばれる地理的可視化技術とを組み合せたシステムが提供されている。この種のシステムによれば、例えば、データベース内で住所に紐付けられた値またはその集計結果などを、当該住所から変換された緯度・経度に基づいて、地図上の該当位置にビジュアル的に分かりやすく表示することが可能である。
【０００３】
なお、上記特許文献１に記載の情報処理装置では、住所録情報と、その住所情報に基づいて取得した緯度・経度情報とを対応付けて変換テーブルとして記憶し、当該変換テーブルを利用することにより、住所情報の県・市・町・丁目名から当該位置の緯度・経度を求める。そして、緯度・経度情報により地図画像情報を検索して住所録情報と合成し、住所録表示または現在位置表示を行うようになされている。
【０００４】
この特許文献１に記載の情報処理装置は、「県・市・町・丁目」という階層構造に応じて、住所に対応する地点の緯度・経度情報を変換テーブルに記憶している。よって、入力される住所が、「神奈川県横浜市戸塚区吉田町１丁目」のように完全なものではなく、「神奈川県横浜市」、「神奈川県横浜市戸塚区」のように上位階層のみであっても、それぞれの住所に対応する地点の座標を求めることができるようになっている。
【０００５】
また、特許文献２に記載の座標付与システムでは、住所と位置座標とを対応づけた緯度・経度データベースを用意し、入力された住所に対応する位置座標を、このデータベースから検索する。その検索の際、行政区画に基づき各階層ごとに位置座標の絞り込みを行うことにより、入力された住所情報の不備を階層ごとに補いながら検索することができ、検索精度を向上させることができるようになされている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平８−５０５９４号公報
【特許文献２】特開２００３−２２３４５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
近年、上記のようなジオコーディングを行うＡＰＩ（Application Programming Interface）が提供されており、当該ＡＰＩを利用して住所情報を緯度・経度情報に変換することが可能となっている。しかしながら、従来のＡＰＩを用いたジオコーディングでは、変換速度が数件〜数十件／秒と非常に遅く、処理に多くの時間がかかるという問題があった。そのため、緯度・経度情報を利用して何らかの処理を行うアプリケーションからの要求があったときにジオコーディングにより住所情報から緯度・経度情報の変換を行うようにすると、要求を出してから結果が表示されるまでのレスポンス時間が長くなってしまう。
【０００８】
例えば、業務システムなどから蓄積された膨大な件数のデータを有するデータベースを対象として、ユーザにより指定されたエリア内に住所を持つデータを可視化ソフトによりビジュアル的に可視化して表示しようとする場合、指定エリア内のデータを可視化して表示するのに非常に多くの時間がかかってしまう。指定エリア内に多数件のデータが含まれていると、ジオコーディングにより住所情報を緯度・経度情報に変換するのに数十分から数時間もの時間がかかることがあり、極めて操作性の悪いものになってしまう。
【０００９】
従来、このようなレスポンスの悪さを回避するために、データベース内に蓄積されている全住所情報をジオコーディングによってあらかじめ緯度・経度情報に変換して中間テーブルを生成し、アプリケーションからの要求があったときは、この中間テーブルを参照して要求に応じた処理を行うようにしていた。
【００１０】
しかしながら、この場合、データベースに新規データが登録されたり既存データが更新されたりしたときには、ジオコーディングを起動して中間テーブルをメンテナンスする必要が生じる。従来は、このメンテナンスをバッチ処理により行っていた。そのため、中間テーブルのメンテナンスが完了するまでは、データベースに新規登録されたデータや住所が変更されたデータをアプリケーションから位置参照して利用することができないという問題があった。
【００１１】
本発明は、このような問題を解決するために成されたものであり、バッチ処理によりメンテナンスが必要な中間テーブルを生成することなく、緯度・経度情報を利用するアプリケーションからの要求に応じてリアルタイムに、住所情報から緯度・経度情報への変換を高速に行うことができるようにすることを目的とする。
【課題を解決するための手段】
【００１２】
上記した課題を解決するために、本発明の住所／緯度経度変換装置では、入力された住所情報を、行政区画で階層的に構成された木構造に変換し、当該木構造の各枝の少なくとも最下層のノードに緯度・経度情報を関連付けて成る住所木情報を生成し、当該生成した住所木情報を高速アクセス可能なメモリに記憶させるようにしている。
【発明の効果】
【００１３】
上記のように構成した本発明によれば、住所情報を緯度・経度情報に変換するために使用する情報が、各住所と各緯度・経度とをそれぞれ１：１に対応させて成る従来の変換テーブルの形式ではなく、木構造の形式で用意され、高速アクセス可能なメモリに記憶される。そのため、実際に住所情報を緯度・経度情報に変換する際には、木構造の住所木情報を親ノードから子ノードへと順に辿るようにして検索範囲を狭めながら検索を進めていくことで、与えられた住所情報からそれに対応する緯度・経度情報を効率的に探索することができる。しかも、本発明では、住所木情報が高速アクセス可能なメモリに記憶されるので、ディスクに記憶された変換テーブルにアクセスしていた従来技術に比べて、高速に検索を行うことができる。
【００１４】
以上により、緯度・経度情報を利用するアプリケーションからの要求があったときに住所情報から緯度・経度情報の変換を行っても、極めて短時間で変換を完了させることができるため、格段に良好なレスポンス性能を実現することができる。これにより、従来のようにレスポンスの悪さを回避するために中間テーブルをあらかじめ生成しておく必要がなくなる。このように、本発明によれば、バッチ処理によりメンテナンスが必要な中間テーブルを生成することなく、緯度・経度情報を利用するアプリケーションからの要求に応じてリアルタイムに、住所情報から緯度・経度情報への変換を高速に行うことができる。
【図面の簡単な説明】
【００１５】
【図１】本実施形態による住所／緯度経度変換装置を実施した地理情報システムの構成例を示す図である。
【図２】本実施形態の住所木情報生成部により生成される住所木情報の一部を模式的に示す図である。
【図３】本実施形態のインデックス情報生成部により生成されるインデックス情報の一部を模式的に示す図である。
【図４】本実施形態のインデックス情報と住所木情報とをポインタによって関連付けた状態を模式的に示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の一実施形態を図面に基づいて説明する。図１は、本実施形態による住所／緯度経度変換装置を実施した地理情報システムの構成例を示す図である。図１に示すように、本実施形態の地理情報システム１００は、ジオコーディング部１０およびアプリケーション部２０を備えて構成されている。
【００１７】
ジオコーディング部１０は、住所情報を緯度・経度情報に変換するものであり、例えばサーバ装置によって構成される。ジオコーディング部１０は、住所情報入力部１１、住所木情報生成部１２、インデックス情報生成部１３およびメモリ１４を備えている。住所情報入力部１１、住所木情報生成部１２およびインデックス情報生成部１３の各機能ブロックは、例えば、サーバ装置にインストールされたソフトウェアによって構成される。
【００１８】
すなわち、上記各機能ブロック１１〜１３は、実際にはコンピュータのＣＰＵ、ＲＡＭ、ＲＯＭなどを備えて構成され、ＲＡＭやＲＯＭ、ハードディスクまたは半導体メモリ等の記録媒体に記憶されたプログラムが動作することによって実現される。このジオコーディング部１０を有するサーバ装置は、本発明の住所／緯度経度変換装置に相当する。なお、上記各機能ブロック１１〜１３の一部または全部は、ハードウェアまたはＤＳＰ（Digital Signal Processor）によって構成することも可能である。
【００１９】
アプリケーション部２０は、ジオコーディング部１０により住所情報から変換された緯度・経度情報を用いて所定のアプリケーション処理を行うものであり、例えばサーバ装置によって構成される。アプリケーション部２０は、要求取得部２１、緯度・経度情報取得部２２、処理実行部２３、処理結果送信部２４およびデータベース２５を備えている。
【００２０】
要求取得部２１、緯度・経度情報取得部２２、処理実行部２３および処理結果送信部２４の各機能ブロックは、例えば、サーバ装置にインストールされたソフトウェアによって構成される。このソフトウェアは、例えばＧＩＳによる可視化ソフトであり、データベース２５内で住所に紐付けられて記憶された値またはその集計結果などを、当該住所から変換された緯度・経度に基づいて、地図上の該当位置にビジュアル的に分かりやすく表示することが可能である。
【００２１】
上記各機能ブロック２１〜２４は、実際にはコンピュータのＣＰＵ、ＲＡＭ、ＲＯＭなどを備えて構成され、ＲＡＭやＲＯＭ、ハードディスクまたは半導体メモリ等の記録媒体に記憶されたプログラムが動作することによって実現される。
なお、上記各機能ブロック２１〜２４の一部または全部は、ハードウェアまたはＤＳＰによって構成することも可能である。
【００２２】
ジオコーディング部１０とアプリケーション部２０との間（両サーバ装置との間）は、例えばＬＡＮにより接続されており、相互にデータの送受信を行うことができるようになっている。また、アプリケーション部２０は、インターネット等の通信ネットワーク３００を介してユーザ端末３０と接続可能に構成されている。ユーザ端末３０は、ユーザ操作に応じてアプリケーション部２０に要求を送信することにより、アプリケーション部２０に所望の処理を実行させ、その処理結果を得て画面表示させることが可能である。
【００２３】
なお、図１ではジオコーディング部１０とアプリケーション部２０とをそれぞれ別のサーバ装置が備える構成について説明したが、この形態に限定されない。例えば、１つのサーバ装置がジオコーディング部１０とアプリケーション部２０とを備える構成としてもよい。また、ジオコーディング部１０の住所情報入力部１１、住所木情報生成部１２およびインデックス情報生成部１３の機能と、アプリケーション部２０の緯度・経度情報取得部２２および処理実行部２３の機能とをユーザ端末３０にインストールしたソフトウェアによって実現するようにしてもよい。
【００２４】
ジオコーディング部１０の住所情報入力部１１は、外部から住所情報２００を入力する。この住所情報２００は、アプリケーション部２０のデータベース２５に記憶されている住所情報と同じものである。例えば、データベース２５から出力したＣＳＶファイルによって住所情報２００を構成することが可能である。あるいは、住所情報入力部１１は、アプリケーション部２０のデータベース２５から住所情報を直接入力するように構成してもよい。この場合に住所情報２００を入力する形態は、ＣＳＶファイルの形態に限られるものではない。
【００２５】
データベース２５は、項目として少なくとも住所を有するデータを１つ以上蓄積したものである。住所以外の項目は任意である。データベース２５に記憶されるデータは、顧客の名刺データ、企業の売上データ、各種統計データなど、その種類と内容は問わない。このようなデータベース２５から出力して住所情報２００を構成する場合、少なくとも住所の項目の情報があればよく、その他の項目の情報は不要である。なお、図１の例では、アプリケーション部２０が内部にデータベース２５を備える構成を示しているが、データベース２５はアプリケーション部２０（サーバ装置）の外部にあってもよい。
【００２６】
住所木情報生成部１２は、住所情報入力部１１により入力された住所情報２００を、行政区画で階層的に構成された木構造に変換し、当該木構造の各枝の少なくとも最下層のノードに緯度・経度情報を関連付けて成る住所木情報を生成する。そして、当該生成した住所木情報を、高速アクセス可能なメモリ１４に記憶させる。高速アクセス可能なメモリ１４は、主記憶装置または一次記憶装置と呼ばれるもので、補助記憶装置または二次記憶装置と呼ばれるディスク型の記憶装置に比べて高速（１０万倍程度）にデータの読み書きを行うことが可能である。
【００２７】
図２は、住所木情報生成部１２により生成される住所木情報の一部を模式的に示す図である。図２に示すように、第１階層（最上層）をルートノードとし、第２階層を都道府県、第３階層を区または市町村、第４階層を市町村または区、第５階層以下を住居表示（街区符号および住居番号）または地番といった形態で、住所情報２００を行政区画で階層的に構成された木構造に変換する。そして、当該木構造の各枝の最下層のノード（住居表示または地番に関するノード）に対し、その位置に対応する緯度・経度情報を関連付けて住所木情報を構成する。
【００２８】
最下層のノードに対して緯度・経度情報を関連付けることにより、「東京都渋谷区桜丘町２０番１号」のように完全な住所に対して緯度・経度を関連付けることができる。これに対し、上位階層のノードに対して緯度・経度情報を更に関連付けるようにしてもよい。このようにすれば、「東京都渋谷区」、「東京都渋谷区桜丘町」のように不完全な住所に対しても緯度・経度を関連付けることができる。これにより、データベース２５に完全な住所が記憶されていない場合であっても、不完全な住所情報をその位置に対応する緯度・経度情報に変換することができるようになる。
【００２９】
インデックス情報生成部１３は、住所木情報生成部１２により生成された住所木情報における各階層の各ノードに割り当てられる各名称（都道府県、市区町村の名称、街区符号、住居番号、地番など）と、当該各名称から住所木情報における各階層の各ノードへのポインタとから成るインデックス情報を生成する。そして、当該生成したインデックス情報をメモリ１４に記憶させる。
【００３０】
なお、住所情報２００は、「東京都渋谷区・・・」のように住所木情報の第１階層から始まる完全な住所である場合だけでなく、「渋谷区・・・」のように住所木情報の第２階層から始まる不完全な住所である場合もある。どちらの住所であっても、住所木情報生成部１２により生成された住所木情報を検索可能とする必要がある。また、２０万語近い名称の単語を扱う必要があるため、省メモリで高速な単語検索を行えるようにするのが好ましい。
【００３１】
そこで、本実施形態では、インデックス情報生成部１３は、図３に示すような木構造のインデックス情報を生成する。図３は、インデックス情報生成部１３により生成されるインデックス情報の一部を模式的に示す図である。図３に示すように、インデックス情報は、住所木情報における各階層の各ノードに割り当てられる複数の名称を、１文字単位で階層的に構成された木構造で表し、当該木構造の各枝の最下層のノードに対して、そのノードから住所木情報における対応するノードへのポインタを関連付けて構成した情報となっている。
【００３２】
例えば、「東京都」という名称と「東郷町」という名称は、何れも「東」で始まる単語である。この場合、第１階層をルートノードとし、第２階層を「東」とし、第３階層を「京」および「郷」とし、第４階層を「都」および「町」とする木構造のインデックス情報を生成する。２つの単語に共通する「東」の文字は、第１階層で共有化されている。そして、「東京都」に関する最下層である「都」のノードと、「東郷町」に関する最下層である「町」のノードとに対し、住所木情報における対応するノードへのポインタを関連付けて記憶している。
【００３３】
同様に、「渋谷区」という名称と「渋川町」という名称は、何れも「渋」で始まる単語である。この場合、第１階層をルートノードとし、第２階層を「渋」とし、第３階層を「谷」および「川」とし、第４階層を「区」および「町」とする木構造のインデックス情報を生成する。２つの単語に共通する「渋」の文字は、第１階層で共有化されている。そして、「渋谷区」に関する最下層である「区」のノードと、「渋川町」に関する最下層である「町」のノードとに対し、住所木情報における対応するノードへのポインタを関連付けて記憶している。
【００３４】
図４は、インデックス情報生成部１３により生成されたインデックス情報と、住所木情報生成部１２により生成された住所木情報とをポインタによって関連付けた状態を模式的に示す図である。図４に示すように、インデックス情報における「東京都」という名称は、住所木情報の第１階層にある「東京都」のノードに対してポインタによって関連付けられている。また、インデックス情報における「渋谷区」という名称は、住所木情報の第２階層にある「渋谷区」のノードに対してポインタによって関連付けられている。
【００３５】
上記住所情報入力部１１、住所木情報生成部１２およびインデックス情報生成部１３の処理は、例えば、アプリケーション部２０が起動されたときに実行する。アプリケーション部２０が起動されたときとは、一例として、ユーザ端末３０からアプリケーション部２０へのログインが行われたときである。例えば、ユーザ端末３０からアプリケーション部２０へのログインが行われると、データベース２５は住所情報を出力し、住所情報入力部１１はこれを住所情報２００として入力する。そして、この住所情報２００をもとに、住所木情報生成部１２が住所木情報を生成してメモリ１４に記憶させるとともに、インデックス情報生成部１３がインデックス情報を生成してメモリ１４に記憶させる。
【００３６】
このように、アプリケーション部２０が起動されるたびに、データベース２５から出力された住所情報をもとに住所木情報およびインデックス情報を生成してメモリ１４に記憶させることにより、メモリ１４に記憶される住所木情報およびインデックス情報を、データベース２５に記憶されている最新の住所情報に合わせた最新の情報とすることができる。すなわち、バッチ処理によるメンテナンスを行うことなく、データベース２５内の住所情報に対応した住所木情報およびインデックス情報を生成することができる。
【００３７】
アプリケーション部２０の要求取得部２１は、ユーザ端末３０から所望のアプリケーション処理の実行要求を取得する。ここで取得する要求は、データベース２５に記憶されたデータを用いて何らかの地理情報処理を行い、その結果をビジュアル的に可視化して表示することを要求するものである。
【００３８】
地理情報処理とは、例えば、データベース２５に記憶された顧客の名刺データに含まれる住所情報をもとに、住所に対応する地図上の位置にピンマークを表示させるという処理が一例として挙げられる。また、データベース２５に記憶された顧客の名刺データに含まれる住所情報をもとに、地図上で指定されたエリア別に、各エリア内に住所を持つ名刺の数（顧客の数）を集計してグラフ表示するという処理であってもよい。なお、ここに挙げた処理は単なる一例であり、これに限定されない。
【００３９】
住所情報を持たない地図データを用いて以上のような地理情報処理を行うためには、住所情報に対応する地図上の位置を座標情報によって特定することが必要である。しかし、データベース２５には、座標情報としての緯度・経度情報は記憶されておらず、位置を特定するために使える情報は住所情報しか記憶されていない。本実施形態では、要求取得部２１がユーザ端末３０から処理要求を受信したときに、データベース２５の住所情報を緯度・経度情報にリアルタイムに変換するようにしている。
【００４０】
すなわち、緯度・経度情報取得部２２は、要求取得部２１がユーザ端末３０から処理要求を受信したとき、つまり、データベース２５に記憶されているデータに対して住所情報を利用したアプリケーション処理（地理情報処理）を行う要求が発生されたときに、ジオコーディング部１０のメモリ１４に記憶された住所木情報を参照することにより、処理要求の内容に応じて処理対象とされたデータベース２５内のデータに含まれる住所情報に対応する緯度・経度情報を取得する。
【００４１】
具体的には、緯度・経度情報取得部２２は、まず、処理対象とされたデータベース２５内のデータに含まれる住所情報をもとにインデックス情報を参照することにより、インデックス情報により示されるポインタに従って住所木情報における該当ノードを探索する。例えば、処理対象とされたデータの住所情報が「東京都渋谷区・・・」である場合は、当該住所情報の先頭の単語である「東京都」についてのインデックス情報により示されるポインタに従って、住所木情報の第２階層における「東京都」のノードが探索される。また、処理対象とされたデータの住所情報が「渋谷区・・・」である場合は、当該住所情報の先頭の単語である「渋谷区」についてのインデックス情報により示されるポインタに従って、住所木情報の第３階層における「渋谷区」のノードが探索される。
【００４２】
続いて、緯度・経度情報取得部２２は、処理対象とされたデータベース２５内のデータに含まれる住所情報をもとに、インデックス情報に基づいて探索されたノードから下位層に向かって順次探索を行い、緯度・経度情報が関連付けられた最下層のノードから緯度・経度情報を取得する。例えば、インデックス情報に基づいて第２階層の「東京都」のノードが探索された場合、緯度・経度情報取得部２２は、処理対象とされた住所情報「東京都渋谷区桜丘町２０番１号」をもとに、住所木情報における第３階層の「渋谷区」、第４階層の「桜丘町」、第５階層の「２０番」、第６階層の「１号」を順に辿っていき、第６階層の「１号」のノードに関連付けられた緯度・経度情報を取得する。
【００４３】
このように、本実施形態では、住所木情報およびインデックス情報の両方を木構造で構成し、同じ名称のノード間をポインタによって関連付ける構成としている。これにより、住所情報をもとに木構造のインデックス情報を参照し、インデックス情報により示されるポインタに従って住所木情報における該当ノードを効率的に探索することができる。さらに、探索した該当ノードから木構造の住所木情報を下位層に向かってさらに探索していくことにより、最下層のノードに関連付けられた緯度・経度情報を効率的に取得することができる。しかも、これらの処理を、メモリ１４に対する高速なアクセスのもとで実行することができる。そのため、従来のような中間テーブルが存在しなくても、データベース２５内に記憶された住所情報を緯度・経度情報に短時間で変換することができる。
【００４４】
処理実行部２３は、緯度・経度情報取得部２２により取得された緯度・経度情報を用いて所定のアプリケーション処理を行う。ここで行うアプリケーション処理とは、要求取得部２１が受信した処理要求に対応した地理情報処理である。処理結果送信部２４は、処理実行部２３により実行された処理の結果をユーザ端末３０に送信し、ユーザ端末３０の画面上に表示させる。そして、メモリ１４に記憶させた住所木情報を、アプリケーション部２０におけるアプリケーション処理の実行時に、住所情報を緯度・経度情報に変換するための参照用データとして用いるようにしている。
【００４５】
以上詳しく説明したように、本実施形態では、ジオコーディング部１０に入力された住所情報２００を、行政区画で階層的に構成された木構造に変換し、当該木構造の各枝の少なくとも最下層のノードに緯度・経度情報を関連付けて成る住所木情報を生成し、当該生成した住所木情報を高速アクセス可能なメモリ１４に記憶させるようにしている。
【００４６】
このように構成した本実施形態によれば、住所情報を緯度・経度情報に変換するために使用する情報が、各住所と各緯度・経度とをそれぞれ１：１に対応させて成る従来の変換テーブルの形式ではなく、木構造の形式で生成される。そのため、実際に住所情報を緯度・経度情報に変換する際には、木構造の住所木情報を親ノードから子ノードへと順に辿るようにして検索範囲を狭めながら検索を進めていくことで、与えられた住所情報からそれに対応する緯度・経度情報を効率的に探索することができる。しかも、本実施形態では、住所木情報が高速アクセス可能なメモリ１４に記憶されるので、ディスクに記憶された変換テーブルにアクセスしていた従来技術に比べて、高速に検索を行うことができる。
【００４７】
また、本実施形態では、ジオコーディング部１０に入力された住所情報２００をもとに、住所木情報における各階層の各ノードに割り当てられる名称と、当該名称から住所木情報における各階層の各ノードへのポインタとから成るインデックス情報を生成し、当該生成したインデックス情報をメモリ１４に記憶させるようにしている。これにより、実際に住所情報を緯度・経度情報に変換する際には、処理対象とされたデータベース２５内の住所情報をもとにまずはインデックス情報を参照し、インデックス情報により示されるポインタに従って、住所木情報において探索を行う際の始めのノードを効率的に見つけることができる。
【００４８】
以上により、緯度・経度情報を利用するアプリケーション部２０からの要求があったときに、データベース２５内の住所情報から緯度・経度情報の変換をリアルタイムに行っても、極めて短時間で変換を完了させることができるため、格段に良好なレスポンス性能を実現することができる。これにより、従来のようにレスポンスの悪さを回避するために中間テーブルをあらかじめ生成しておく必要がなくなる。このように、本実施形態によれば、バッチ処理によりメンテナンスが必要な中間テーブルを生成することなく、緯度・経度情報を利用するアプリケーション部２０からの要求に応じてリアルタイムに、住所情報から緯度・経度情報への変換を高速に行うことができる。
【００４９】
なお、上記実施形態では、住所木情報およびインデックス情報を生成してメモリ１４に記憶させる例について説明したが、住所木情報のみを生成してメモリ１４に記憶させ、当該住所木情報のみを用いて住所情報から緯度・経度情報の変換を行うようにしてもよい。この場合でも高速に変換処理を行うことが可能である。ただし、インデックス情報も用いた方が、より高速に変換処理を行うことができる点で好ましい。
【００５０】
また、上記実施形態では、アプリケーション部２０の起動時（例えば、ログイン時）に、データベース２５内の住所情報から住所木情報およびインデックス情報を生成してメモリ１４に記憶させる例について説明したが、本発明はこれに限定されない。例えば、データベース２５の編集が行われてその更新内容が保存される都度、住所木情報およびインデックス情報を生成するようにしてもよい。あるいは、データベース２５の編集が行われている間、一定のインターバルを置いて定期的に住所木情報およびインデックス情報を生成するようにしてもよい。
【００５１】
その他、上記実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００５２】
１０  ジオコーディング部（住所／緯度経度変換装置）
１１  住所情報入力部
１２  住所木情報生成部
１３  インデックス情報生成部
１４  メモリ
２０  アプリケーション部
２２  緯度・経度情報取得部
２３  処理実行部
【要約】
【課題】メンテナンスが必要な中間テーブルを生成することなく、アプリケーションからの要求に応じてリアルタイムに、住所情報から緯度・経度情報への変換を高速に行うことができるようにする。
【解決手段】ジオコーディング部１０に入力された住所情報２００を、行政区画で階層的に構成された木構造に変換し、当該木構造の各枝の少なくとも最下層のノードに緯度・経度情報を関連付けて成る住所木情報を生成し、当該生成した住所木情報を高速アクセス可能なメモリ１４に記憶させることにより、住所木情報の親ノードから子ノードへと順に辿るようにして検索範囲を狭めながら検索を進めていくことで、与えられた住所情報からそれに対応する緯度・経度情報を効率的に探索することができるようにするとともに、ディスクに記憶された変換テーブルにアクセスしていた従来技術に比べて高速に検索を行うことができるようにする。
【選択図】図１【図１】
0005849146.tif 000002
【図２】
0005849146.tif 000003
【図３】
0005849146.tif 000004
【図４】
0005849146.tif 000005