複数のレイヤーの透明度を設定する方法、またはグローバルな透明設定を追加する方法は?


8

QGISのすべての245レイヤーの透明度を27%に設定するにはどうすればよいですか?私が知っている唯一の方法は、レイヤー名を右クリックし、[プロパティ]、[透明度]の順に選択して、透明度スライダーを左右に動かすことです。

a

これは非常に簡単です。しかし、これはおそらく10層までの場合にのみ有効です。私のように245のレイヤーがある場合はどうなりますか?プロセスを繰り返し続けますか?確かに、これを245レイヤーすべてに一度に適用する方法があるはずです!?

b

あるいは、新しいレイヤーを追加したときに自動的に27%の透明度が得られるように追加できるグローバル透明度設定がありますか?

QGISのオンラインドキュメントには、透明度の設定を後で使用するためにファイルにエクスポートする方法が記載されています。

ご覧のとおり、これはカスタムの透明度を設定するのが非常に簡単ですが、かなりの作業になる可能性があります。したがって、[ファイルにエクスポート]ボタンを使用して、透明度リストをファイルに保存できます。[ファイルからインポート]ボタンをクリックすると、透明度設定が読み込まれ、現在のラスターレイヤーに適用されます。

これは便利な機能のようです。しかし、これは私が探しているものではないと思います。

コンテンツウィンドウで複数のレイヤーを選択し、右クリックして[プロパティ]を選択し、透明度レベルを設定して変更を適用し、[OK]をクリックしました。変更は適用されましたが、選択範囲の最後のレイヤー、つまり右クリックしたレイヤーにのみ適用されました。選択した他のレイヤーは影響を受けませんでした。(これは実際にはバグである可能性があります。)

回答:


8

このような小さなpythonスクリプトはそれを行います

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

これをコピーしてpythonコンソール(Plugins-> Python consoleに表示されます)に貼り付け、Enterキーを2回押します。スクリプトはすべてのレイヤーをループして、不透明度を20%に設定します。


ベクターレイヤーもあるときに同じことをすることは可能ですか?選択したレイヤーのみ、または1つの同じグループ内のレイヤーのみですか?
ビクター

これは2.8.2では機能しないようです。レンダラーの代わりにレンダラーV2がドキュメントに表示されますが、setOpacityメソッドがありません:(
chrismarx

レイヤーグループがこれを行うことができることを示唆しているこのチケットを見ましたが、どのようにしているかわかりません-trac.osgeo.org/qgis/ticket/557
chrismarx

GQIS3についてwの最初の行を置き換えます。for layer in [layer for layer in QgsProject.instance().mapLayers().values()]:このあたり:gis.stackexchange.com/questions/273576/...
アンドリュー・

4

Pythonを必要としない別のオプションは、単にプロジェクトファイルを編集することです。

ラスターレイヤーの透明度は、rasterrenderer opacity = "1"で設定されます。

テキストエディターでプロジェクトファイル.qgsを開き、検索して置換することができます:rasterrenderer opacity = "1" With:rasterrenderer opacity = "0.73"


3

これを行う最も簡単な方法は、レイヤースタイルを使用することです。1つのレイヤーの透明度を27%に設定し、スタイルを他のすべてのレイヤーにコピーして貼り付けます。一度に複数のレイヤーにスタイルを貼り付けることができます。

以下も参照してください。

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


いいえ、それはシンボル/色/ビューの範囲を含む、他のものすべてをコピーするためです。
Theo F

過小評価された答え!透明性のみに取り組んでいるときに完璧に機能する
エリアセ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.