Skip to content

Latest commit

 

History

History
162 lines (103 loc) · 5.08 KB

README.ja.md

File metadata and controls

162 lines (103 loc) · 5.08 KB

Build

JPostal

郵便番号辞書(いわゆる ken_all.csv)のユーティリティです.

jpostal


Feature

  • japanpost.jp から辞書 csv を自動ダウンロード
  • 住所情報の整形
  • 辞書の自動アップデート(月次)
  • REST web サーバ付属
  • 依存ライブラリ無し

Usage

以下の依存を追加します.

dependencies {
    implementation 'com.mammb:jpostal:0.2.0'
}

Postal を生成して初期化します.

Postal postal = Postal.of();
postal.initialize();

生成したインスタンスに郵便番号のクエリを渡すことで、候補の郵便番号と住所が取得できます.

String code = "105001";
Collection<Address> addresses = postal.get(code);
//[{"code": "1050011", "prefecture": "東京都", "city": "港区", "town": "芝公園", "street": ""},
// {"code": "1050012", "prefecture": "東京都", "city": "港区", "town": "芝大門", "street": ""},
// {"code": "1050013", "prefecture": "東京都", "city": "港区", "town": "浜松町", "street": ""}, 
// {"code": "1050014", "prefecture": "東京都", "city": "港区", "town": "芝", "street": ""}]

PostalServer

REST サーバが必要な場合は jpostal.jar を実行します.

直接ビルドして実行するか、https://github.com/naotsugu/jpostal/releases から jpostal.jar をダウンロードして実行します.

$ git clone https://github.com/naotsugu/jpostal.git
$ cd jpostal
$ ./gradlew jar
$ java -jar build/libs/jpostal.jar

または、PostalServer を使います.

PostalServer server = PostalServer.of(postal);
server.start();

http://localhost:8080/postal/105001 のようにアクセスすることで json フォーマットで結果を取得することができます.

http://localhost:8080/postal/console.html にアクセスすれば簡易的な住所チェック用のコンソールが表示されます.


Options

以下のオプションがあります.

Postal postal = Postal.of()
    .fineAddressSupport(true)
    .leftMatchSupport(true)
    .leftMatchLimitCount(20)
    .officeSourceSupport(false)
    .autoUpdateSupport(true);
Option Default
fineAddressSupport true
leftMatchSupport true
leftMatchLimitCount 20
officeSourceSupport false
autoUpdateSupport false

Details

辞書のダウンロード

jpostal.jar 実行時のディレクトリに ken_all.zip が存在する場合は、このファイルを利用します。

ファイルが存在しない場合は、日本郵政の辞書ファイルを自動でダウンロードします. ダウンロードしたファイルは jpostal.jar 実行時のディレクトリにダウンロードされるため、次回起動時にはこのファイルを使うようになります.

ダウンロードするファイルは「読み仮名データの促音・拗音を小書きで表記するもの」の全国版です. オプションで officeSourceSupport が有効化されていた場合は「事業所の個別郵便番号」jigyosyo.zip を加えて扱います.

辞書の更新

郵政郵便番号は月末に更新分が公開されます。

autoUpdateSupport を有効にすることで月初(0時〜1時の間のランダムな時刻)に自動更新されます。

郵便番号のマッチモード

leftMatchSupport を有効にした場合、前方一致で郵便番号を検索します. leftMatchSupport を無効にした場合は完全一致検索となります.

前方一致検索で取得する結果件数は leftMatchLimitCount で指定します.

住所情報の整形

日本郵政の公開する郵便番号辞書はシステムでそのまま利用できる代物ではないため、各種の整形処理を行っています.

複数行に分割されたレコードを合成した後、com.mammb.code.jpostal.source.TownEditor にある変換処理を行います.

例えば以下のようなレコードは、

"0580343",..,"北海道","幌泉郡えりも町","東洋(油駒、南東洋、132~156、158~354、366、367番地)"

以下のような住所情報として整形します.

"0580343",..,"北海道","幌泉郡えりも町","東洋","油駒"
"0580343",..,"北海道","幌泉郡えりも町","東洋","南東洋"
"0580343",..,"北海道","幌泉郡えりも町","東洋","366番地"
"0580343",..,"北海道","幌泉郡えりも町","東洋","367番地"
"0580343",..,"北海道","幌泉郡えりも町","東洋",""

fineAddressSupport オプションを無効にした場合は以下のように編集されます.

"0580343",..,"北海道","幌泉郡えりも町","東洋",""

なお、「事業所の個別郵便番号」については住所情報の編集は行いません.