Змінити властивості стилю декількох шарів одночасно?


31

Я працюю над масовими даними. У мене є кілька сотень зображень GeoTIFF, імпортованих у проект QGIS, і я хотів би змінити їх властивості шару - такі речі, як відсутність даних, значення, прозорість певних значень пікселів, призначення кольорової карти ...

Але я не можу знайти спосіб застосувати ці зміни одночасно до декількох шарів, окрім редагування файлу XML глобальним пошуком і заміною. Чи можна це зробити за допомогою GUI?

Відповіді:


45

У поточних версіях QGIS ви можете використовувати стиль копіювання, а потім вставити стиль у верхньому спадному меню "Шари" (якщо у списку шарів вибрано один чи більше шарів).


Для деяких старих версій: Ви можете вибрати кілька шарів у списку шарів, клацніть правою кнопкою миші та використати стиль вставки з контекстного меню.

Для інших старих версій:

Плагін MultiQML дозволяє застосовувати один стиль рівня QGIS до декількох шарів одночасно. Я думаю, це максимально наближено до того, що ви шукаєте, наскільки це можливо.


7

Якщо ви збережете параметри стилів для одного векторного шару у форматі .qml, ви можете застосувати його до декількох шарів одночасно за допомогою модуля MultiQML. По суті, це вікно інтерфейсу, яке дозволяє вам вибрати, до яких шарів ви хочете застосувати стиль (вручну або «вибрати все»), кнопка «стиль застосування» дозволяє вибрати qml з інформацією про стиль.

Інформацію можна знайти тут: MultiQML


5

Це працює для QGIS 3.4 =>

  1. Створіть групу всіх шарів, які ви хочете мати однаковий стиль
  2. Відредагуйте стиль одного із шарів у групі на свій смак
  3. Клацніть правою кнопкою миші правильний стиль; "Стилі" -> "Стиль копіювання" -> "Символогія"
  4. Виберіть групу, яку ви створили раніше
  5. Клацніть правою кнопкою миші групу; "Стиль вставки"

Це має бути прийнятою відповіддю, це швидко і легко, і це просто працює ... без будь-якого складного підключення до божевілля.
shawty

2

Ви можете зберегти свій проект, закрити QGIS, знайти визначення стилю у файлі .qgs вашого проекту, після чого вставити його на всі шари.


1

Я написав сценарій python, який може бути корисним, якщо ви хочете застосувати стиль до всіх шарів у групі чи більше. Все, що вам потрібно мати - це збережений .qml файл із властивостями, які ви хочете застосувати для кожного типу шару.

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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.