Help us understand the problem. What is going on with this article?

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

More than 5 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:


参考

kentana20
LiverpoolFCを愛するエンジニア。 株式会社一休で宿泊サイト「一休.com」の開発・運用をやってます。
http://kentana20.hatenablog.com/
ikyu
「こころに贅沢を」をコンセプトに一休.com、一休レストランなどのサービスを提供しています。
https://www.ikyu.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away