gpt4 book ai didi

javascript - 如何在 Google map 中收听用户生成的缩放?

转载 作者:可可西里 更新时间:2023-11-01 01:32:20 25 4
gpt4 key购买 nike

我想知道当用户与 +/- 缩放按钮交互时,Google map zoom_changed 事件被触发。如果我对 zoom_changed 使用通用事件监听器,我无法判断它是用户生成的事件还是由 fitBounds() 之类的东西引起的缩放更改。寻找最好的方法来做到这一点。

我尝试了以下方法,但似乎都不起作用:

1) 在 zoom_changed 上查找事件信息。似乎没有。

2) 为 mouseover 和 mouseout 添加监听器,让我设置一个标志以查看用户是否在 map 边界内,并检查 zoom_changed 上的标志。这不起作用,因为 map 不会将缩放按钮视为 map 框的一部分(换句话说,将鼠标悬停在缩放按钮上会触发 mouseout 事件)。

3) 向缩放按钮添加一个普通(非 gMap)监听器。但是,我找不到可以让我只抓取按钮的明确 CSS 选择器。

4) 在 gMaps API 中寻找一个函数,它可以让我执行类似 getZoomElements() 的操作,然后我可以使用它来设置监听器。

奇怪的是,如果我向 map 添加自定义控件,我可以清楚地做我想做的事。他们会强制我这样做而不是 Hook 默认缩放控件,这似乎很奇怪。

最佳答案

我不会只连接到 +/- 按钮(或您自己的自定义控件上的按钮)。用户可以使用鼠标滚轮或双击 map 来更改 map 的缩放比例。此外,您将依赖实现细节而不是记录的 API,这是主要禁忌

这真的意味着检测缩放变化的唯一可靠的、记录的方法是听zoom_changed event map

如果您的事件处理程序无法确定事件是来自用户操作还是来自 API 调用,则有两种方法:

  • 在调用 API 函数之前设置一个标志,以便您知道可以忽略此更改。
  • 您能否重新设计您的应用,使缩放更改是来自代码还是来自用户无关紧要?

关于javascript - 如何在 Google map 中收听用户生成的缩放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10097647/

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