Como definir a transparência para várias camadas ou adicionar uma preferência de transparência global?

8

Como posso definir a transparência para 27% para todas as 245 camadas no QGIS? A única maneira que conheço é clicando com o botão direito do mouse no nome da camada, selecionando Propriedades, Transparência e movendo o controle deslizante de transparência para a esquerda ou direita.

uma

Isto é bastante simples. Mas isso só é bom para até 10 camadas, talvez. E se você tiver 245 camadas como eu? Você continua repetindo o processo? Agora, certamente, deve haver uma maneira de aplicar isso a todas as 245 camadas de uma vez !?

b

Como alternativa, posso adicionar uma configuração de preferência de transparência global para que, ao adicionar novas camadas, elas obtenham automaticamente 27% de transparência?

A documentação on-line do QGIS menciona algo sobre como exportar sua configuração de transparência para um arquivo para uso posterior.

Como você pode ver, é muito fácil definir transparência personalizada, mas pode ser bastante trabalhoso. Portanto, você pode usar o botão Exportar para arquivo para salvar sua lista de transparência em um arquivo. O botão Importar do arquivo carrega suas configurações de transparência e as aplica à camada raster atual.

Este parece ser um recurso útil. Mas acho que não é isso que estou procurando.

Tentei selecionar várias camadas no sumário e, em seguida, clique com o botão direito do mouse e selecione Propriedades e defina o nível de transparência, aplique as alterações e clique em OK. Ele aplicou as alterações, mas apenas na última camada da seleção, na qual clicamos com o botão direito. Nenhuma das outras camadas da seleção foi afetada. (Na verdade, isso pode ser um bug.)

Samir
fonte

Respostas:

8

Um pequeno script python como este faria isso

for layer in iface.legendInterface().layers():
   layer.renderer().setOpacity(0.2)

Apenas copie e cole isso no console python (que é mostrado via Plugins-> console Python) e pressione enter duas vezes. O script percorrerá todas as camadas e definirá sua opacidade para 20%.

ndawson
fonte
É possível fazer o mesmo quando você também possui camadas vetoriais? Como o faz apenas para camadas selecionadas ou para camadas dentro de um mesmo grupo?
Victor
isso não parece mais trabalhar em 2.8.2, i ver um rendererV2 nos docs em vez de processador, mas não tem o método setOpacity :(
chrismarx
i ver este bilhete que possa sugerir grupos de camadas poderia fazer isso, mas eu não vejo como qualquer um - trac.osgeo.org/qgis/ticket/557
chrismarx
Para o GQIS3, substitua a primeira linha w: for layer in [layer for layer in QgsProject.instance().mapLayers().values()]:por isso: gis.stackexchange.com/questions/273576/…
andrew
4

Outra opção, que não requer python, é simplesmente editar o arquivo do projeto.

A transparência da camada raster é definida com: rasterrenderer opacity = "1"

Você pode abrir o arquivo de projeto .qgs em um editor de texto e localizar e substituir: rasterrenderer opacity = "1" Com: rasterrenderer opacity = "0,73"

HeikkiVesanto
fonte
3

A maneira mais fácil de fazer isso é usando estilos de camada. Basta definir a transparência de uma única camada para 27% e copiar / colar o estilo para todas as outras camadas. Você pode colar um estilo em várias camadas ao mesmo tempo.

Veja também:

http://hub.qgis.org/issues/14931

eclipsed_by_the_moon
fonte
não, porque isso copiará tudo o resto, incluindo as simbologias / cores / extensões de exibição.
Theo F
Resposta subestimada! Funciona perfeitamente quando trabalhamos apenas com transparência
Eliasse