5 votos

¿Crear una copia vacía de la capa activa en PyQGIS?

Estoy tratando de crear una copia vacía de una capa determinada, por lo que no sólo los objetos de tablestructure, crs, etc.

from qgis.utils import *
layer = qgis.utils.iface.activeLayer()
print layer.name()                           
provider = layer.dataProvider()
print provider.fields()[0].name()
writer1 = QgsVectorFileWriter("d:/temp/qgis/test3.shp", 
                              "CP1250", 
                              provider.fields(), 
                              provider.geometryType(), 
                              provider.crs(), 
                              "ESRI Shapefile")

Cuando abro el archivo creado (test3) no hay tablestructure, crs. etc.

El script se ejecute en el segundo tiempo con test3 todavía abierto, funciona.

Obviamente me olvido de algo .

enter image description here


Otra buena solución que he encontrado más tarde: http://gis.stackexchange.com/q/156096/67332/

lo carga en la memoria de la capa.

4voto

bretddog Puntos 210

He probado en la consola QGIS con QGis 2.14.15 y se ejecutan en el mismo problema.

El arreglo es simple, usted acaba de faltar un paso. Debe restablecer la Variable writer1 .

Lo hice con writer1 = None que creó el archivo como se esperaba

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X