Edited at

Railsでgeocoderをつかって住所から緯度経度を登録する

More than 3 years have passed since last update.

GoogleMap用途などで、住所を属性に持つモデルに対して緯度・経度を登録する場合はgeocoderが便利です。


geocoder

geocoderは住所⇔緯度・経度を取得・登録できるスグレモノです。


geocoder のインストール


Gemfile

# geocoder

gem 'geocoder'

Gemfileに追記したら、 bundle install でGemをインストールします


モデルの修正

Ex. Hotelモデルに住所(address), 緯度(latitude), 経度(longitude)がある場合

hotel.rb に以下のコードを記述するだけです。


hotel.rb

geocoded_by :address

after_validation :geocode, if: lambda {|obj| obj.address_changed?}

これで、モデル登録時と住所(address)変更時にgeocoderが動いて緯度・経度のデータが登録・更新されます :smiley:



参考