Códigos de ações para qgis
Vou compartilhar dois códigos muito úteis usados em nosso projeto. Se você viu os outros posts, este é mais uma dica de como administrar pelo qgis layers com grande número de dados.
O primeiro código adiciona uma imagem raster com transparência
lyr = qgis.utils. iface.activeLayer()
rlayer = qgis.utils.iface.addRasterLayer(‘//seu endereço/[% “sua coluna” %].jpg’)
qgis.utils.iface.activeLayer()
rlayer.renderer(). setOpacity(0.5)
qgis.utils.iface.setActiveLayer(lyr)
O segundo código faz uma seleção com a introdução de uma variável. Tome cuidado com a identação. Código muito útil quando os layers possuem uma grande quantidade de atributos. Não achei nada pronto, então elaborei este:
PARA O QT4 – QGIS 18
from qgis.core import *
from qgis.gui import *
query = ( ” \”sua coluna\” = ‘{}’ “.format(texto))
layer =qgis.utils.iface.activeLayer()
selection = layer.getFeatures(QgsFeatureRequest().setFilterExpression(query))
layer.setSelectedFeatures([k.id() for k in selection])
qgis.utils.iface.actionZoomToSelected().trigger()
E O MESMO CÓDIGO PARA O QT5 – QGIS 3
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
texto, ok = QInputDialog.getText(None, “Pesquisa”, “Introduza seu SQL: “)
if ok:
query = ( ” \”sua coluna\” = ‘{}’ “.format(texto) )
layer =qgis.utils.iface.activeLayer()
request = QgsFeatureRequest(QgsExpression(query)).setFlags(QgsFeatureRequest.NoGeometry).setSubsetOfAttributes([])
selection = layer.getFeatures(request)
layer.selectByIds([s.id() for s in selection])
qgis.utils.iface.actionZoomToSelected().trigger()