Hace unos días Cy T publicó una interesante pregunta sobre la creación de capas virtuales utilizando la consola de Python:
¿Crear una nueva capa virtual de forma programada en QGIS?
¿Es posible también crear capas virtuales a través de la caja de herramientas de procesamiento?
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# ----- define interface -----
##Virtual Layers=group
##Point on surface (ST_PointOnSurface)=name
##Input_polygons=vector
from qgis.core import QgsVectorLayer, QgsMapLayerRegistry
inptlyr = processing.getObject(Input_polygons)
vlayer = QgsVectorLayer( "?query=SELECT rowid AS gid,ST_PointOnSurface(geometry)AS geom FROM inptlyr.name()", "vlayer", "virtual" )
QgsMapLayerRegistry.instance().addMapLayer(vlayer)
El registro dice Algorithm Point on surface (ST_PointOnSurface) finished
pero no pasa nada.
Editar: ?query=
añadido
1 votos
Tal vez un
?query=
¿falta? Quiero decir, ¿cambia algo usando?query=SELECT
?0 votos
Culpa mía, ahora QGIS se bloquea al ejecutar el script.