Tôi có một lớp trong QGIS và tôi muốn sao chép nó thông qua một plugin để tôi có thể sử dụng bản sao của nó theo ý muốn mà không cần sửa đổi bản gốc.
Tất nhiên layer2 = layer1
sẽ không hoạt động, bởi vì mọi thứ xảy ra với layer2 cũng sẽ xảy ra với layer1, vì nó là cùng một đối tượng đằng sau tất cả điều này.
Cách duy nhất tôi tìm thấy để làm điều đó là như vậy:
QgsVectorFileWriter.writeAsVectorFormat(layer1,r"C:\Users\ABC\AppData\Local\Temp\NewLayer.shp","utf-8",None,"ESRI Shapefile")
layer2 = QgsVectorLayer("C:\Users\ABC\AppData\Local\Temp\NewLayer.shp","New vector","ogr")
#do something with layer2
Có một cách đơn giản để nhân đôi layer trong bộ nhớ mà không phải ghi một tập tin mới?