Copying attributes from point layer to memory linestring layer PYQGIS

المشرف العام

Administrator
طاقم الإدارة
I've stacked a little bit with copying attributes.

I have a Point Layer created from .csv file. For each feature in this layer, I'm creating a new Polyline geometry in memory layer. Cannot add attributes from Point layer to newly created Polyline.

Here's my code:

#mcvLayer - Point Layer nl = Create_layer("New_line", "LineString") nl.show_layer hh = iface.activeLayer() a = QgsPoint(0,0) # Here will be another point for point in mcvLayer.dataProvider().getFeatures(): pattrs = point.attributes() pgeom = point.geometry().asPoint() nl.create_line(a, pgeom, pattrs) class Create_layer(object): def __init__(self,name,type): self.type = type self.name = name self.layer = QgsVectorLayer(self.type, self.name, "memory") self.pr = self.layer.dataProvider() def create_line(self, startpoint, endpoint, attributelist): self.feat = QgsFeature() self.feat.setGeometry(QgsGeometry.fromPolyline([startpoint,endpoint])) self.pr.addFeatures([attributelist]) self.layer.updateExtents() But all I get is:

TypeError: QgsVectorDataProvider.addFeatures(list-of-QgsFeature) -> (bool, list-of-QgsFeature): argument 1 has unexpected type 'list'

I'm using QGIS 2.8.1



أكثر...
 
أعلى