1

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

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

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

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

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

我已经搜索了 API 参考文档和论坛,但无法找到解决方案。

4

1 回答 1

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);
}
于 2014-01-28T19:15:54.303 回答