【问题标题】:Google Map Editable Polygon Filter Drag event from set_at events谷歌地图可编辑多边形过滤器从 set_at 事件拖动事件
【发布时间】:2013-11-11 22:15:33
【问题描述】:

我有一个可编辑的多边形,我想在拖动顶点时监听事件(多边形调整大小)。通常将路径附加到“set_at”事件是好的,但是当整个多边形被拖动时它会触发很多事件。

google.maps.event.addListener(polygon, 'dragend', function(){search();});
google.maps.event.addListener(polygon.getPath(), 'insert_at', function(e, e1){search();});
google.maps.event.addListener(polygon.getPath(), 'remove_at', function(e, e1){search();});
//this also fires a lot of events when ploygon is dragged
google.maps.event.addListener(polygon.getPath(), 'set_at', function(){search();});

我想要实现的是有一个类似于“shape_changed”的事件,它在拖动时不会触发事件。

【问题讨论】:

    标签: javascript google-maps events polygon drag


    【解决方案1】:

    另一种选择是在 dragstart 和 dragend 设置一个标志,并让您的 set_at 侦听器在执行任何操作之前查看该标志:

        polygon.addListener('dragstart', function (event) {
            dragging = true;
        });
    
        polygon.addListener('dragend', function (event) {
            //do drag end stuff here
            dragging = false;
        });
    
        //setup resize handler  
        var paths = polygon.getPaths();
        paths.forEach(function (path) {
            path.addListener('set_at', function (event) {
                if (!dragging) //ignore this event while dragging
                    //do resize stuff here
            });
        });
    

    【讨论】:

      【解决方案2】:

      删除dragstart 上的set_at-listener 并重新分配dragend 上的set_at-listener

      【讨论】:

        猜你喜欢
        • 2018-04-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-28
        • 2013-08-29
        • 1970-01-01
        • 1970-01-01
        • 2014-12-04
        相关资源
        最近更新 更多