0
나는 모든 사람이 상사를 가질 때 사람들 목록을 가지고 있습니다. 그래서 맵 옆에는 체크 박스 형태의 상사 목록이 있습니다. 보스 체크 박스를 클릭하면 보스 사람들이 마커로 맵에 표시됩니다.gmaps4rails - 마커를 제거하고지도를 표시하지 않고 표시합니다.
보스가 어떤 위치에 사람 중심의지도를 표시 할 필요가 있지만 자바 스크립트에 문제가 있습니다.
컨트롤러
if params[:boss]
bosses_array = params[:boss].map(&:to_i)
@bosses = User.joins(:roles).where("roles.name ='boss' and users.id in (?)", bosses_array)
people = People.where("boss_id in (?)", bosses_array)
if people.count != 0
@json = people.to_gmaps4rails
@markers = true
else
@markers = false
end
else
@bosses = User.joins(:roles).where("roles.name ='boss'")
@markers = false
end
Index.html.erb
<%= gmaps("markers" => {"data" => @json}) %>
<% content_for :scripts do -%>
<script type="text/javascript">
if(<%= @markers %>)
{
Gmaps.map = new Gmaps4RailsGoogle();
Gmaps.load_map = function() {
Gmaps.map.map_options.maxZoom = 15;
Gmaps.map.initialize();
Gmaps.map.markers = <%= raw @json %>;
Gmaps.map.create_markers();
Gmaps.map.callback();
Gmaps.map.map_options.auto_zoom = true;
Gmaps.map.adjustMapToBounds();
};
Gmaps.loadMaps();
}
else
{
Gmaps.map = new Gmaps4RailsGoogle();
Gmaps.load_map = function() {
Gmaps.map.map_options.maxZoom = 15;
Gmaps.map.map_options.center_latitude = "30";
Gmaps.map.map_options.center_longitude = "20";
Gmaps.map.initialize();
//create markers without data, so there are no markers
Gmaps.map.create_markers();
Gmaps.map.callback();
Gmaps.map.map_options.auto_zoom = true;
Gmaps.map.adjustMapToBounds();
};
Gmaps.loadMaps();
}
</script>
상사는 마커가 표시됩니다 어떤 사람들이 있지만 사람들이 오래된 마커가 없을 때 삭제하지 않고 유지합니다.