Leaflet 检测是使用传单放大还是缩小

Leaflet 检测是使用传单放大还是缩小,leaflet,Leaflet,我如何知道用户何时放大或缩小?如果用户在某个级别后缩放,我想开始一个动画。触发zoomstart事件时是否可能知道这一点 我如何知道用户何时放大或缩小 在每个zoom级别,计算map.getZoom()的更改量 触发zoomstart事件时是否可能知道这一点 没有 考虑以下场景:用户使用触摸屏(手机/平板电脑) 用户将两个手指放在屏幕上。半帧后,其中一个手指向中心移动两个像素,在缩放级别发生微小变化的情况下触发收缩缩放 您的代码捕获在之后立即发生的zoomstart和zoom事件。“我知道!”-

我如何知道用户何时放大或缩小?如果用户在某个级别后缩放,我想开始一个动画。触发zoomstart事件时是否可能知道这一点

我如何知道用户何时放大或缩小

在每个
zoom
级别,计算map.getZoom()的更改量

触发zoomstart事件时是否可能知道这一点

没有

考虑以下场景:用户使用触摸屏(手机/平板电脑)

用户将两个手指放在屏幕上。半帧后,其中一个手指向中心移动两个像素,在缩放级别发生微小变化的情况下触发收缩缩放

您的代码捕获在之后立即发生的
zoomstart
zoom
事件。“我知道!”-您的代码显示“用户正在缩小!”

然后用户开始将手指移动得越来越宽,放大。你的代码会变得混乱

但是用户改变了主意,然后出于任何原因开始缩小。然后又进来了。然后又出去了。然后他们抬起手指,缩放捕捉到缩放级别


这就是为什么当您在传单中收听
zoomstart
zoom
事件时,您不能知道最终的缩放级别是什么。

map.on('zoomstart',函数(e){do something})
但是我怎么知道是放大还是缩小?好的,每次用户改变方向时启动
zoomstart
怎么样?不。语义很清楚:当交互开始改变缩放级别时,会有一个
zoomstart
,当交互结束时,
zoomend
。如果您想«如果用户在某个级别后缩放,则启动动画»,请依赖
zoom
事件,并在地图缩放更高时触发内容(而不是“等于或更高”)是否可以取消zoomstart上的缩放事件?如果当前缩放值是浮点值,我很乐意收到通知以获取当前缩放值。我也会应用“正在进行”的缩放级别。