LoginSignup
29
24

More than 5 years have passed since last update.

railsのmodelでGeocoderを使う

Last updated at Posted at 2014-05-31

google map apiをrubyで使う方法を探していました。
すると、Geocoderというgemを使うと、モデル内で緯度経度を取得できることが分かりました。
この方法が便利だったので共有します。

使い方

Gemfile
  gem 'geocoder'

latitudelongitudeを持つstoreを例に説明を進めます。
bundle exec rails g model store latitude:float longitude:float

app/model/store.rb
  geocoded_by :address, :latitude, :longitude
  before_validation :geocode

  def address
    "福岡市中央区天神"
  end

上記の設定で@store.valid?@store.saveなどを呼ぶと、latitudelongitudeaddressの緯度と経度が入ります。

緯度経度に別のカラム名を使いたい場合

latlngを持つstoreを例に説明を進めます。
bundle exec rails g model store lat:float lng:float

app/model/store.rb
  geocoded_by :address, latitude: :lat, longitude: :lng

上記のように記述することで、緯度と経度の代入先を指定できます。

以上です。
おかしいところがあれば指摘していただけると嬉しいです。

http://www.rubygeocoder.com/
https://github.com/alexreisner/geocoder

29
24
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
24