Cambia le proprietà di stile di più livelli contemporaneamente?


31

Sto lavorando su dati di massa. Ho alcune centinaia di immagini GeoTIFF importate in un progetto QGIS e mi piacerebbe modificarne le proprietà del livello - cose come il valore senza dati, la trasparenza di alcuni valori di pixel, le assegnazioni delle mappe dei colori ...

Ma non riesco a trovare un modo per applicare queste modifiche a più livelli contemporaneamente, a meno di modificare il file XML con una ricerca e sostituzione globale. C'è un modo per farlo usando la GUI?

Risposte:


45

Nelle versioni correnti di QGIS, è possibile utilizzare Copia stile e quindi Incolla stile dal menu a discesa in alto Livelli (se si dispone di uno o più livelli selezionati nell'elenco dei livelli).


Per alcune versioni precedenti: è possibile selezionare più livelli nell'elenco dei livelli, fare clic con il pulsante destro del mouse e utilizzare Incolla stile dal menu di scelta rapida.

Per altre versioni precedenti:

Il plug-in MultiQML consente di applicare uno stile di layer QGIS a più layer contemporaneamente. Penso che sia il più vicino possibile a quello che stai cercando.


7

Se salvi le opzioni di stile per un layer vettoriale come file .qml, puoi applicarlo su più layer contemporaneamente con il plug-in MultiQML. Fondamentalmente, è una finestra di interfaccia che ti consente di selezionare a quali livelli vuoi applicare lo stile (manualmente o "seleziona tutto"), il pulsante "applica stile" ti consente di selezionare il qml con le informazioni sullo stile.

Informazioni disponibili qui: MultiQML


5

Questo funziona con QGIS 3.4 =>

  1. Crea un gruppo di tutti i livelli che desideri avere lo stesso stile
  2. Modifica lo stile di uno dei livelli nel gruppo a tuo piacimento
  3. Fare clic con il tasto destro del mouse sul livello con stile corretto; 'Stili' -> 'Copia stile' -> 'Simbologia'
  4. Seleziona il gruppo che hai creato prima
  5. Fare clic con il tasto destro del mouse sul gruppo; "Incolla stile"

Questa deve essere la risposta accettata, è veloce ed è facile e funziona ... senza complicate complicazioni nella follia.
Shawty

2

Puoi salvare il tuo progetto, chiudere QGIS, trovare la definizione di stile nel file .qgs del tuo progetto e incollarlo per ogni livello.


1

Ho scritto uno script Python che potrebbe essere utile se si desidera applicare lo stile a tutti i livelli di un gruppo o più. Tutto quello che devi avere è un file .qml salvato con le proprietà che desideri applicare per ogni tipo di livello.

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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.