QGIS में नक्शे पर केवल चयनित सुविधाओं को प्रदर्शित करना?


30

यकीन नहीं होता कि यह विकल्प कभी मौजूद था, लेकिन नया क्यूजीआईएस संस्करण बहुत सारी चीजों को कहीं और छिपा देता है और यह इतना सरल लगता है कि मैं आश्वस्त हूं कि यह पहले करना संभव था।

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

जवाबों:


33

नदीम का जवाब आपकी सुविधाओं को दिखाई देने से रोक देगा, लेकिन वे तब भी मौजूद रहेंगे, यदि आप एक व्यक्तिगत जहाज ट्रैक की पहचान करने की कोशिश कर रहे हैं तो आप गलती से एक अदृश्य सुविधा पर क्लिक कर सकते हैं। ऐसा क्या लगता है कि आपको अपनी परत को परिभाषित करने की आवश्यकता है ताकि यह ऐसा हो जैसे कि उन सुविधाओं का अस्तित्व नहीं है। आर्कजीआईएस में यह आमतौर पर एक परिभाषा क्वेरी का उपयोग करके किया जाता है, क्यूजीआईएस में समतुल्य लेयर सबसेट है। अपनी परत के गुणों पर जाएं, सामान्य टैब के नीचे, फ़ीचर सबसेट बॉक्स है, क्वेरी बिल्डर को लाने के लिए इसके नीचे दिए गए बटन पर क्लिक करें:

यहां छवि विवरण दर्ज करें

क्वेरी बिल्डर आपको यह परिभाषित करने के लिए एक SQL क्वेरी बनाने में मदद करेगा कि आपकी परत में क्या विशेषताएं वास्तव में आपके प्रोजेक्ट में प्रदर्शित होनी चाहिए। क्वेरी द्वारा नहीं लौटाए गए किसी भी फीचर को केवल अदृश्य नहीं, बल्कि पूरी तरह से अदृश्य बनाया जाता है (वे आपके डेटा से हटाए नहीं जाते हैं, निश्चित रूप से, वे सिर्फ अस्तित्व से बाहर परिभाषित किए जाते हैं जब तक कि आप परत सबसेट क्वेरी को हटा नहीं देते)।


दान, बहुत बहुत धन्यवाद !!! यह वही है जो मैं देख रहा था, मैं उम्मीद की तुलना में थोड़ा अधिक जटिल था लेकिन चाल करता है! बहुत मददगार, धन्यवाद!
क्रिस्टीना

वह उत्तर है। अच्छा टिप दान!
kadéem

अजीब। कुछ समय पहले मैंने ऐसा किया और यह काम कर गया। अब मैं इसे एक और परत पर फिर से करना चाहता हूं और फीचर सबसेट बॉक्स को धूसर कर दिया गया है, साथ ही साथ QueryBilder का बटन! कोई उपाय???
पैट्रिक वान डेन नोर्टेगेट

हल किया है, लेकिन स्पष्ट क्यों नहीं। मैंने अपने द्वारा किए गए परिवर्तनों को सहेज लिया और फिर QueryBuilder बटन उपलब्ध हो गया ...
पैट्रिक वान डेन नोर्टेगेट

1
@SimoA। यदि आपका डेटा एक्सेल में है, तो आप इसे वहां फ़िल्टर कर सकते हैं, एक नया फ़ील्ड जोड़ सकते हैं जहाँ आप कनवर्ट VALUEकरते हैं 'VALUE',, फिर उस फ़ील्ड को एक क्वेरी का उपयोग करके क्वेरी बॉक्स में कॉपी और पेस्ट करें।
दान सी।

15

यह अब सिर्फ चयनों और एक नियम-आधारित सहजीवन का उपयोग करके संभव है।

इसके लिए एक्सप्रेशन प्लस प्लगइन की आवश्यकता होती है (QGIS 2.x. 3.0 के लिए इसमें अंतर्निहित कार्यक्षमता है)।

के फ़िल्टर के साथ एक नियम आधारित सिम्बोलॉजी बनाएं:

QGIS 3.0+ (टिप्पणियों में विजेता से):

is_selected()

QGIS 2.12-2.18:

isselected( @layer_name )

या QGIS 2.8:

isselected( 'ACTUAL_NAME_OF_LAYER' )

अब इस नियम को पूरा करने वाली चुनिंदा विशेषताएं ही दिखाई जाएंगी।

सभी अचयनित सुविधाओं के लिए आपके पास एक ELSE नियम भी हो सकता है।

यहां छवि विवरण दर्ज करें


1
यह ठीक वैसा ही है जिसकी मैं तलाश कर रहा था - इस उत्तर के लिए धन्यवाद
ज्योबर

HeikkiVesanto, जहाँ मैं इस फ़िल्टर को सम्मिलित करता हूँ?
20

मैंने एक तस्वीर जोड़ी है।
HeikkiVesanto

1
QGIS 2.18.14 का उपयोग करना और काम करने वाला अभिव्यक्ति isselected ('layer_name') है। (@Layer_name) का उपयोग करके 0 परिणाम लौटाए गए।
Techie_Gus

2
QGIS 3 में और इस सुविधा में बनाया गया है इसके बाद के संस्करण। आप अंतर्गत देख सकते हैं Record and Attributesमें Expression String Builder। इसके अलावा, आप अब और में परत का नाम डाल करने के लिए और के बीच अंडरस्कोर के लिए मत भूलना की जरूरत नहीं है isऔर selected। यहाँ क्यूजीआईएस 3 और इसके बाद के संस्करण के लिए एक उदाहरण है is_selected():।
19

12

क्रिस्टीना, मुझे लगता है कि आपकी तालिका में एक विशेषता है जो आपको एकल ट्रैक की पहचान करने की अनुमति देती है? उदाहरण के लिए:

  point_id  |  track_id
------------+------------
     1      |     15
     2      |     15
     5      |     24
     6      |     24
     7      |     24

यदि आप विशेषता तालिका खोलते हैं, तो आप एप्सिलॉन प्रतीक (नीचे दिए गए चित्र, 4 वें एक) में पा सकते हैं।

यहां छवि विवरण दर्ज करें

यह आपको एक अभिव्यक्ति टाइप करने की अनुमति देता है; उदाहरण के लिए:

"track_id" = 24

जब आप पुष्टि करते हैं, तो आपकी अभिव्यक्ति को संतुष्ट करने वाली सभी पंक्तियाँ (वह है: track_idएक्स के साथ ट्रैक से संबंधित सभी बिंदु ) चुने गए हैं। यदि आप मैग्निफायर बटन पर क्लिक करते हैं, तो QGIS मैप कैनवास में आपके चयन के लिए ज़ूम करता है। चयनित सुविधाओं (आपके मामले में बिंदु) को हाइलाइट किया गया है।


नियम-आधारित शैली लागू करने के लिए आप क्या कर सकते हैं। जैसे कि आप किसी दिए गए प्रतीक या मार्कर का उपयोग करके एक अलग-अलग जहाज ट्रैक दिखा सकते हैं, और अन्य सभी बिंदुओं को 'अदृश्य' मार्कर देकर नहीं दिखा सकते हैं। स्क्रीनशॉट (लेयर प्रॉपर्टीज से नीचे) यह बताता है कि यह कैसे काम करता है:

  • नियम 1: दिए गए मार्कर को उन सभी बिंदुओं पर लागू करें जिनके लिए 24 का मान है track_id
  • नियम 2: दिए गए मार्कर (सफेद भराव और सफेद सीमा के साथ एक चक्र) को उन सभी बिंदुओं पर लागू करें जो track_id24 के मान को संतुष्ट नहीं करते हैं

यहां छवि विवरण दर्ज करें

वास्तव में सभी बिंदु अभी भी वहाँ हैं (उन्हें सफेद बनाने से कम समय लेने के लिए प्रतिपादन नहीं होगा) लेकिन कम से कम आपकी आंखें आराम कर सकती हैं!


आपके जवाब के लिए बहुत धन्यवाद Kadeem! मैं चयन समारोह से अवगत हूं और यह अच्छी तरह से काम करता है, हालांकि, मेरे पास छोटे क्षेत्र में 500,000 अंक हैं और मैं जिन पटरियों को देख रहा हूं, उन पर प्रकाश डालना पर्याप्त नहीं है, नक्शा अभी भी बहुत भीड़ और भ्रमित है। क्या आप जानते हैं कि सभी चयनित बिंदुओं को ब्लॉक करने की संभावना है या ऐसा कुछ है?
क्रिस्टीना

2
मैंने अपना उत्तर पंक्ति के नीचे एक अन्य विकल्प के साथ संपादित किया। मुझे लगता है कि यह आपकी मदद करेगा।
kadéem 15

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