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