在QGIS中的图层之间复制粘贴矢量属性和特征

问题描述 投票:0回答:1

大家好,我是 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
python qgis pyqgis
1个回答
0
投票

您好,这里有一段代码可以回答您的问题

layer1 = QgsProject.instance().mapLayersByName('name')[0] ### 获取要复制的图层 layer2 = layer1.clone() ### 使用“clone”复制图层 layer2.setName('name_temporary') ### 重命名第二层

QgsProject.instance().addMapLayer(layer2) ### 将图层添加到您的项目中

© www.soinside.com 2019 - 2024. All rights reserved.