Wie kann ich die Transparenz für mehrere Ebenen festlegen oder eine globale Transparenzpräferenz hinzufügen?

8

Wie kann ich die Transparenz für alle 245 Ebenen in QGIS auf 27% einstellen? Die einzige Möglichkeit, die ich kenne, besteht darin, mit der rechten Maustaste auf den Ebenennamen zu klicken, Eigenschaften und dann Transparenz auszuwählen und dann den Transparenzregler nach links oder rechts zu bewegen.

ein

Das ist einfach genug. Aber das ist vielleicht nur für bis zu 10 Schichten gut. Was ist, wenn Sie wie ich 245 Schichten haben? Wiederholen Sie den Vorgang einfach weiter? Nun muss es doch eine Möglichkeit geben, dies auf alle 245 Schichten gleichzeitig anzuwenden!?

b

Gibt es alternativ eine globale Transparenzeinstellungseinstellung, die ich hinzufügen kann, damit beim Hinzufügen neuer Ebenen automatisch 27% Transparenz erzielt werden?

In der QGIS-Online- Dokumentation wird etwas zum Exportieren Ihrer Transparenzeinstellung in eine Datei zur späteren Verwendung erwähnt.

Wie Sie sehen, ist es recht einfach, benutzerdefinierte Transparenz festzulegen, aber es kann ziemlich viel Arbeit bedeuten. Daher können Sie die Schaltfläche In Datei exportieren verwenden, um Ihre Transparenzliste in einer Datei zu speichern. Die Schaltfläche Aus Datei importieren lädt Ihre Transparenzeinstellungen und wendet sie auf die aktuelle Rasterebene an.

Dies scheint eine nützliche Funktion zu sein. Aber ich glaube nicht, dass ich danach suche.

Ich habe versucht, mehrere Ebenen im Inhaltsverzeichnis auszuwählen, dann mit der rechten Maustaste geklickt und Eigenschaften ausgewählt und die Transparenzstufe festgelegt, Änderungen übernommen und auf OK geklickt. Die Änderungen wurden angewendet, jedoch nur auf die letzte Ebene in der Auswahl, auf die ich mit der rechten Maustaste geklickt habe. Keine der anderen Ebenen in der Auswahl war betroffen. (Dies könnte tatsächlich ein Fehler sein.)

Samir
quelle

Antworten:

8

Ein kleines Python-Skript wie dieses würde es tun

for layer in iface.legendInterface().layers():
   layer.renderer().setOpacity(0.2)

Kopieren Sie das einfach und fügen Sie es in die Python-Konsole ein (die über Plugins-> Python-Konsole angezeigt wird) und drücken Sie zweimal die Eingabetaste. Das Skript durchläuft alle Ebenen und setzt ihre Deckkraft auf 20%.

Ndawson
quelle
Ist es möglich, dasselbe zu tun, wenn Sie auch Vektorebenen haben? Wie nur für ausgewählte Ebenen oder für Ebenen innerhalb derselben Gruppe?
Victor
Dies scheint in 2.8.2 nicht mehr zu funktionieren. Ich sehe einen RendererV2 in den Dokumenten anstelle des Renderers, aber er hat nicht die setOpacity-Methode :(
chrismarx
Ich sehe dieses Ticket, das darauf hindeutet, dass Ebenengruppen
chrismarx
Für GQIS3 ersetzen Sie die erste Zeile w: for layer in [layer for layer in QgsProject.instance().mapLayers().values()]:per this: gis.stackexchange.com/questions/273576/…
Andrew
4

Eine andere Option, für die kein Python erforderlich ist, besteht darin, die Projektdatei einfach zu bearbeiten.

Die Transparenz der Rasterebene wird festgelegt mit: Rasterrenderer-Deckkraft = "1"

Sie können Ihre Projektdatei .qgs in einem Texteditor öffnen und suchen und ersetzen: rasterrenderer opacity = "1" With: rasterrenderer opacity = "0.73"

HeikkiVesanto
quelle
3

Der einfachste Weg, dies zu tun, ist die Verwendung von Ebenenstilen. Stellen Sie einfach die Transparenz einer einzelnen Ebene auf 27% ein und kopieren Sie den Stil in alle anderen Ebenen. Sie können einen Stil in mehrere Ebenen gleichzeitig einfügen.

Siehe auch:

http://hub.qgis.org/issues/14931

verdunkelt durch den Mond
quelle
Nein, da dies über alles andere kopiert wird, einschließlich der Symbologie / Farben / Ansichtsbereiche.
Theo F
Unterschätzte Antwort! Arbeiten Sie perfekt, wenn wir nur an Transparenz arbeiten
Eliasse