0
github에서 gmaps4rails 튜토리얼을 따라 왔지만 정보창을 사용자 정의하는 방법을 이해하지 못했습니다. 위치, 이름, 회사 및 설명을 포함한 인턴십 데이터를 수집하는 데이터베이스가 있습니다. 마커는지도의 올바른 위치에 표시되지만 정보 창이 표시 될 때만 정보 또는 이름 또는 회사를 표시 할 수 있습니다.레일 : gmaps4rails를 사용하여 정보창 사용자 정의하기
필자는 레일스를 처음 사용하기 때문에 이러한 모든 속성을 정보 창에 표시 할 수 있도록 업데이트해야 할 항목을 완전히 이해하지 못했습니다.
인턴쉽 모델 : 나는 아래에 내 코드를 부착하고
class Internship < ApplicationRecord
geocoded_by :address
after_validation :geocode
end
인턴쉽보기 :
<script src="//maps.google.com/maps/api/js?key=AIzaSyBj4qLUeW291Z5WvVOwzseQONRBGCnA8ds"></script>
<script src="//cdn.rawgit.com/mahnunchik/markerclustererplus/master/dist/markerclusterer.min.js"></script>
<script src='//cdn.rawgit.com/printercu/google-maps-utility-library-v3-read-only/master/infobox/src/infobox_packed.js' type='text/javascript'></script> <!-- only if you need custom infoboxes -->
<div style='width: 800px;'>
<div id="map" style='width: 1100px; height: 600px'></div>
</div>
<script type="text/javascript">
handler = Gmaps.build('Google');
handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
markers = handler.addMarkers(<%=raw @hash.to_json %>);
handler.bounds.extendWith(markers);
handler.fitMapToBounds();
});
</script>
인턴십 컨트롤러 :
def index
@internships = Internship.all
@hash = Gmaps4rails.build_markers(@internships) do |internship, marker|
marker.lat internship.latitude
marker.lng internship.longitude
marker.infowindow internship.description
end
end
나는 대단히 감사합니다 얻을 수있는 모든 도움을!
def index
@internships = Internship.all
@internship_properties = Array.new
@internships.each do |internship|
@internship_properties.push(internship)
end
@hash = Gmaps4rails.build_markers(@internship_properties) do |internship_prop, marker|
concat_info_window = "#{internship_prop.name}, #{internship_prop.address}, #{internship_prop.company}, #{internship_prop.title}, #{internship_prop.date}, #{internship_prop.description}"
marker.lat internship_prop.latitude
marker.lng internship_prop.longitude
marker.infowindow concat_info_window
end
end
: