1

根据这个代码框,我用来生成反应地图,我已经实现了抽屉插件。在这里,我想删除我添加到地图中的最后一个形状,并创建并显示新地图而不是最后一个形状。有没有这样做的高性能方法?

4

1 回答 1

1

将最后一层存储在create事件中的变量中:

var lastLayer = null;
map.on(L.Draw.Event.CREATED, function (e) {
      var type = e.layerType,
        layer = e.layer;

      if (type === "marker") {
        const { lat, lng } = layer._latlng;
        console.log(lat, lng);
      }

      if (type === "rectangle") {
        const latlngs = layer._latlngs;
        let thisPpp = "";
        latlngs[0].map((item) => {
          return (thisPpp += `LatLng(${item.lat}, ${item.lng}),`);
        });
      }

      lastLayer = layer; // <---------------
      drawnItems.addLayer(layer);
});

然后你可以删除最后一层:

if(lastLayer){
   lastLayer.remove();
}
于 2021-03-21T08:15:30.740 回答