Leaflet.draw-当圆或多边形的版本结束时触发事件吗?

时间:2018-09-20 17:42:33

标签: events leaflet shapes leaflet.draw

我正在使用Leaflet.draw v 1.0.3

这是我的基本情况:

我从数据库中加载了用户先前创建的所有形状(仅多边形或圆形)。
这些形状是可编辑的。

但是,我找不到在编辑结束时触发的EditedEditedComplete事件。我的目标是获取新坐标(如果是圆,则为半径和中心,或者每个多边形顶点的纬度/经度)并将其存储在我的数据库中。
显然,编辑过程结束后,我只需要执行一次更新操作。

我只发现了:

  • L.Draw.Event.EDITRESIZE,但它是在调整大小过程中触发的,而不是在结束时触发的。
  • L.Draw.Event.EDITMOVE,但它是在移动过程中触发的,而不是在结束时触发的。

事件L.Draw.Event.EDITED存在,但在预期时不会触发。

我猜这些事件确实存在,但是我找不到它们。我只找到了this issue,这让我很担心...
有帮助吗?

1 个答案:

答案 0 :(得分:0)

我遇到了相同的问题,并通过以下操作解决了该问题:

创建图层(圆形/多边形)后,我在创建的图层上添加了一个编辑侦听器:

map.on(L.Draw.Event.CREATED, function(e) {
    var type = e.layerType
    , layer = e.layer;
    drawnItems.addLayer(layer);       
    layer.on("edit", function(event) {
        console.log("layer edited !");
        ..........
    });
});

您可以看一下以下示例:

http://jsfiddle.net/Zoubir/oer03zu4/ 为了检查:创建一个多边形或圆形并进入编辑模式,更新半径并查看

我希望这可以帮助