<< 自己紹介 | top | VB.NET 2005 Express >>

geocoder.ja を VB.NET から使う(準備編)

はじめに
geocoder.ja は、Orkneyさん が、オープンソースソフトウェアとして提供されている、ジオコーディングツールです。
ジオコーディングとは、住所から緯度経度を得ることです。これにより、地図の利用がとても便利になります。
ここでは、geocoder.ja のライブラリを、VB.NETから利用する方法をメモしておきます

準備
  1. geocoder.ja のダウンロード
    PostLBSプロジェクトサイトから一式をダウンロードします。(2006.12.12時点最新1.0.1.1)
    ・[2006/07/26] geocoderja_1_0_1_1.lzh
  2. 解凍して適当なフォルダにおきます。
    ここでは、C:¥temp の直下に geocoderja フォルダを作り、その下に置きました。
    C:¥temp¥geocoderja¥geocoderja_1_0_1_1
    ├bin
    ├geocoderja
    └・・・
  3. geocoder.ja では、住所データベースをダウンロードして準備する必要があります。
    郵便番号辞書は、11MBくらいですが、位置参照情報は全国で約1.2GBになります。
    • 日本郵政公社のホームページから郵便番号データ
      「読み仮名データの促音・拗音を小書きで表記したもの」
      http://www.post.japanpost.jp/zipcode/dl/kogaki.htm
    • 国土交通省の街区レベル位置参照情報のダウンロード
      街区レベル位置参照情報ダウンロードサービス
      http://nlftp.mlit.go.jp/cgi-bin/isj/dls/_view_cities_wards.cgi
      ※ダウンロードの手間がいやな方は、こちらの記事が参考になります。
      ■Geocoder の作り方(NI-Lab.)
      http://www.nilab.info/zurazure2/archives/000335.html

  4. 上記データをC:¥temp¥geocoderja フォルダにおきます。
    ここでは、次のようにしました。
    C:¥temp¥geocoderja¥
    ├addr               :作成されるファイルの保存場所
    ├data               :ダウンロードした位置参照情報
    │   ├02000.##       :解凍したフォルダごと入れる
    │   │ ├02_2005.csv
    │   │ ├format_2005.html
    │   │ └md_02_2005.xml
    │   ├03000.##
    │   ├kanto          :地方ごとのDB作成なら、
    │   │               :一緒にしたい都道府県の
    │   │               :CSVファイルを、
    │   │               :同じフォルダに入れます。
    │   ├all             :全国ならひとつのフォルダに、
    │   │               :全部のCSVファイルを入れます。
    │      └・・・
    ├db                 :作成されるファイルの退避場所
    │   ├02                   :都道府県コード01〜48など
    │   ├kanto              :地方別なら、kanto,tohokuなど
    │      └・・・
    ├geocoderja_1_0_1_1  :プログラム一式
    │   ├bin
    │   ├geocoderja
    │   └・・・
    └post               :郵便番号データ

    gc001.png


データ作成ツール
  1. プログラムフォルダのbin の中に、ライブラリとコンバータツールが含まれています。
    データベース作成までの手順は、たくさんありますので、提供されているツールを利用するのが便利です。
    binフォルダの中の”mkgcjdb.exe”を利用すると、フォルダを元の住所データベースを指定すれば、自動でgeocoder.ja用のデータ作成が行えます。

  2. ”mkgcjdb.exe”を起動すると、「Geocoder検索用住所DBの作成」ウィンドウが表示されます。
    それぞれ以下のように設定します。
    • 町大字基本データ格納フォルダ:C:¥Temp¥geocoderja¥post
    • 丁目字基本データ格納フォルダ:C:¥Temp¥geocoderja¥data¥##
      ※##はデータフォルダの任意のフォルダ。
        対象都道府県なら、02000.##(青森県)など、
        地方ごとなら作成したkantoなど、
        のフォルダを指定します。
    • 街区符号基本データ格納フォルダ:C:¥Temp¥geocoderja¥data¥##
      ※上記と一緒
    • 住居番号基本データ格納フォルダ:(空欄)
      ※これは、有料の号レベルのデータを使う場合に指定します。
    • 作成した住所DBを保存するフォルダ:C:¥Temp¥geocoderja¥addr
      ※ここに、プログラムから作成されるファイルが保存されます。

  3. 「作成した住所DBを保存するフォルダ」に行政区域レコードをコピーします。
    プログラムフォルダのbin の中に、"gcj_gyoseimei.csv"、"gcj_variation.csv"の2つのファイルがありますので、これを、上記で指定した「作成した住所DBを保存するフォルダ」にコピーします。

    これで準備ができました。

    gc001.png

  4. データベースの作成
    「作成」ボタンを押す前に、左にあるチェックボックスにチェックを入れます。
    一番下の、”枝番住居番号レコード”は、有料の号レベルのデータを使う場合のみチェックを入れます。
    「作成」ボタンを押すと、黒いコマンドプロンプトウィンドウが開閉されながら、データが作成されていきます。

    下のテキストボックスには、実行状況が表示されます。
    ※このテキストボックスは、自動でクリアされないので、
     再実行するときは、出力文字列をすべて選択して消去してから実行するとよいです。

  5. 作成されたデータベースは、「作成した住所DBを保存するフォルダ」に作成されます。
    全国一括データベースを作成するのであれば、作成は1回で済みますが、
    都道府県別、地方別などにわける場合は、
    丁目字基本データ格納フォルダ、街区符号基本データ格納フォルダのパス名を変えながら、
    必要な分、実施します。

    そのときに、作成されたデータベースが上書きされないように、退避します。
    ここの例では、C:¥Temp¥geocoderja¥db 以下に都道府県用のフォルダを作成して、そこにコピーして退避します。
    コピーで退避する理由は、2回目からは、すべてのデータベースを作成する必要はなく、「丁目字レコード」以下だけでよいからです。「行政区域レコード」~「町大字ハッシュテーブル」までのチェックをはずしてもかまいません。

    ※都道府県用のフォルダの作成は、VBScriptなどを利用すると簡単です。

    * テキストファイルを新規作成

    * 以下をコピーして、保存


    '-------------------------
    '都道府県用フォルダの作成
    '2006.12.12 by Bugna
    '-------------------------
    Dim intCounter
    Set objFS = CreateObject("Scripting.FileSystemObject")
    For intCounter = 1 to 48
    objFS.CreateFolder(Right("00" & intCounter,2))
    Next

    * 拡張子を.vbs に変更、ダブルクリックで実行
bugna | PostLBS | 10:31 | comments(0) | trackbacks(0) | - | - |
Comment









Trackback
URL:

05
--
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
29
30
31
--
>>
<<
--