Leaflet 检测zoomIn或Zoomouton';zoomstart';

Leaflet 检测zoomIn或Zoomouton';zoomstart';,leaflet,Leaflet,我写了一个函数,在zoomstart上,(应该)做一些事情1,如果我缩放并在缩放时做一些事情2: 'var prevzoom = map.getZoom; map.on('zoomstart', do_something); function do_something(e){ var currzoom = map.getZoom(); var diff =

我写了一个函数,在zoomstart上,(应该)做一些事情1,如果我缩放并在缩放时做一些事情2:

            'var prevzoom = map.getZoom;

            map.on('zoomstart', do_something);
            function do_something(e){

                var currzoom = map.getZoom();
                var diff = currzoom - prevzoom;
                if(diff > 0){do_something1}
                else {do_something2}
                prevzoom = currzoom;'
其行为如下: 1) 加载时,如果我将其移动,则会执行某些操作2(第二次、第三次也是如此) 2) 加载时,如果我缩放它做某事2(不正确),但它做某事1的第二,第三。。。时间等等。。。 3) 当我第一次从ZoomIn切换到ZoomOut和viceversa时,它的行为与前一次相同,并且在第二次、第三次……以相同方式(即向内或向外)缩放时,它的行为正确

我在“使用传单检测是否放大或缩小”的帖子中读到,当触发事件zoomstart时,不可能知道是否放大或缩小。 在我的情况下,它似乎在大部分时间都有效(这无论如何都不好)。 我错过了什么/做错了什么? 我不懂编码:谢谢你的帮助。
Giuseppe

检查curzoom和prevzoom-问题是它们有时是相等的吗?我只是在zoomstart上使用currzoom,希望它能检测到我是为了做某事还是为了做某事而缩放。。不管怎么说,如果我开始僵化,它就会起作用。如果我用diff>=0更改diff>0,则会出现相同的行为……即当我缩放时,即使currzoom等于prevzoom,它也会做一些事情1,但它不会。请参见:“例如,当你开始用手指在手机上捏地图时,
zoomstart
应该触发,但你不知道你会在哪里结束。”