railsで、住所入れたら、その位置のgooglemapを表示させる
やりたいこと
京都駅と記入して、青いボタンの登録をすると、下に京都駅のgoogle mapが出てくる。
gem追加
gem 'geocoder'
bundle install
モデル説明
今回は、shopモデルに住所を入れたいとする
shopモデル
上の図の説明は、shopモデルである。店の名前と来客人数のカラムを作ってある。
googlemap表示のために、カラムaddress latitude longtudeを追加する。
rails generate migration AddaddressLatitudeAndLongitudeToShop address:string latitude:float longitude:float
geocoded_by :address
after_validation :geocode, if: :address_changed?
上の記述で、 住所(カラムaddress)を入れたときに、自動でその住所の緯度、経度をカラムlatitude,
longitudeに記述してくれる。
登録画面
<%= form_for @shop :url => {:action => :update} do |f| %>
<div class="text-center"><%= f.text_field :address %></div>
<%= f.submit "住所登録", class: "btn btn-primary center-block" %>
<% end %>
<body>
<div id="map"></div>
<style>
#map {
height: 500px;
width: 70%;
}
</style>
<script>
function initMap() {
var uluru = {lat: <%= @shop.latitude %>, lng: <%= @shop.longitude %>};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 16,
center: uluru
});
var marker = new google.maps.Marker({
position: uluru,
map: map
});
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"
async defer></script>
</body>
下からの3行目YOUR_API_KEY記述がある。 これは、各自でgooglemapAPIからkey取得する必要がある。
http://qiita.com/kitaokeita/items/a7f33615940e67c13820
このリンクにkey取得のやり方が書かれているので参考してください
Author And Source
この問題について(railsで、住所入れたら、その位置のgooglemapを表示させる), 我々は、より多くの情報をここで見つけました https://qiita.com/kitaokeita/items/38dec1fbbb0433fec380著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .