Leaflet-Draw: 在'draw:editvertex'事件中获取多边形的经纬度信息

7
当触发draw:editvertex事件时,如何获取与其相关的多边形信息?
this.map.on('draw:editvertex', function (e) { debugger;
    var layers = e.layers;
    // I want to get current polygon latLng here
}.bind(this));
2个回答

3
这种方法对我有效(但不是最佳实践)- 在我的draw:editvertex处理程序中,我循环遍历target._layers并查找edited属性。
map.on('draw:editvertex', function(e) {
    for (thisLayer in e.target._layers) {
        if (e.target._layers.hasOwnProperty(thisLayer)) {
            if (e.target._layers[thisLayer].hasOwnProperty("edited")) {
                console.log("we think we found the polygon?");
                console.log(e.target._layers[thisLayer]);

                // the updated Polygon array points are here:
                newPolyLatLngArray = e.target._layers[thisLayer].editing.latlngs[0];
            }
        }
    };
});

就像我之前说的那样,这感觉并不太棒,但到目前为止它对我有用。


1

e 中不仅有 layers,而且目标层 poly 也可以轻松接近。

map.on('draw:editvertex', function (e) { 
  var poly = e.poly;
  var latlngs = poly.getLatLngs(); // here the polygon latlngs
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接