此行为是由于auto_zoom
google maps api 中的内置函数造成的。
解决此问题的一种方法是false
在gmaps
方法中将其设置为:
<%= gmaps({
"map_options" => { "auto_zoom" => false},
"markers" => { "data" => @json }
})
%>
然后使用gmaps4rails_callback
来满足您的需求(确保至少有 0.7.9 版本)
<script type="text/javascript" charset="utf-8">
function gmaps4rails_callback() {
if (Gmaps4Rails.markers.length == 1) {
//only one marker, choose the zoom level you expect
Gmaps4Rails.map.setZoom(2);
}
else{
//more than one marker, let's auto_zoom
Gmaps4Rails.map_options.auto_zoom = true;
Gmaps4Rails.adjust_map_to_bounds();
}
}
</script>