RailsとJQueryでGoogleMapを住所から扱う手軽な方法

GoogleMapをRails3アプリで使いたかった。
昔、どうやってたっけなー、と思って手元のコード参考にかいてもうまく動いてくれなかった。
なんかしばらくのうちにv3とか云々って話になってるので、いい機会なので書きなおしてみた。
Rails:3.1.1


◆JS
プラグインは以下を用いた。
jQuery GoogleMaps プラグイン
GitHub - dreamseeker/jQueryGoogleMaps: Google Maps API v3 を利用するための jQuery Plugin です。


◆View
layouts

<script type="text/javascript" src="http://www.google.com/jsapi">

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&key=[key]">

<%= javascript_include_tag 'jquery.GoogleMaps1.01' %>


view/

<script type="text/javascript" charset="utf-8">
$(function(){
  //GMap
  $('#gmap').GoogleMaps({
    lat: <%= @geo['lat'] %>,
    lng: <%= @geo['lng'] %>,
    zoom: 15
  });
});
</script>

<!-- マップ -->
<div id="gmap"></div>


◆Contoroller

controller/

@geo = geocode(@spot_info.address)


common/

 def geocode(address)
   address = URI.encode(address)
   hash = Hash.new
   baseUrl = "http://maps.google.com/maps/api/geocode/json"
   reqUrl = "#{baseUrl}?address=#{address}&sensor=false&language=ja"
   response = Net::HTTP.get_response(URI.parse(reqUrl))
   status = JSON.parse(response.body)
   if status['status'] != "ZERO_RESULTS"
     hash['lat'] = status['results'][0]['geometry']['location']['lat']
     hash['lng'] = status['results'][0]['geometry']['location']['lng']
   else
     hash['lat'] = '35.681382'
     hash['lng'] = '139.766084'
   end
  
   return hash
 end