6 votos

PyQgis sobrescribir archivo de forma y agregando capa en Qgis

Estoy creando un shapefile en python:

driver = ogr.GetDriverByName('ESRI Shapefile')
datasource = driver.CreateDataSource('c:/temp/toke2.shp')
layer = datasource.CreateLayer('layerName',geom_type=ogr.wkbLineString)

Si el archivo toke2.shp no existe, será creado. Si existe, que no se puede ejecutar este código y sobrescribir el archivo antiguo. Necesito una función para sobrescribir o eliminar la función. Corro de Qgis en el modo de administración.

Mi otro problema es cuando quiero agregar el shapefile de Qgis por:

vlayer = QgsVectorLayer("c:/temp/toke2.shp", "toke2", "ogr")
QgsMapLayerRegistry.instance().addMapLayer(vlayer)

Si puedo agregar el archivo en Qgis por "Capa > añadir capa vectorial", funciona bien. Cuando yo uso el código en la consola de python en Qgis también funciona bien. Pero si yo uso este código en mi plugin se agrega el archivo a Qgis, pero está vacía. Así que por alguna razón no se le añade los puntos de datos en el archivo, es sólo la adición de un vacío shapefile.

En mi plugin que importar este:

 from osgeo import ogr
 from osgeo import osr
 import math
 from PyQt4.QtCore import *
 from PyQt4.QtGui import *
 from qgis.core import *
 import qgis.utils
 import resources_rc

¿Alguien tiene una solución a estos problemas?

6voto

Munez B.N Puntos 31

Se Compruebe la existencia de un fichero y elimine con:

1voto

Bobbi Bennett Puntos 907

Hizo trabajar con memoria para crear una capa en lugar de hacer un archivo shp.

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