【问题标题】:How can I remove last shape layer when creating new one in lefalet在传单中创建新形状图层时如何删除最后一个形状图层
【发布时间】:2021-03-21 02:26:36
【问题描述】:

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

【问题讨论】:

    标签: reactjs leaflet leaflet-draw react-leaflet-draw


    【解决方案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();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-06
      • 1970-01-01
      • 2018-04-22
      • 1970-01-01
      • 1970-01-01
      • 2019-01-08
      相关资源
      最近更新 更多