¿Cómo hacer que una capa o grupo sea invisible en el Panel de capas?

13

Tengo varias capas en el Panel de capas dentro de un grupo, pero no quiero que se muestren (hay muchas, por lo que se ve desordenado). Estas capas también están unidas a varias otras.

¿Es posible hacer que estas capas sean invisibles para el usuario ( es decir, no se muestran en el Panel de capas, no se trata de establecer la visibilidad de la capa ) sino que aún se pueden unir a otras capas? ¿O tal vez hacer invisible al grupo?

Lo más cercano que encontré fue esta publicación, pero con la esperanza de que haya un enfoque más directo:

¿Muestra solo algunas capas en la leyenda de QGIS?

José
fuente

Respuestas:

15

Considero que hacer que las capas / grupos sean 'invisibles' es útil para evitar mostrar tablas de búsqueda, que son necesarias para las relaciones de valor pero que pueden hacer que el Panel de capas parezca un poco sobrecargado.

Solo para aclarar, las capas / grupos invisibles no aparecerán en el Panel de capas, pero aún pueden verse en el lienzo o usarse en uniones / relaciones con otras capas.


RESPONDER:

Use el complemento Invisible capas y grupos , que le permite:

  • Hacer invisibles las capas / grupos seleccionados (botón de complemento).
  • Haga que las capas / grupos (que son invisibles) sean visibles nuevamente (botón de complemento).
  • Almacene capas / grupos de visibilidad en su proyecto QGIS.
  • Recree la visibilidad de capas / grupos al abrir su proyecto QGIS.
  • Hacer invisible una capa particular (por código).
  • Hacer invisible un grupo particular (por código).

Hacer invisible una capa (por código):

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

Hacer invisible un grupo (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: hay un problema que debe tener en cuenta. Si hace que una capa sea invisible y luego mueva su grupo principal, la capa invisible volverá a ser visible (¡no sé por qué!). Por lo tanto, mi recomendación es hacer que solo las capas / grupos superiores sean invisibles (después de todo, no puede mover la raíz).

Germán Carrillo
fuente
Exactamente lo que estaba buscando, muchas gracias por esto! De hecho, tengo varias capas que se utilizan para los cálculos (todas las cuales están unidas a otra capa), por lo que no quiero que el usuario vea o edite estas capas. Entonces su solución resuelve esto en gran medida. Una pregunta, ¿implementaste esto como un complemento recientemente?
Joseph
Correcto, fue publicado hace días. Me había preguntado cómo ocultar capas antes, pero solo después de esta pregunta emprendí la tarea (lo necesitaré en el trabajo tarde o temprano). Pensé en responder con fragmentos de código, pero la respuesta fue lo suficientemente larga como para volverse compleja, por lo que preferí encapsularla en un complemento, que es mucho más fácil de usar.
Germán Carrillo
Bueno, es un gran complemento, así que voté por él :)
Joseph
+1 Un complemento muy útil. Especialmente para mi trabajo, para ser específico en el mapeo de datos en el campo con un Tough Book + QGIS, para evitar un Panel de capa sobrecargado (el desplazamiento lleva tiempo en el campo). Tengo una sugerencia (tal vez para mejorar su complemento (o no)): ¿Podría implementar que el complemento recuerde las capas que ha marcado una vez y volverlas invisibles cuando se presione nuevamente el botón del complemento (hacerlas invisibles)? Para establecer otra selección (capas / grupos) invisible, debe seleccionarlos nuevamente.
Stefan
¡Genial que encuentre útil el complemento! Gracias por su sugerencia, ¿le importaría agregar una nueva Solicitud de función (problema) en GitHub ?
Germán Carrillo