12 votos

Generación de una capa vectorial no válida en QGIS

Necesito una capa inválida para probar un plugin en QGIS. En la ventana del plugin, selecciono una capa del combobox. Por lo tanto, la capa no válida debe estar en Layers panel. Busco en google un rato pero no encuentro la forma de generar una capa vectorial inválida.

¿Cómo puedo generar una para que layer.isValid() devuelve False ?

0 votos

¿Has probado con líneas autocruzadas, polígonos? Véase también aquí (al final del párrafo): docs.qgis.org/3.10/es/docs/user_manual/plugins/core_plugins/

0 votos

@babel, ¿No crea una geometría inválida en lugar de una capa inválida?

0 votos

Vale, probablemente tengas razón. ¿Podrías crear cualquier tipo de geopackage, abrirlo en un editor de texto, añadir o eliminar algunos caracteres, haciéndolo inválido? No estoy seguro de que sea eso lo que quieres.

14voto

Anton8000 Puntos 165
  • Proporcionar una ruta inválida la convierte en inválida: layer = QgsVectorLayer("zxcxzcxc/home/bera/GIS/Data/testdata/ak_riks.shp", "testlayer_shp", "ogr")
  • O un providerlib que no existe: layer = QgsVectorLayer("/home/bera/GIS/Data/testdata/ak_riks.shp", "testlayer_shp", "O G R") , debe ser "ogr"

A continuación, añada layer al proyecto:

QgsProject.instance().addMapLayer(layer)

enter image description here

5voto

nitinsavant Puntos 6

Utilizando QgsVectorLayer sin parámetros genera una capa vectorial no válida.

layer = QgsVectorLayer()
print(layer)
# OUT:
# <QgsVectorLayer: '' (Invalid)>

QgsProject.instance().addMapLayer(layer)

enter image description here

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