Jipcode::AddressLocator
jipcodeに住所から郵便番号データを検索するメソッド(locate_by_address
)を追加します。
Installation
Add this line to your application's Gemfile:
gem 'jipcode-address_locator'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install jipcode-address_locator
使用方法
住所から郵便番号情報を検索する
jaro-winkler距離計算の結果から近い順に郵便番号情報を返す。
require 'jipcode'
require 'jipcode/address_locator'
Jipcode.locate_by_address '東京都千代田区千代田1-1', prefecture_code: true, distance: true
# [
# {:zipcode=>"1008111", :prefecture=>"東京都", :city=>"千代田区", :town=>"千代田1−1", :prefecture_code=>13, :distance=>1.0},
# {:zipcode=>"1000001", :prefecture=>"東京都", :city=>"千代田区", :town=>"千代田", :prefecture_code=>13, :distance=>0.9538461538461538},
# {:zipcode=>"1000000", :prefecture=>"東京都", :city=>"千代田区", :town=>nil, :prefecture_code=>13, :distance=>0.9076923076923077}
# ]
備考
jipcodeの該当するバージョンのインデックスをまだ持っていない場合インデックスファイルを作成する。
受け取った住所は以下の正規化を行う。(Jipcode::AddressLocator.normalize_address()
)
- 全角の数字とハイフンを半角にする
- 「漢数字 +
丁目
」 を「半角数字 + ハイフン」 にする -
丁目
、番地
、号
などをハイフンにする
例
Jipcode::AddressLocator.normalize_address('稲穂県ミドリ市一番町一丁目2の3番')
# => '稲穂県ミドリ市一番町1-2-3'
インデックスを更新する
明示的にインデックスを作り直す場合は以下を実行する。
Jipcode::AddressLocator.create_index!
License
The gem is available as open source under the terms of the MIT License.