gpt4 book ai didi

google-maps - 如何使 fitBounds 感知自定义控件

转载 作者:行者123 更新时间:2023-12-03 00:21:46 28 4
gpt4 key购买 nike

我的谷歌地图左侧有一个大型(300*500px)自定义控件。我将我的标记聚集在一起。当用户单击标记时,我想放大 map 以显示该群集中的标记。

问题是:

当我获得标记集合的边界,然后 map.fitBounds(collection_bounds) 时,我最终会在大型控件下方得到标记。有没有办法防止 fitBounds 使用整个视口(viewport)?

我尝试获取西南边界点的 LatLng,将其转换为像素,移入 300 像素,然后将返回转换为 LatLng 用作新的西南边界点。但这不起作用,因为计算是在缩放之前完成的,因此 300px 的偏移最终太大了......我想过编写自己的 fitBounds,但是我遇到了同样的问题,因为它是在缩放之前完成的。

最佳答案

你说的有效:

I have tried getting the LatLng of my south west bounds point, converting that to pixels, moving that 300px in, then converting that back to a LatLng to use as the new south west bounds point.

如果您分两步完成,这对用户来说几乎是透明的,因为它执行得如此之快以至于您几乎没有注意到它。因此,首先执行正常的 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);

关于google-maps - 如何使 fitBounds 感知自定义控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12152596/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com