如何将图层设置为已编辑以调用 draw:edited

How to set a layer as edited to call draw:edited

我正在尝试使用 Leaflet.Draw 在地图上手动创建标记。 当我在 draw:created 处理程序中添加带有 Leaflet.Draw 的标记时,我想打开一个创建表单的弹出窗口。

远离这里,一切正常,我可以处理并在数据库中保存该弹出窗口和标记的创建。

这里的转折点是我想编辑它的时候:

我点击编辑按钮,它使标记可编辑,我点击它打开带有表单的弹出窗口。我更改了弹出窗口中的消息,单击将调用 draw:edited 处理程序的编辑工具栏保存按钮。

不幸的是,我的标记没有移动,因此不被视为编辑图层。

如何将该标记设置为 "Edited" 以被 draw:edited 处理程序视为已编辑,即使它没有移动?

事实上,这些处理程序是如何工作的?

查看 Leaflet.Draw 源代码,它将 dragend 事件挂接到这样的标记上

_onDragEnd: function (e) {
        var layer = e.target;
        layer.edited = true;
        this._map.fire(L.Draw.Event.EDITMOVE, {layer: layer});
    }    

您可以在代码中设置 layer.edited 属性(其中 layer 是您的标记)。