之前我按照another answer中的说明操作,以便在地图上只有一个点时自动打开信息窗口。我有这个工作,但由于地图在手动打开infowindow时没有重新进入(就像点击标记显示信息窗口时那样),因此信息窗口在顶部略微被切断。我的观点只使用了基本的:
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以及重新标记标记的最佳方法,以便整个信息窗口显示在屏幕上并且不会在顶部切断
我也看过this question似乎有类似问题,但不包括重新定位。我也可以执行Gmaps.map.map.setZoom(14);在控制台中,让它执行以及Gmaps.map.map.panBy(0,-80);但他们似乎不会在回调中执行。另外,我不确定panBy是否是解决问题的最有效方法。
使用: gmaps4rails(1.4.8)和Rails(3.2.3)
任何人有任何想法或想法?
谢谢!
答案 0 :(得分:1)
正如我们最后总结的那样,当你有一个标记时,你应该使用专用的助手选项。
由于谷歌地图异步加载。
答案 1 :(得分:0)
可能因为Gmaps.map.map
被弃用而不赞成Gmaps.map.serviceObject
(请参阅https://github.com/apneadiving/Google-Maps-for-Rails/wiki/Javascript-goodies)
答案 2 :(得分:0)
我的申请中遇到了类似的问题,但我做了以下事情来解决。
试试吧
1)将map_option“auto_adjust”更改为false,如下所示
gmaps(:map_options =&gt; {:auto_adjust =&gt; false}, :markers =&gt; {:data =&gt; @json,:options =&gt; {:do_clustering =&gt;是的}})
2)现在在回调函数中调用map.setZoom(你的值),然后地图将被缩放