49 votos

¿Puedo cambiar las propiedades de varias capas simultáneamente?

Estoy trabajando con datos a granel. Tengo unos cientos de imágenes GeoTIFF importadas en un proyecto QGIS, y me gustaría modificar sus propiedades de capa - cosas como el valor de no-datos, la transparencia de ciertos valores de píxeles, asignaciones de mapas en color...

Pero no encuentro la forma de aplicar estos cambios a varias capas a la vez, a menos que se edite el archivo XML con una búsqueda y sustitución global. ¿Hay alguna manera de hacer esto usando la interfaz gráfica?

54voto

tobes Puntos 19

En las versiones actuales de QGIS, puede utilizar Copiar estilo y luego Pegar estilo desde el menú desplegable superior Capas (si tiene una o más capas seleccionadas en la lista de capas).


Para algunas versiones anteriores: Puede seleccionar varias capas en la lista de capas, hacer clic con el botón derecho y utilizar Pegar estilo en el menú contextual.

Para otras versiones anteriores:

El plugin MultiQML permite aplicar un estilo de capa QGIS a varias capas a la vez. Creo que eso es lo más parecido a lo que buscas.

1 votos

No me funciona en QGIS 3.10, Paste Style sólo pega el estilo en la última capa de la selección. Agrupar desde Respuesta de GISinHelsinki lo hace.

42voto

Dan Bach Puntos 1

Esto funciona para QGIS 3.4 =>

  1. Crea un grupo con todas las capas que quieras que tengan el mismo estilo
  2. Edita el estilo de una de las capas del grupo a tu gusto
  3. Haga clic con el botón derecho en la capa con el estilo correcto; Estilos -> Copiar estilo -> Simbología
  4. Seleccione grupo que creó antes de
  5. Haz clic con el botón derecho del ratón en el grupo; Estilo de pegado

1voto

Chuck Wilbur Puntos 1032

Escribí un script en python que puede ser útil si quieres aplicar estilo a todas las capas de un grupo o más. Todo lo que necesita tener es un archivo .qml guardado con las propiedades que desea aplicar para cada tipo de capa.

from qgis.core import *
import os
#copy line 9-21 and change file names and group names if you have more groups

QML_file = ('yourqmlfile.qml')#insert path to qml file 
#add other qml files if you want to change style for more groups

def applystyle_group(name):
    root = QgsProject.instance().layerTreeRoot()
    point = root.findGroup(name) #Find Group
    for child in point.children():
        if isinstance(child, QgsLayerTreeLayer):
            if child.layer().type()==0:
                child.layer().loadNamedStyle(QML_file)#change the file name accordingly
                #you can add styles for other types of layers in the same group (line, point and polygon)

try: #If group is not present this will keep script running if you want to add more
    applystyle_group("*")#insert name of QGIS group
except Exception:
    pass

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X