Como tornar uma camada ou grupo invisível no painel Camadas?

13

Eu tenho várias camadas no Painel de camadas dentro de um grupo, mas não quero que elas sejam exibidas (há muito, por isso parece desarrumado). Essas camadas também são unidas a várias outras.

É possível tornar essas camadas invisíveis para o usuário ( ou seja, não mostradas no painel Camadas, não se trata de definir a visibilidade da camada ), mas ainda podem ser unidas a outras camadas? Ou talvez tornar o grupo invisível?

O mais próximo que encontrei foi este post, mas espero que exista uma abordagem mais direta:

Mostrando apenas algumas camadas na legenda do QGIS?

Joseph
fonte

Respostas:

15

Acho que tornar as camadas / grupos 'invisíveis' é útil para evitar mostrar tabelas de pesquisa, que são necessárias para relações de valor, mas podem fazer com que o Painel de camadas pareça um pouco sobrecarregado.

Apenas para esclarecer, camadas / grupos invisíveis não aparecerão no painel Camadas, mas ainda podem ser vistos na tela ou usados ​​em junções / relações com outras camadas.


RESPONDA:

Use o plugin Camadas e grupos invisíveis , que permitem:

  • Tornar invisíveis as camadas / grupos selecionados (botão do plugin).
  • Tornar as camadas / grupos (invisíveis) visíveis novamente (botão do plugin).
  • Armazene a visibilidade de camadas / grupos no seu projeto QGIS.
  • Recrie a visibilidade de camadas / grupos ao abrir seu projeto QGIS.
  • Torne uma camada específica invisível (por código).
  • Torne um grupo específico invisível (por código).

Tornando uma camada invisível (por código):

if 'InvisibleLayersAndGroups' in qgis.utils.plugins:
    ilg = qgis.utils.plugins['InvisibleLayersAndGroups']
    ilg.hideLayer( layer )    # layer is a QgsMapLayer

Tornando um grupo invisível (por código):

if 'InvisibleLayersAndGroups' in qgis.utils.plugins:
    ilg = qgis.utils.plugins['InvisibleLayersAndGroups']
    ilg.hideGroup( group )    # group is a QgsLayerTreeGroup
    ilg.hideGroup( 'group2' ) # You can also pass a group name

Nota: Há um problema que você deve estar ciente. Se você tornar uma camada invisível e depois mover seu grupo pai, a camada invisível ficará visível novamente (não sei por quê!). Portanto, minha recomendação é tornar invisíveis apenas as camadas / grupos superiores (afinal, você não pode mover a raiz).

Germán Carrillo
fonte
Exatamente o que eu estava procurando, muito obrigado por isso! Na verdade, eu tenho várias camadas que são usadas para cálculos (todas juntas a outra camada), então não quero que o usuário veja ou edite essas camadas. Portanto, sua solução resolve isso muito. Uma pergunta, você implementou isso apenas como um plugin recentemente?
317 Joseph
Certo, foi publicado dias atrás. Eu já imaginara como ocultar camadas antes, mas somente após essa pergunta eu assumi a tarefa (precisarei disso no trabalho mais cedo ou mais tarde). Pensei em responder com trechos de código, mas a resposta era longa o suficiente para se tornar complexa, então preferi encapsulá-la em um plug-in, que é muito mais fácil de usar.
Germán Carrillo
Bem, é um ótimo plugin assim votou para ele :)
Joseph
+1 Um plugin muito útil. Especialmente no meu trabalho, para ser específico no mapeamento de dados no campo com um Tough Book + QGIS, para evitar um Painel de Camadas sobrecarregado (a rolagem leva tempo no campo). Tenho uma sugestão (talvez para melhorar seu plugin (ou não)): você poderia implementar que o plugin se lembre das camadas que você marcou uma vez e torná-las invisíveis novamente quando o botão do plugin (torná-las invisíveis) for pressionado novamente? Para definir outra seleção (camadas / grupos) invisível, você deve selecioná-las novamente.
Stefan
Ótimo que você ache o plugin útil! Obrigado pela sua sugestão, você se importaria de adicionar uma nova solicitação de recurso (problema) no GitHub ?
Germán Carrillo