Làm cách nào để đặt độ trong suốt cho nhiều lớp hoặc thêm tùy chọn trong suốt toàn cầu?


8

Làm cách nào tôi có thể đặt độ trong suốt đến 27% cho tất cả 245 lớp trong QGIS? Cách duy nhất tôi biết là bằng cách nhấp chuột phải vào tên lớp, chọn Thuộc tính, sau đó Minh bạch và sau đó di chuyển thanh trượt trong suốt sang trái hoặc phải.

một

Điều này là đủ đơn giản. Nhưng điều này chỉ tốt cho tối đa 10 lớp. Điều gì nếu bạn có 245 lớp như tôi làm? Bạn chỉ cần tiếp tục lặp lại quá trình? Bây giờ chắc chắn, phải có một cách để áp dụng điều này cho tất cả 245 lớp cùng một lúc!?

b

Ngoài ra, có cài đặt tùy chọn trong suốt toàn cầu mà tôi có thể thêm vào để khi tôi thêm các lớp mới, chúng sẽ tự động nhận được độ trong suốt 27% không?

Tài liệu trực tuyến của QGIS đề cập một vài điều về việc xuất cài đặt độ trong suốt của bạn sang tệp để sử dụng sau.

Như bạn có thể thấy điều này khá dễ dàng để thiết lập độ trong suốt tùy chỉnh, nhưng nó có thể là khá nhiều công việc. Do đó, bạn có thể sử dụng nút Xuất ra tệp để lưu danh sách minh bạch của mình vào một tệp. Nút Nhập từ tệp tải cài đặt độ trong suốt của bạn và áp dụng chúng cho lớp raster hiện tại.

Đây dường như là một tính năng hữu ích. Nhưng tôi không nghĩ rằng đây là những gì tôi đang tìm kiếm.

Tôi đã thử chọn nhiều lớp trong mục lục và sau đó nhấp chuột phải và chọn Thuộc tính và đặt mức độ trong suốt, áp dụng các thay đổi và nhấp vào OK. Nó áp dụng các thay đổi, nhưng chỉ cho lớp cuối cùng trong vùng chọn, lớp tôi nhấp chuột phải vào. Không có lớp nào khác trong lựa chọn bị ảnh hưởng. (Đây có thể là một lỗi thực sự.)

Câu trả lời:


8

Một kịch bản python nhỏ như thế này sẽ làm điều đó

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

Chỉ cần sao chép và dán nó vào bảng điều khiển python (được hiển thị qua Plugins-> bảng điều khiển Python) và nhấn enter hai lần. Kịch bản sẽ lặp qua tất cả các lớp và đặt độ mờ của chúng thành 20%.


Có thể làm tương tự khi bạn cũng có các lớp vectơ? Giống như làm điều đó chỉ cho các lớp được chọn, hoặc cho các lớp trong cùng một nhóm?
Victor

điều này dường như không còn hoạt động nữa trong 2.8.2, tôi thấy một trình kết xuấtV2 trong tài liệu thay vì trình kết xuất, nhưng nó không có phương thức setOpacity :(
chrismarx

Tôi thấy vé này có thể đề xuất các nhóm lớp có thể làm điều này, nhưng tôi không thấy cách nào - trac.osgeo.org/qgis/ticket/557
chrismarx

Đối với GQIS3 thay thế dòng đầu tiên w: for layer in [layer for layer in QgsProject.instance().mapLayers().values()]:mỗi này: gis.stackexchange.com/questions/273576/...
andrew

4

Một tùy chọn khác, không yêu cầu python, chỉ đơn giản là chỉnh sửa tệp dự án của bạn.

Độ trong suốt của lớp raster được đặt với: rasterrenderer opacity = "1"

Bạn có thể mở tệp dự án của mình trong một trình soạn thảo văn bản và tìm và thay thế: rasterrenderer opacity = "1" Với: rasterrenderer opacity = "0.73"


3

Cách dễ nhất để làm điều này là bằng cách sử dụng các kiểu lớp. Chỉ cần đặt độ trong suốt của một lớp thành 27% và sao chép / dán kiểu cho tất cả các lớp khác. Bạn có thể dán một kiểu vào nhiều lớp cùng một lúc.

Xem thêm:

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


không bởi vì điều đó sẽ sao chép mọi thứ khác, bao gồm cả phạm vi tượng trưng / màu sắc / chế độ xem.
Theo F

Câu trả lời không thể chối cãi! Hoạt động hoàn hảo khi chúng tôi chỉ làm việc về tính minh bạch
Eliasse

2

Bạn có thể sử dụng tập lệnh Xử lý QGIS này để đặt độ trong suốt cho một nhóm cụ thể: https://github.com/jkall/qgis- Processing-scripts / blob / master / set_trans minh_for_group.py

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.