Rails5에서 GoogleMapsAPI를 사용하여 여러 마커 표시
8105 단어 자바스크립트RailsGoogleMapsAPI
이런 느낌
※아이콘은 커스텀 완료
기본 부분에는 아래의 기사를 참고로하였습니다. 감사합니다.
Rails5에서 GoogleMap 보기
사용하지 않는 것
· JSON
· gmap4rails
게시자 환경
Cloud9
Ruby 2.4.1
Rails 5.2
초보자 마음
컨트롤러
Place 모델에 latitude 또는 longitude가 float로 포함된 인스턴스가 이미 있다고 가정합니다.
places_controller.rbclass PlacesController < ApplicationController
def index
@places = Place.all
end
end
보기
index.html.erb<script async defer
src="https://maps.googleapis.com/maps/api/js?v=3.exp&key=APIキー&callback=initMap">
</script>
中略
<!--マップ-->
<div id="map"></div>
<!-- js部分 -->
<script>
function initMap() {
//初期表示位置
var latlng = new google.maps.LatLng(36.30, 139.5);
//デザイン
var styles = [
{
stylers: [
{ "saturation": -95 },
{ "lightness": -20 }
]
}
];
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 9,
styles: styles,
center: latlng
});
var transitLayer = new google.maps.TransitLayer();
transitLayer.setMap(map);
//複数マーカー ここから
<% @places.each do |place| %>
(function(){
var contentString = "住所:<%= place.name %>";
var infowindow = new google.maps.InfoWindow({
content: contentString
});
var marker = new google.maps.Marker({
position:{lat: <%= place.latitude %>, lng: <%= place.longitude %>},
map: map,
title: contentString, //お好みのアイコンが無ければ、左のカンマを削除
icon: 'お好みのアイコンのパス(ない場合はこの行と真上の行のカンマを削除)'
});
marker.addListener('click', function() {
infowindow.open(map, marker, content);
});
})();
<% end %>
//複数マーカー ここまで
}
</script>
이제 첫 번째 이미지처럼 보일 것입니다.
결론
JSON 사용하든 여러가지 했는데 결과 이것에 침착했습니다. 간단!
참고 【Rails로】GoogleMapsAPI의 마커를 클릭했을 때에 infowindow를 적절히 표시하고 싶다
Reference
이 문제에 관하여(Rails5에서 GoogleMapsAPI를 사용하여 여러 마커 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yamaotoko4177/items/30b72766d013904452fa
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Place 모델에 latitude 또는 longitude가 float로 포함된 인스턴스가 이미 있다고 가정합니다.
places_controller.rb
class PlacesController < ApplicationController
def index
@places = Place.all
end
end
보기
index.html.erb<script async defer
src="https://maps.googleapis.com/maps/api/js?v=3.exp&key=APIキー&callback=initMap">
</script>
中略
<!--マップ-->
<div id="map"></div>
<!-- js部分 -->
<script>
function initMap() {
//初期表示位置
var latlng = new google.maps.LatLng(36.30, 139.5);
//デザイン
var styles = [
{
stylers: [
{ "saturation": -95 },
{ "lightness": -20 }
]
}
];
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 9,
styles: styles,
center: latlng
});
var transitLayer = new google.maps.TransitLayer();
transitLayer.setMap(map);
//複数マーカー ここから
<% @places.each do |place| %>
(function(){
var contentString = "住所:<%= place.name %>";
var infowindow = new google.maps.InfoWindow({
content: contentString
});
var marker = new google.maps.Marker({
position:{lat: <%= place.latitude %>, lng: <%= place.longitude %>},
map: map,
title: contentString, //お好みのアイコンが無ければ、左のカンマを削除
icon: 'お好みのアイコンのパス(ない場合はこの行と真上の行のカンマを削除)'
});
marker.addListener('click', function() {
infowindow.open(map, marker, content);
});
})();
<% end %>
//複数マーカー ここまで
}
</script>
이제 첫 번째 이미지처럼 보일 것입니다.
결론
JSON 사용하든 여러가지 했는데 결과 이것에 침착했습니다. 간단!
참고 【Rails로】GoogleMapsAPI의 마커를 클릭했을 때에 infowindow를 적절히 표시하고 싶다
Reference
이 문제에 관하여(Rails5에서 GoogleMapsAPI를 사용하여 여러 마커 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yamaotoko4177/items/30b72766d013904452fa
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<script async defer
src="https://maps.googleapis.com/maps/api/js?v=3.exp&key=APIキー&callback=initMap">
</script>
中略
<!--マップ-->
<div id="map"></div>
<!-- js部分 -->
<script>
function initMap() {
//初期表示位置
var latlng = new google.maps.LatLng(36.30, 139.5);
//デザイン
var styles = [
{
stylers: [
{ "saturation": -95 },
{ "lightness": -20 }
]
}
];
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 9,
styles: styles,
center: latlng
});
var transitLayer = new google.maps.TransitLayer();
transitLayer.setMap(map);
//複数マーカー ここから
<% @places.each do |place| %>
(function(){
var contentString = "住所:<%= place.name %>";
var infowindow = new google.maps.InfoWindow({
content: contentString
});
var marker = new google.maps.Marker({
position:{lat: <%= place.latitude %>, lng: <%= place.longitude %>},
map: map,
title: contentString, //お好みのアイコンが無ければ、左のカンマを削除
icon: 'お好みのアイコンのパス(ない場合はこの行と真上の行のカンマを削除)'
});
marker.addListener('click', function() {
infowindow.open(map, marker, content);
});
})();
<% end %>
//複数マーカー ここまで
}
</script>
JSON 사용하든 여러가지 했는데 결과 이것에 침착했습니다. 간단!
참고 【Rails로】GoogleMapsAPI의 마커를 클릭했을 때에 infowindow를 적절히 표시하고 싶다
Reference
이 문제에 관하여(Rails5에서 GoogleMapsAPI를 사용하여 여러 마커 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yamaotoko4177/items/30b72766d013904452fa텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)