大家好,我是 QGIS 的新手,但我收到了一项为其创建 python 插件的任务。因此,为了完成我的任务,我需要在算法内制作一个层的临时副本,但根据我在网上发现的内容,临时层似乎不想从原始层复制任何功能或属性。
我尝试按如下方式安装代码:
#rest of the code
#Original layer
original_layer = QgsVectorLayer(input_file_path, "Original Layer", "ogr")
#Add the temporary layer to the project
temp_layer = QgsVectorLayer("LineString", "Output_layer", "memory")
QgsProject.instance().addMapLayer(temp_layer)
#Copy features and attributes
features = []
attributes = []
for feature in original_layer.getFeatures():
attribute = feature.attributes()
attributes.append(attribute)
features.append(feature)
temp_layer.startEditing()
data_provider = temp_layer.dataProvider()
data_provider.addAttributes(attributes)
data_provider.addFeatures(features)
temp_layer.commitChanges()
#rest of the code
您好,这里有一段代码可以回答您的问题
layer1 = QgsProject.instance().mapLayersByName('name')[0] ### 获取要复制的图层 layer2 = layer1.clone() ### 使用“clone”复制图层 layer2.setName('name_temporary') ### 重命名第二层
QgsProject.instance().addMapLayer(layer2) ### 将图层添加到您的项目中