Mengubah properti gaya beberapa lapisan secara bersamaan?


31

Saya sedang mengerjakan data massal. Saya memiliki beberapa ratus gambar GeoTIFF yang diimpor ke proyek QGIS, dan saya ingin memodifikasi properti lapisan mereka - hal-hal seperti nilai-tidak-data, transparansi nilai-nilai piksel tertentu, tugas-tugas peta warna ...

Tapi sepertinya saya tidak bisa menemukan cara untuk menerapkan perubahan ini ke beberapa lapisan sekaligus, singkat mengedit file XML dengan pencarian dan ganti global. Apakah ada cara untuk melakukan ini menggunakan GUI?

Jawaban:


45

Dalam versi QGIS saat ini, Anda dapat menggunakan Gaya Salin dan kemudian Tempel Gaya dari menu turun bawah Layers (jika Anda memiliki satu atau lebih lapisan yang dipilih dalam daftar lapisan).


Untuk beberapa versi yang lebih lama: Anda dapat memilih beberapa lapisan dalam daftar lapisan, klik kanan dan gunakan Gaya Tempel dari menu konteks.

Untuk versi lama lainnya:

Plugin MultiQML memungkinkan Anda menerapkan satu gaya lapisan QGIS ke beberapa lapisan sekaligus. Saya pikir itu sedekat apa yang Anda cari saat ini mungkin.


7

Jika Anda menyimpan opsi gaya untuk satu layer vektor sebagai file .qml, Anda bisa menerapkannya ke beberapa layer sekaligus dengan plugin MultiQML. Pada dasarnya, ini adalah jendela antarmuka yang memungkinkan Anda memilih lapisan mana yang Anda inginkan untuk diterapkan gaya (dengan tangan, atau 'pilih semua'), tombol 'terapkan gaya' memungkinkan Anda memilih qml dengan info gaya.

Info dapat ditemukan di sini: MultiQML


5

Ini berfungsi untuk QGIS 3.4 =>

  1. Buat grup dari semua layer yang Anda inginkan memiliki gaya yang sama
  2. Edit gaya salah satu lapisan dalam grup sesuai keinginan Anda
  3. Klik kanan layer dengan gaya yang benar; 'Gaya' -> 'Gaya Salin' -> 'Simbologi'
  4. Pilih grup yang Anda buat sebelumnya
  5. Klik kanan grup; 'Tempel Gaya'

Ini harus menjadi jawaban yang diterima, cepat dan mudah dan hanya berfungsi ... tanpa ada kegilaan yang rumit.
shawty

2

Anda dapat menyimpan proyek Anda, tutup QGIS, temukan definisi gaya dalam file .qgs proyek Anda, lalu tempel untuk setiap lapisan.


1

Saya menulis skrip python yang dapat berguna jika Anda ingin menerapkan gaya ke semua lapisan dalam grup atau lebih. Yang perlu Anda miliki hanyalah file .qml yang disimpan dengan properti yang ingin Anda terapkan untuk setiap jenis lapisan.

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.