एक साथ कई परतों की शैली गुण बदलें?


31

मैं थोक डेटा पर काम कर रहा हूं। मेरे पास कुछ सौ GeoTIFF छवियां हैं जो एक QGIS प्रोजेक्ट में आयात की गई हैं, और मैं उनकी परत गुणों को संशोधित करना चाहता हूं - नो-डेटा-मूल्य, कुछ पिक्सेल मूल्यों की पारदर्शिता, रंग मानचित्र असाइनमेंट जैसी चीजें ...

लेकिन मैं एक बार में कई परतों में इन परिवर्तनों को लागू करने का तरीका नहीं ढूंढ सकता, लेकिन XML फ़ाइल को वैश्विक खोज-और-प्रतिस्थापन के साथ संपादित करना कम है। क्या जीयूआई का उपयोग करने का एक तरीका है?

जवाबों:


45

QGIS के वर्तमान संस्करणों में, आप परत शीर्ष ड्रॉपडाउन मेनू से कॉपी स्टाइल और फिर पेस्ट स्टाइल का उपयोग कर सकते हैं (यदि आपके पास परतों की सूची में एक या अधिक परतें चयनित हैं)।


कुछ पुराने संस्करणों के लिए: आप परत सूची में कई परतों का चयन कर सकते हैं, राइट-क्लिक करें और संदर्भ मेनू से पेस्ट स्टाइल का उपयोग करें।

अन्य पुराने संस्करणों के लिए:

MultiQML प्लगइन आपको एक बार में कई परतों में एक QGIS परत शैली लागू करने देता है। मुझे लगता है कि आप वर्तमान में जितना संभव हो उतना करीब हैं।


7

यदि आप एक .qml फ़ाइल के रूप में एक वेक्टर लेयर के लिए स्टाइल ऑप्शन को सहेजते हैं, तो आप इसे मल्टी लेयर्स-मल्टीकोमल-प्लगइन के साथ एक साथ कई लेयर्स पर लगा सकते हैं। मूल रूप से, यह एक इंटरफ़ेस विंडो है जो आपको यह चुनने देती है कि आप किस लेयर को शैली को हाथ से लागू करना चाहते हैं (या सभी का चयन करें), 'स्टाइल लागू करें' बटन आपको स्टाइल जानकारी के साथ qml का चयन करने देता है।

यहां पाई जाने वाली जानकारी: मल्टीक्यूएमएल


5

यह QGIS 3.4 => के लिए काम करता है

  1. उन सभी परतों का एक समूह बनाएं जिनकी आप एक ही शैली चाहते हैं
  2. अपनी पसंद के अनुसार समूह की किसी एक परत की शैली संपादित करें
  3. सही ढंग से स्टाइल की गई परत पर राइट-क्लिक करें; 'स्टाइल्स' -> 'कॉपी स्टाइल' -> 'सिम्बॉलजी'
  4. आपके द्वारा बनाए गए समूह का चयन करें
  5. समूह को राइट-क्लिक करें; 'पेस्ट स्टाइल'

इसके लिए स्वीकृत उत्तर की आवश्यकता है, यह त्वरित है और यह आसान है और यह सिर्फ काम करता है ... बिना किसी जटिल प्लग के पागलपन में।
shawty

2

आप अपनी परियोजना को बचा सकते हैं, QGIS को बंद कर सकते हैं, अपनी परियोजना की .qgs फ़ाइल में शैली की परिभाषा पा सकते हैं और फिर इसे हर परतों के लिए पेस्ट कर सकते हैं।


1

मैंने एक पाइथन स्क्रिप्ट लिखी जो उपयोगी हो सकती है यदि आप किसी समूह या अधिक में सभी परतों में शैली लागू करना चाहते हैं। आपको उन सभी संपत्तियों के साथ एक .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 Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.