以前,我按照另一个答案中的说明让信息窗口在地图上只有一个点时自动打开。我有这个工作,但信息窗口在顶部被略微切断,因为手动打开信息窗口时地图不会重新居中(就像单击标记以显示信息窗口时一样)。我的观点只是使用基本的:
gmaps(:map_options => { :auto_adjust => true },
:markers => { :data => @json, :options => {:do_clustering => true} })
在我看来,下面的 JavaScript:
<script type="text/javascript" charset="utf-8">
Gmaps.map.callback = function() {
if (Gmaps.map.markers.length == 1) {
var marker = Gmaps.map.markers[0];
var infowindow = marker.infowindow;
infowindow.open(Gmaps.map.map, marker.serviceObject);
}
}
</script>
我想弄清楚的是将缩放级别设置为 14 以及重新定位标记的最佳方法,以便整个信息窗口显示在屏幕上并且不会在顶部被切断。
我也看过这个问题,他似乎有类似的问题,但不包括重新定位。我也可以执行 Gmaps.map.map.setZoom(14); 在控制台中并让它像 Gmaps.map.map.panBy(0, -80); 一样执行 但它们似乎不是从回调中执行的。另外,我不确定 panBy 是否是解决我的信息窗口被切断问题的最有效方法。
使用: gmaps4rails (1.4.8) 和 Rails (3.2.3)
任何人有任何想法或想法?
谢谢!