地名から緯度経度を求めたり、緯度経度から住所登録をやる場合に便利なのが、この『alexreisner/geocoder』です。
Active Recordと組み合わると、緯度経度を登録したら後は自動で変換を行うカラムを追加できるといったことが可能になります。
🚜 Gemのインストール
いつ戻おりGemfile
に以下を追加して、bundle install
を実行してください。
gem 'geocoder' |
🎂 Modelにカラムを追加
モデルに緯度経度を表すカラムlatitude, longitude
を追加するマイグレーションを実行。
rails generate migration AddLatitudeAndLongitudeToModel latitude:float longitude:float address:string |
🎃 Modelに緯度経度から住所に自動変換
これで、latitude, longitude
を登録すると、address
カラムを自動で取得してくれます。
geocoded_by :address |
🐞 Modelに住所を登録すると緯度経度に自動変換
逆にaddress
カラムを登録すると、緯度経度latitude, longitude
を取得することも可能です。
reverse_geocoded_by :latitude, :longitude |
🏈 地図を表示
こちらは単に450×300のサイズのGoogle Mapsを表示するURLですが、よく併用するので念の為haml
で追記。
= image_tag "http://maps.google.com/maps/api/staticmap?size=450x300&sensor=false&zoom=16&markers=#{@location.latitude}%2C#{@location.longitude}" |