我的谷歌地图左侧有一个大型(300*500px)自定义控件。我将我的标记聚集在一起。当用户单击标记时,我想放大地图以显示该群集中的标记。
问题是:
当我得到标记集合的边界时,然后map.fitBounds(collection_bounds)
,我最终在我的大型控制下得到了标记。有没有办法预防fitBounds
使用整个视口?
我尝试过获得LatLng
我的西南边界点,将其转换为像素,移动 300px,然后将其转换back to a LatLng
用作新的西南边界点。但这不起作用,因为计算已完成变焦前,所以 300px 的偏移最终太多了......我想过自己写一个fitBounds
,但我遇到了同样的问题,因为它是在缩放之前完成的。
你说的有效:
我尝试获取西南边界点的纬度,
将其转换为像素,将其移入 300px,然后将其转换
返回到 LatLng 以用作新的西南边界点。
如果你分两步完成,这对用户来说几乎是透明的,因为它执行得如此之快以至于你几乎没有注意到它。所以,首先你做一个正常的map.fitBounds(bounds);
其中边界仅由您的标记定义,然后您使用您描述的技术重新调整。所以:
google.maps.event.addListenerOnce(map,'bounds_changed',function(){
// re-adjust bounds here as you described.
// This event fires only once and then the handler removes itself.
});
map.fitBounds(bounds);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)