-Tout d'abord, obtenez l'API pour utiliser googlemap. Cliquez ici pour obtenir l'API (https://qiita.com/nagaseToya/items/e49977efb686ed05eadb)
-Créer une colonne pour enregistrer l'adresse et une colonne pour enregistrer la latitude et la longitude. la latitude / longitude correspond à la latitude et à la longitude.
schema.rb
create_table "tours", force: :cascade do |t|
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.string "address", null: false
    t.float "latitude"
    t.float "longitude"
  end
・ Gemfile ・ Tour.rb ・ .Gitignore ・ .Env ・ Geocorder.rb ・ Show.html.erb
Gemfile
géocorder installation groupée
gem 'geocoder'
tour.rb Ajoutez ce qui suit
tour.rb
geocoded_by :address
after_validation :geocode, if: :address_changed?
Enregistrez la latitude et la longitude de l'adresse saisie par geocoded_by. after_validation: geocode enregistre la latitude et la longitude modifiées même si l'adresse est modifiée ultérieurement.
Ajoutez .env à .gitignore. Cela ne monte pas sur github.
.gitignore
/.env
Ajoutez ce qui suit à .env. Utilisez la clé API obtenue pour YOUR_API_KEY.
.env
GOOGLEMAP=YOUR_API_KEY
geocorder.rb
Créez config / initialize / geocorder.rb avec rails g geocoder: config et ajoutez ce qui suit.
L'API acquise est saisie dans la partie api_key.
geocorder.rb
Geocoder.configure(
  lookup: :google,
  always_raise: [
    Geocoder::OverQueryLimitError,
    Geocoder::RequestDenied,
    Geocoder::InvalidRequest,
    Geocoder::InvalidApiKey
  ],
  api_key:  ENV['GOOGLEMAP'] ,
  use_https: true
)
show.html.erb Enfin, collez la carte google dans show.html.erb
show.html.erb
<div id="map"></div>
<style>
     #map {
     height: 500px;
     width: 70%;
    }
</style>
<script>
  function initMap() {
	var uluru = {lat: <%= tour.latitude %>, lng: <%= tour.longitude %>};
	var map = new google.maps.Map(document.getElementById('map'), {
	zoom: 16,
	enter: uluru
	});
	var marker = new google.maps.Marker({
	  position: uluru,
	  map: map
	});
       }
	</script>
	<script src="https://maps.googleapis.com/maps/api/js?key=<%= ENV['GOOGLEMAP'] %>&callback=initMap"async defer></script>
Après cela, vous pouvez ajuster la hauteur et la largeur en fonction de vos préférences de taille.
Recommended Posts