I have seen Duplicating layer in memory using pyqgis? and I would like to do the same but for any active layer in the TOC whether it is a Polygon, Linestring or Point layer.
Is it possible?
This is the code I tried
iface = qgis.utils.iface
vl = iface.activeLayer()
feats = [feat for feat in vl.getFeatures()]
mem_layer = QgsVectorLayer(vl.source(), "duplicated_layer", "memory") mem_layer_data = mem_layer.dataProvider()
attr = layer.dataProvider().fields().toList() mem_layer_data.addAttributes(attr) mem_layer.updateFields() mem_layer_data.addFeatures(feats) QgsMapLayerRegistry.instance().addMapLayer(mem_layer)