Stileigenschaften mehrerer Ebenen gleichzeitig ändern?

31

Ich arbeite an Massendaten. Ich habe ein paar hundert GeoTIFF-Bilder in ein QGIS-Projekt importiert und möchte deren Ebeneneigenschaften ändern - zum Beispiel den Wert ohne Daten, die Transparenz bestimmter Pixelwerte, Zuweisungen von Farbzuordnungen ...

Es scheint mir jedoch nicht möglich zu sein, diese Änderungen auf mehrere Ebenen gleichzeitig anzuwenden, ohne die XML-Datei mit einem globalen Suchen und Ersetzen zu bearbeiten. Gibt es eine Möglichkeit, dies über die GUI zu tun?

Kay F. Jahnke
quelle

Antworten:

44

In aktuellen Versionen von QGIS können Sie im Dropdown-Menü Ebenen oben die Option Stil kopieren und dann Stil einfügen verwenden (wenn eine oder mehrere Ebenen in der Ebenenliste ausgewählt sind).


Für einige ältere Versionen: Sie können mehrere Ebenen in der Ebenenliste auswählen, mit der rechten Maustaste klicken und im Kontextmenü den Befehl Stil einfügen verwenden.

Für andere ältere Versionen:

Mit dem MultiQML-Plugin können Sie einen QGIS-Ebenenstil auf mehrere Ebenen gleichzeitig anwenden. Ich denke, das ist so nah wie möglich an dem, wonach Sie suchen.

Underdunkel
quelle
7

Wenn Sie die Stiloptionen für eine Vektorebene als .qml-Datei speichern, können Sie sie mit dem MultiQML-Plugin auf mehrere Ebenen gleichzeitig anwenden. Grundsätzlich ist es ein Oberflächenfenster, in dem Sie auswählen können, auf welche Ebenen der Stil angewendet werden soll (von Hand oder "Alles auswählen"). Über die Schaltfläche "Stil anwenden" können Sie die XML-Datei mit den Stilinformationen auswählen.

Info hier zu finden: MultiQML

Tim Couwelier
quelle
5

Dies funktioniert für QGIS 3.4 =>

  1. Erstellen Sie eine Gruppe aller Ebenen, die denselben Stil haben sollen
  2. Bearbeiten Sie den Stil einer der Ebenen in der Gruppe nach Ihren Wünschen
  3. Klicken Sie mit der rechten Maustaste auf die korrekt gestaltete Ebene. "Stile" -> "Stil kopieren" -> "Symbologie"
  4. Wählen Sie die zuvor erstellte Gruppe aus
  5. Klicken Sie mit der rechten Maustaste auf die Gruppe. 'Stil einfügen'
GISinHelsinki
quelle
Dies muss die akzeptierte Antwort sein, es ist schnell und einfach und es funktioniert einfach ... ohne komplizierten Plug-in-Wahnsinn.
shawty
2

Sie können Ihr Projekt speichern, QGIS schließen, die Stildefinition in der .qgs-Datei Ihres Projekts finden und dann für jede Ebene einfügen.

Nicolas Boisteault
quelle
1

Ich habe ein Python-Skript geschrieben, das nützlich sein kann, wenn Sie Stil auf alle Ebenen in einer Gruppe oder mehr anwenden möchten. Sie benötigen lediglich eine gespeicherte .qml-Datei mit den Eigenschaften, die Sie für jeden Ebenentyp anwenden möchten.

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
BC B.
quelle