Jipcodeは郵便番号から住所を検索する機能を提供します。 郵便番号と対応する住所のデータは日本郵便の公式サイトで配布されているものを用いています。
Add this line to your application's Gemfile:
gem 'jipcode'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install jipcode
郵便番号は1個の番号につき複数の住所が結びつくことがあります。
そのため次のように検索結果は住所情報を含むHashの配列で返ります。
このHashは郵便番号(:zipcode
)、都道府県(:prefecture
)、市区町村(:city
)、町域番地(:town
)の値を持ちます。
Jipcode.locate('1510051')
# => [{zipcode: '1510051', prefecture: '東京都', city: '渋谷区', town: '千駄ヶ谷'}]
次のようにオプションで都道府県コードを検索結果に含めることもできます。
Jipcode.locate('1510051', prefecture_code: true)
# => [{:zipcode=>"1510051", :prefecture=>"東京都", :city=>"渋谷区", :town=>"千駄ヶ谷", :prefecture_code=>13}]
加えてオプションで、都道府県カナ、市区町村カナ、町域番地カナを検索結果に含めることもできます。
Jipcode.locate('1510051', prefecture_code: true, kana: true)
=begin
=>
[{:zipcode=>"1510051",
:prefecture=>"東京都",
:city=>"渋谷区",
:town=>"千駄ヶ谷",
:prefecture_code=>13,
:prefecture_kana=>"トウキョウト",
:city_kana=>"シブヤク",
:town_kana=>"センダガヤ"}]
=end
例外として、大口事業所個別番号の:town_kana
は空文字列が返却されます。
Jipcode.locate('0608614', prefecture_code: true, kana: true)
=begin
[{:zipcode=>"0608614",
:prefecture=>"北海道",
:city=>"札幌市中央区",
:town=>"大通西5丁目地下鉄大通駅西側コンコース内",
:prefecture_code=>1,
:prefecture_kana=>"ホッカイドウ",
:city_kana=>"サッポロシチュウオウク",
:town_kana=>""}]
=end
日本郵便の郵便番号データは月末に更新されています。 jipcodeではこれを毎月取り込んでいます。
更新を反映したい時はbundle update jipcode
してください。
The gem is available as open source under the terms of the MIT License.
Everyone interacting in the Jipcode project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.