[Qgis-user] How to define generic VectorFileWriter

Reginald Reginald.Carlier at ingelmunster.be
Fri Dec 21 01:03:31 PST 2018


Hi,

I'm trying to implement a way to copy the geometry of selected parcels to an
editable layer in a qgs project.
I'm using QGIS 3.4.2.

My code looks like this:

from qgis.PyQt.QtCore import *
from qgis.core import WKB

perceellayer=None
editlayer=None
layers = [layer for layer in QgsProject.instance().mapLayers().values()]
for lyr in layers:
    if lyr.name() == "Adpf1836007":
        perceellayer = lyr
    if lyr.type() == QgsMapLayer.VectorLayer:
        cap = lyr.dataProvider().capabilities()
        if cap & QgsVectorDataProvider.AddFeatures:
            editlayer = lyr
percelen = []
features = perceellayer.selectedFeatures()
geom = None
for f in features:
    if geom == None:
        geom = f.geometry()        
    else:
        geom = geom.combine(f.geometry())       

velden = editlayer.fields()
fpad = editlayer.dataProvider().dataSourceUri()
feat = QgsFeature(velden)
feat.setGeometry(geom)
fout = QgsVectorFileWriter.writeAsVectorFormat(editlayer, fpad, "31370",
WKB.Polygon, "ESRI Shapefile")
if fout == QgsVectorFileWriter.NoError:
    print("succes")
print("done")

In this example I try to write to a shapefile, but it fails complaining it
can not import WKB. I would like to write to any kind of Vectorfile
depending of the vectorfile that was set writeable. Any ideas on how to do
this? The cookbook is kind of short concerning writing features.

Regards,



--
Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-User-f4125267.html


More information about the Qgis-user mailing list