Hi Pierluigi, Are you sure the creation of the geometry is ok?
Because your code with some hardcoded values in it, just works in my python console: vl = QgsVectorLayer("LineString", "braiding_river", "memory") pr = vl.dataProvider() # add fields pr.addAttributes([ QgsField("reach", QVariant.String), QgsField("braiding", QVariant.Double), QgsField("Length", QVariant.Double)]) vl.updateFields() print(f"{vl.isValid()=}") feat_list=[] fet = QgsFeature() fet.setGeometry(QgsGeometry.fromWkt('LINESTRING (30 10, 10 30, 40 40)')) fet.setAttributes([ 'test', 2, 2]) print(f"{fet.isValid()=}") feat_list.append(fet) (result, newFeatures) = pr.addFeatures(feat_list) print(f"{result=}") print(newFeatures) Regards, Richard Duivenvoorde On 4/4/24 9:58 AM, pierluigi de rosa via QGIS-Developer wrote:
vl = QgsVectorLayer("LineString", "braiding_river", "memory") vl.setCrs(crs) pr = vl.dataProvider() # add fields pr.addAttributes([ QgsField("reach", QVariant.String), QgsField("braiding", QVariant.Double), QgsField("Length", QVariant.Double)]) vl.updateFields() feat_list=[] then I populate the layer where inside a for cycle I have fet = QgsFeature() fet.setGeometry(QgsGeometry.fromPolylineXY(reach)) #reach is a list of QgsPointXY fet.setAttributes([ str(breakval), brIndex, lenReach]) feat_list.append(fet) Outside for cycle I do: (result, newFeatures) = pr.addFeatures(feat_list) But I have always result to False so the feature is not added.
_______________________________________________ QGIS-Developer mailing list QGIS-Developer@lists.osgeo.org List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer