परतें पैनल में एक परत या समूह को कैसे अदृश्य बनाया जाए?


13

मेरे पास एक समूह के अंदर परतें पैनल में कई परतें हैं, लेकिन मैं उन्हें नहीं दिखाना चाहता (इसमें बहुत कुछ ऐसा है जो अस्वच्छ दिखता है)। ये परतें कई अन्य लोगों से भी जुड़ती हैं।

क्या इन परतों को उपयोगकर्ता के लिए अदृश्य बनाना संभव है ( अर्थात परत पैनल में नहीं दिखाया गया है, यह परत की दृश्यता को सेट करने के बारे में नहीं है ) लेकिन फिर भी अन्य परतों में शामिल हो सकता है? या शायद समूह को अदृश्य बनाते हैं?

निकटतम मैंने पाया कि यह पद था, लेकिन उम्मीद है कि एक अधिक प्रत्यक्ष दृष्टिकोण है:

QGIS किंवदंती में केवल कुछ परतें दिखा रहा है?

जवाबों:


15

मैं लुकिंग टेबल दिखाने से बचने के लिए परतों / समूहों को 'अदृश्य' उपयोगी बनाता हूं, जो मूल्य संबंधों के लिए आवश्यक हैं, लेकिन लेयर्स पैनल को थोड़ा अधिक भारित कर सकता है।

बस स्पष्ट करने के लिए, परतदार पैनल में अदृश्य परतें / समूह दिखाई नहीं देंगे, लेकिन उन्हें अभी भी कैनवास में देखा जा सकता है या अन्य परतों के साथ जुड़ाव / संबंधों में उपयोग किया जा सकता है।


उत्तर:

प्लगइन का उपयोग करें अदृश्य परतें और समूह , जो आपको निम्नलिखित की अनुमति देता है:

  • चयनित परतों / समूहों को अदृश्य (प्लगइन बटन) बनाएं।
  • परतें / समूह (जो अदृश्य हैं) फिर से दिखाई दें (प्लगइन बटन)।
  • अपने QGIS प्रोजेक्ट में परतों / समूहों की दृश्यता को स्टोर करें।
  • अपने QGIS प्रोजेक्ट को खोलते समय परतों / समूहों की दृश्यता को फिर से बनाएँ।
  • एक विशेष परत को अदृश्य (कोड द्वारा) बनाओ।
  • एक विशेष समूह को अदृश्य (कोड द्वारा) बनाओ।

एक परत बनाना अदृश्य (कोड द्वारा):

if 'InvisibleLayersAndGroups' in qgis.utils.plugins:
    ilg = qgis.utils.plugins['InvisibleLayersAndGroups']
    ilg.hideLayer( layer )    # layer is a QgsMapLayer

समूह को अदृश्य बनाना (कोड द्वारा):

if 'InvisibleLayersAndGroups' in qgis.utils.plugins:
    ilg = qgis.utils.plugins['InvisibleLayersAndGroups']
    ilg.hideGroup( group )    # group is a QgsLayerTreeGroup
    ilg.hideGroup( 'group2' ) # You can also pass a group name

नोट: एक समस्या है जिसके बारे में आपको पता होना चाहिए। यदि आप एक परत को अदृश्य बनाते हैं और फिर उसके मूल समूह को स्थानांतरित करते हैं, तो अदृश्य परत फिर से दिखाई देगी (मुझे नहीं पता क्यों!)। इसलिए, मेरी सिफारिश केवल शीर्ष परतों / समूहों को अदृश्य बनाने के लिए है (आखिरकार, आप रूट को स्थानांतरित नहीं कर सकते हैं)।


वास्तव में मैं क्या देख रहा था, इसके लिए बहुत धन्यवाद! वास्तव में, मेरे पास कई परतें हैं जो गणना के लिए उपयोग की जाती हैं (जिनमें से सभी एक और परत में शामिल हो जाती हैं) इसलिए मैं नहीं चाहता कि उपयोगकर्ता इन परतों को देखें या संपादित करें। तो आपका समाधान बहुत हल करता है। एक सवाल, क्या आपने इसे हाल ही में एक प्लगइन के रूप में लागू किया है?
जोसफ

ठीक है, यह दिन पहले प्रकाशित किया गया था। मैंने सोचा था कि पहले परतों को कैसे छिपाया जा सकता है, लेकिन इस प्रश्न के बाद ही मैंने कार्य को पूरा किया (जल्द ही या बाद में मुझे इसकी आवश्यकता होगी)। मैंने कोड स्निपेट के साथ उत्तर देने के बारे में सोचा था, लेकिन उत्तर जटिल बनने के लिए काफी लंबा था, इसलिए मैंने इसे एक प्लगइन में इनकैप्सुलेट करना पसंद किया, जिसका उपयोग करना बहुत आसान है।
जर्मेन कैरिलो

वैसे यह एक महान प्लगइन है इसलिए इसके लिए मतदान किया :)
जोसेफ

+1 बहुत उपयोगी प्लगइन। विशेष रूप से मेरे काम के लिए, टफ बुक + क्यूजीआईएस के साथ क्षेत्र में डेटा मैपिंग में विशिष्ट होना, एक अतिभारित परत पैनल से बचने के लिए (स्क्रॉलिंग क्षेत्र में समय लगता है)। मेरा एक सुझाव है (शायद अपने प्लगइन (या नहीं) में सुधार करने के लिए): क्या आप इसे लागू कर सकते हैं कि प्लगइन उन परतों को याद करता है जिन्हें आपने एक बार चिह्नित किया है और उन्हें फिर से अदृश्य कर दें जब प्लगइन बटन (उन्हें अदृश्य बना दें) को फिर से धकेल दिया जाए? एक और चयन (परतें / समूह) अदृश्य सेट करने के लिए आपको उन्हें नए सिरे से चुनना होगा।
स्टीफन

महान है कि आप प्लगइन उपयोगी पाते हैं! आपके सुझाव के लिए धन्यवाद, क्या आप GitHub में एक नई सुविधा अनुरोध (समस्या) जोड़ना चाहेंगे ?
जर्मेन कारिलो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.