Leaflet geoman setLatLngs 没有将对象恢复到 getLatLngs 位置

Leaflet geoman setLatLngs not restoring object to the getLatLngs position

我有一个问题,当 leaflet geoman 删除多边形上的一个顶点时,我无法恢复对象的 latLngs。

我在做什么: 在对象上单击 -> object.getLatLngs()。工作正常。

如果我开始编辑对象然后 object.setLatLngs(ObjectClickLatLngs) 它工作正常。

但问题是:单击对象 -> 开始编辑 -> 右键单击​​顶点(删除顶点) -> object.setLatLngs(ObjectclickLatLngs)。现在顶点被删除并且没有恢复到它以前的 latLngs。

尝试单击多边形,更改顶点,然后单击“将对象恢复到初始位置”(按预期工作) 然后单击多边形,但在不移动顶点的情况下右键单击(删除)然后单击“将对象恢复到初始位置”(现在对象不处于应有的状态,希望它恢复到与初始位置相同的位置)

https://jsfiddle.net/6tzxg2ds/2/

问题是 JavaScript 将变量引用到源,所以当图层的 latlng 发生变化时,restoreLatLngs 也会更新。

你可以用这个“破坏”引用:

restoreLatLngs = JSON.parse(JSON.stringify(x.target.getLatLngs()));