javascript - 在传单中编辑多边形后如何获取修改后的和原始的geojson点?

标签 javascript leaflet

我创建了一个 geojson 功能。编辑后,我知道有一个draw:edited事件。如何获取多边形组成的原始点,是否可以获取新的多边形点?如何?是否可以知道哪些顶点被更改或添加?

我尝试了以下方法,但都不起作用:

map.on('draw:edited', function (e) {
  var type = e.layerType;
  var layer = e.layer; // this is giving undefined errors

  var shape = layer.toGeoJSON() // this is undefined
  var shape_for_db = JSON.stringify(shape);
});

最佳答案

L.Map上触发的draw:created事件返回一个L.LayerGroup作为e.layers ,其中包含刚刚编辑过的所有功能。这是因为您可以在按保存按钮之前一次编辑多个功能。您可以迭代L.LayerGroup,然后获取GeoJSON:

map.on('draw:edited', function (e) {
    e.layers.eachLayer(function (layer) {
        console.log(layer.toGeoJSON());
    });
});

关于javascript - 在传单中编辑多边形后如何获取修改后的和原始的geojson点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35764790/

相关文章:

javascript - 当父级溢出隐藏时绝对定位 UL

javascript - 以 native 上传视频

javascript - 传单:如何模拟鼠标点击? fireevent ('click' ) 不触发弹出窗口

javascript - 更改折线选项传单

javascript - 传单删除以前的折线

r heatmap - stat_密度2d (ggmap) 与 addHeatmap ( Shiny 的传单)

javascript - 将对象数组拆分为 2 小时跨度组

javascript - 如何使用 Angular 打开模式(没有 ui Bootstrap )?

javascript - 使用 svg 作为使用 leaflet.js 的 map

javascript - 将 OR 分割字符串数组转换为数组的各个组