leaflet - Leaflet geoman setLatLngs 未将对象恢复到 getLatLngs 位置
问题描述
我有一个问题,当传单 geoman 删除例如多边形上的顶点时,我无法恢复对象的 latLngs。
我在做什么:在对象上单击 -> object.getLatLngs()
。工作正常。
如果我开始编辑对象然后object.setLatLngs(ObjectClickLatLngs)
它工作正常。
但问题是:单击对象-> 开始编辑-> 右键单击顶点(删除顶点)-> object.setLatLngs(ObjectclickLatLngs)
。现在顶点被删除并且没有恢复到之前的纬度。
尝试单击多边形,更改顶点然后单击“将对象恢复到初始位置”(按预期工作)然后单击多边形,但右键单击顶点(删除)而不移动它,然后单击“将对象恢复到初始位置”(现在对象不在应有的状态,预计它会恢复到与初始相同的位置)
解决方案
问题是 JavaScript 将变量引用到源,所以当层的 latlng 改变时,restoreLatLngs
也会更新。
你可以用这个“摧毁”参考:
restoreLatLngs = JSON.parse(JSON.stringify(x.target.getLatLngs()));
推荐阅读
- ruby-on-rails - Faye 请求不安全的脚本
- java - Java字符串索引越界,CharAt问题
- java - 如何进行从瘦客户端到 WebSphere Liberty 的远程 EJB 调用
- angular - 使用自己库中的模块组件时出错
- postgresql - 检查 go sqlx 的 where 子句中的参数是否为空
- javascript - 如何在 Laravel 中修改 Vue.js 包?
- python - Docker - Tkinter:无法连接到显示器
- ios - Core ML 在保存更新的模型时使用了过多的内存
- reactjs - 如何在 React 中渲染对象数组
- android - 我如何在 android 启动时只显示三个选项卡项