目的
- 緯度経度情報を扱う必要があり、簡易に住所を緯度経度変換したい
- 緯度経度を元に地図検索を実装していくが、中心地点の定義は郵便番号や地名等でピンポイントで指定したい
- 緯度経度の検索結果はキャッシュしたいけど、有効期限も設定しておきたい
- google のAPI利用上限に引っかかるかもしれないのでキャッシュしたい
やったこと
Gemfile
gem 'geocoder'
config/initializers/geocoder.rb
- いつもは大体
redis
に突っ込んじゃうんだけど、redis
が使えなかった
- なので、ファイルキャッシュを使用し、有効期限の設定をすることにした
Geocoder.configure(
language: :ja,
cache: ActiveSupport::Cache::FileStore.new([Rails.root, 'tmp', 'geocoder'].join('/'), { expires_in: 30.days }),
cache_prefix: 'geocoder:',
)
基本的な使い方
-
Geocode.search('東京都')
などを記載すると自動的に結果がキャッシュされます - 2回目以降、キャッシュ有効期限内であればそちらから取ってくるのでプログラム側で特にキャッシュを意識する必要はないです
補足
- gem ファイルのgithub