मैं QGIS में एक परत की नकल कैसे कर सकता हूं?


9

मैं एक ही वेक्टर डेटा को अलग-अलग परतों में अलग-अलग तरीकों से प्रदर्शित करना चाहता हूं। जबकि 1.8+ में लेयर स्टाइल को कॉपी और पेस्ट करना बहुत आसान है , एक लेयर का चयन करने और इसे सीधे कॉपी या कॉपी करने के लिए राइट-क्लिक करने में अच्छा होगा।

ऐसा करने का कोई आसान तरीका, पायथन कमांड की तरह?


अपडेट: @ डकार्टो का सुझाव पूरी तरह से काम करता है। चूंकि मुझे कई डुप्लिकेट परतों को जोड़ने की आवश्यकता थी, इसलिए मैंने इसे कई बार आवश्यकतानुसार लूप में अनुकूलित किया:

for n in range(1,5): 
    iface = qgis.utils.iface; vl = iface.activeLayer(); iface.addVectorLayer(vl.source(), vl.name() + "_clone" + str(n), vl.providerType())

एकमात्र समस्या यह है कि नई परत सक्रिय हो जाती है, इसलिए यह "_clone" और पिछले नाम की संख्या को जोड़ देता है, उदाहरण के लिए समाप्त हो रहा है_clone1, example_clone1_clone2, जो कि undieldy example_clone1_clone2_clone3_clone4_clone5 तक है। अब मूल रूप से चयनित परत से डुप्लिकेट करने का तरीका जानने की आवश्यकता है।


यह वास्तव में एक जवाब नहीं है, लेकिन QGIS मन नहीं करता है यदि आप एक ही वेक्टर परत को दो बार एक परियोजना में जोड़ते हैं।
L_Holcombe

हां, मैंने बाद में कई डुप्लिकेट जोड़े हैं, लेकिन केवल "परत जोड़ें" और हर बार परत का चयन करने के लिए ब्राउज़ करके। न्यूनतम 4 क्लिक और कुछ स्क्रॉलिंग, जो 20 बार एक परत की नकल करने की आवश्यकता के साथ थकाऊ हो जाता है।
सिमबामुंगु

1
@ सिंबांगुम इस पर अलग-अलग विचार हैं, मैं जीआईएस विकी के माध्यम से गया। मैं निश्चित रूप से आपके विचार की सराहना करता हूं, मुझे मेरा हिस्सा दें। मैं सवाल के शीर्षक के बारे में सवाल के एक दिशा के रूप में विचार करता हूं। चूंकि यह सभी सवालों के बारे में है, तो "मैं कैसे करूँ ...", "क्यों है ..." का परिचय दें क्योंकि यह स्पष्ट नहीं है कि यह एक प्रश्न है। यह प्रश्न को अधिक पठनीय बना सकता है, लेकिन किसी भी तरह आपको प्रश्न के शरीर को देखना होगा कि यह क्या है। प्रश्नों के पूरे पृष्ठ को देखने के लिए जो "मैं कैसे करूँ ..." से शुरू होता है कम से कम मेरे लिए अनुत्पादक है।
TomazicM

1
और कारण मैंने आपके पुराने प्रश्न का शीर्षक बदल दिया? यह बीआईबी होम पेज पर कुछ एक्शन के कारण टकराया था और मैं मानता हूं कि "हाउ" और "क्यों" सवालों के कुछ हिस्सों को हटाने की आदत (बुरी) है।
टॉमाज़िकम

1
@ सिंबांगु मैं व्यक्ति "बिना" और "क्यों" के सवालों को पसंद करता हूं क्योंकि ये शब्द सामग्री में कुछ भी नहीं जोड़ते हैं। वे शीर्षक को अधिक पढ़े-लिखे बना सकते हैं, लेकिन अगर शीर्षक थोड़ा अस्पष्ट है, तो मुझे कोई समस्या नहीं दिखती है, क्योंकि किसी को भी प्रश्न के मुख्य भाग को पढ़ना है, यह देखने के लिए कि यह सब क्या है। और मैं मानता हूं कि मैंने पॉलीगियो को करते हुए और फिर प्रश्न संपादित करते समय अच्छी प्रथाओं के बारे में कुछ मेटा लेख पढ़ते हुए उन शब्दों को हटाना शुरू कर दिया।
टॉमज़िकम

जवाबों:


10

इस बारे में दो फीचर अनुरोध ( # 5899 और # 1483 ) हैं। यह निश्चित रूप से एक उल्लेखनीय विशेषता है, और संभवतः संस्करण 2.0 में शामिल किया जा सकता है, अगर कोई डेवलपर इसे जोड़ने में रुचि रखता है; या, पायथन प्लगइन डेवलपर ने इसे कुछ विचार दिया।

# 5899 समस्या में एक परत को डुप्लिकेट करने के लिए कुछ पायथन कोड भी शामिल है (डेवलपर Giuseppe Sucameli द्वारा प्रस्तुत):

इस बीच, वेक्टर लेयर का चयन करें और फिर QGis पायथन कंसोल खोलें और चलाएं:

iface = qgis.utils.iface; vl = iface.activeLayer(); iface.addVectorLayer(vl.source(), vl.name() + "_clone", vl.providerType())

पिछला कोड मैप को उसी उपलेयर में जोड़ता है।

पिछले एक की तरह एक-लाइन पायथन स्क्रिप्ट का उपयोग करके इसे करना मुश्किल है, लेकिन अगर आपको उप-नाम का पता है तो आप सिर्फ उसी जगह vl.source()से बदल सकते हैं vl.source().split("|")[0] + "|layername=my_sublayer_name"जहां my_sublayer_name आपके उप-अक्षर का नाम है।

यह डुप्लिकेट कोड चलाने के बाद दिखाई देता है, आपको मूल परत की शैली को कॉपी / पेस्ट करना होगा।


अच्छी तरह से काम। लेयर स्टाइल को चिपकाने के लिए 'v' को जोड़कर, लेयर और स्टाइल के दोहराव में अब केवल कुछ सेकंड लगते हैं।
सिंबांगु

यह सुविधा संशोधन c11df1aa79 में लागू की गई है। hub.qgis.org/projects/quantum-gis/repository/revisions/…
व्लादिमीर

2
मास्टर शाखा के लिए उस प्रतिबद्ध के लिए पायथन बंधन इस तरह काम करता है: iface.setActiveLayer( my_layer );iface.actionDuplicateLayer().trigger()जहां my_layer एक QgsMapLayer है जो किंवदंती में सक्रिय, चयनित परत पर सेट है; तब, एक्शनडुप्लिकेटलेयर () को किंवदंती (इसके डिफ़ॉल्ट) में चयनित परतों पर काम करने के लिए ट्रिगर किया गया है।
22

1

QGIS के हाल के संस्करणों में अब "डुप्लिकेट लेयर" विकल्प है। उस परत पर राइट-क्लिक करें जिसे आप डुप्लिकेट करना चाहते हैं, और यह नीचे एक नई प्रतिलिपि सम्मिलित करेगा।

साइड नोट: ऐसा लगता है कि आपको View --> Refreshअगले स्तर पर प्रचार करने के लिए एक परत में किए गए परिवर्तनों के लिए हिट करने की आवश्यकता है ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.