Estou implementando uma ferramenta que permite ao usuário criar um perfil de um recurso (no meu caso, parcelas urbanas). É possível capturar automaticamente uma captura de tela desse recurso (exibida em uma janela QGIS) e exibi-la no perfil PDF?
A imagem deve mostrar apenas a extensão do recurso e talvez uma camada WMS que esteja além do recurso. Já existem algumas ferramentas que você poderia sugerir?
Respostas:
kopi,
Existem várias abordagens para uma solução, mas essa pode ser uma das mais simples (dependendo das suas necessidades):
Selecione o recurso usando QgsVectorLayer
Supondo uma referência à sua camada vetorial (vlayer) e ao ID do recurso (fid). Veja também
Aplicar zoom ao recurso selecionado usando QgsInterface
Desmarque o recurso usando QgsVectorLayer
Salvar tela como imagem usando QgsMapCanvas
Essa abordagem produz uma foto a maior possível, se sua janela for expandida para cheia, porque o salvamento da tela está na resolução da tela. No entanto, isso não garante que suas fotos tenham a mesma escala de zoom do mapa, apenas relativamente o mesmo tamanho de pixel. Existem outras opções, como
QgisInterface::actionPanToSelected()
se você precisar manter a escala de zoom consistente.fonte
qgis.utils.iface.mapCanvas().zoomScale(scale)
definir a escala do mapa. actionPanToSelected () não aceita um parâmetro, mas retorna uma referência à própria ação (como actionZoomToSelected () acima). Use seu slot públicoqgis.utils.iface.actionPanToSelected().trigger()
para disparar a ação, que resolverá descobrir o que está selecionado.