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:
أكثر...
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
أكثر...