【问题标题】:GoogleMaps API V3 Polygon dblclick auto-completeGoogleMaps API V3 多边形 dblclick 自动完成
【发布时间】:2013-05-18 23:33:21
【问题描述】:

我使用 GoogleMaps Javascript API V3 创建了一个绘图系统,它允许用户绘制和保存多边形。

我收到了一些关于自动完成绘图的投诉,因为在使用多边形绘图工具手动绘制点时意外双击。因此,我希望禁用此 dblclick 自动完成功能,以便只有在用户再次单击第一个点后才能完成绘图。

我已尝试从地图中取消绑定 dblclick 事件,并尝试通过在双击时抛出错误来停止传播 dblclick 事件,如下所示(只是为了测试事件调用)。

google.maps.event.addListener(map, 'dblclick', function(){
     throw("stop");
});

这成功地在双击时停止了缩放功能,但是在绘制点时 dblclicking 时仍然会发生自动完成(未触发此侦听器)。我什至尝试停止在整个页面上传播任何双击事件,但都无济于事。任何人都可以建议一种解除绑定此 dblclick 事件的方法,或替代解决方案来防止 dblclick 自动完成吗?

我搜索了 API 参考文档和论坛,但未能找到解决方案。

【问题讨论】:

    标签: google-maps autocomplete polygon


    【解决方案1】:

    完成后添加编辑按钮!

    在“overlaycomplete”上将多边形保存到数组中(同时添加编辑按钮)

    var polyArray = [];
    
    google.maps.event.addListener(drawingManager, 'overlaycomplete', function(e) {
        this.setDrawingMode(null);
        var shape   = e.overlay;
        shape.type  = e.type;
    
        polyArray.push(shape);
    
            shape.addListener('click', function(evt){
                if (evt.vertex != null && this.getPath().getLength() > 3) {
                    this.getPath().removeAt(evt.vertex);
                }
            });
          });
    

    编辑功能:

    function editFeature(id, action){
    
        var shape = polyArray[id];
    
        if(action) shape.setEditable(true);
              else shape.setEditable(false);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 2012-04-08
      • 1970-01-01
      • 1970-01-01
      • 2012-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多