【发布时间】:2016-10-06 20:33:53
【问题描述】:
我如何知道用户何时放大或缩小?如果用户在某个级别后缩放,我想开始动画。触发事件zoomstart时是否可以知道这一点?
【问题讨论】:
-
map.on('zoomstart', function(e) { do something }); -
但是我怎么知道是放大还是缩小呢?
标签: leaflet
我如何知道用户何时放大或缩小?如果用户在某个级别后缩放,我想开始动画。触发事件zoomstart时是否可以知道这一点?
【问题讨论】:
map.on('zoomstart', function(e) { do something });
标签: leaflet
我如何知道用户何时放大或缩小?
在每个zoom 级别,计算map.getZoom() 发生了多少变化。
在zoomstart事件触发的时候能知道吗?
没有。
考虑以下场景:用户,使用触摸屏(手机/平板电脑)。
用户将两根手指放在屏幕上。半帧后,其中一根手指向中心移动了几个像素,触发了缩放级别的微小变化。
您的代码捕获紧接着发生的zoomstart 和zoom 事件。 “我知道!” - 您的代码显示 - “用户正在缩小!”。
然后用户开始移动他们的手指越来越宽,放大。你的代码会变得混乱。
但是用户改变了主意,然后出于任何原因开始缩小。然后再进去。然后又出去了。然后他们抬起手指,缩放会捕捉到缩放级别。
这就是为什么当您在 Leaflet 中收听 zoomstart 或 zoom 事件时,您可能不知道最终的缩放级别。
【讨论】:
zoomstart的想法怎么样?
zoomstart,当交互结束时有一个zoomend。
zoom 事件并在地图缩放更高(而不是“等于或高于”)超过您的阈值。