QGIS एटलस की अन्य परतों में फ़िल्टरिंग सुविधाएँ?


22

मैं QGIS एटलस टूल का उपयोग करने की कोशिश कर रहा हूं ताकि छात्र 'स्कैम्पमैप' का निर्माण कर सकें। स्कूल और छात्रों कि 215 स्कूल के लिए, उस स्कूल में भाग लेने का प्रदर्शन।

स्कूलों की परत कवरेज परत है, और इसे SCHNUM(स्कूल नंबर) मान द्वारा संचालित किया जा रहा है । यह ठीक काम कर रहा है, अर्थात यह पृष्ठों को सही ढंग से चला रहा है।

हालांकि, मैं अन्य परतों से केवल सुविधाओं को कैसे प्रदर्शित कर सकता हूं, इस मामले में छात्र बिंदु परत, जो SCHNUMकवरेज परत में वर्तमान विशेषता के लिए संबंधित मूल्य से मेल खाती है ?

मैं कवरेज लेयर (स्कूलों) को 'छिपा' रखना चाहता हूं और उसी तकनीक का उपयोग करके केवल एक डुप्लीकेट स्कूलों की परत से वर्तमान स्कूल को प्रदर्शित करता हूं।

यहां एक प्रेजेंटेशन उपलब्ध है जो एक लेयर रेंडरिंग रूल सेटिंग के उपयोग से संबंधित है $atlasfeatureid, लेकिन मैं यह पता नहीं लगा सकता कि यह कैसे काम करता है।

मुझे यह बग ट्रैकर पृष्ठ भी मिला जो इस कार्य को दिखाता है, लेकिन फिर से, मैं इसे अपने डेटा पर काम करने के लिए नहीं पा सकता हूं:


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

जवाबों:


41

वास्तव में, आप जो चाहते हैं उसे प्राप्त करने के लिए नियम-आधारित सहजीवन का उपयोग करने की आवश्यकता है।

आप जो दिखाना चाहते हैं उसके लिए आपको एक नियम बनाने की जरूरत है, और बाकी सभी के लिए ईएलएसई नियम।

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

ELSE नियम में, अदृश्य बनाने के लिए प्रतीक चेकबॉक्स को अचयनित करें।

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

अन्य सुविधाओं को कवरेज परत से छिपाएं

केवल वर्तमान एटलस सुविधा दिखाने का नियम निम्नलिखित हो सकता है:

$id  =  @atlas_featureid 

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

नोट : मेरा मानना ​​है कि @atlas_featureid वैरिएबल 2.12 सिंटैक्स है। मुझे लगता है कि 2.8.x में आपको $ atlas_featureid नामक फ़ंक्शन का उपयोग करने की आवश्यकता होगी।

वर्तमान एटलस सुविधा के बाहर की विशेषताओं को छिपाएँ

नुस्खा पहले की तरह ही है, एक और सुविधाओं को छिपाने का नियम है, एक को दिखाने के लिए।

आपके विशेष प्रश्न के लिए, आपको लगता है कि SCHNUM नामक एक साझा विशेषता है। उस मामले में नियम यह हो सकता है:

"Layers_field" = attribute (@atlas_feature, 'coverage_layer_field_name')

आपके विशेष मामले में:

"SCHNUM"  =  attribute( @atlas_feature , 'SCHNUM')

दोनों के बीच अंतर पर ध्यान दें। पहले, दोहरे उद्धरण चिह्नों में, विद्यालय के कोड को संग्रहीत करने वाले क्षेत्र की प्रत्येक वर्तमान परत विशेषता के मूल्य का प्रतिनिधित्व करता है। दूसरा, सिंगल कोट्स में, कवरेज लेयर के नाम के साथ एक स्ट्रिंग है जो स्कूल कोड को स्टोर करता है।

नोट : फिर से मुझे लगता है कि @atlas_feature वैरिएबल एक "नई" चीज है, और 2.8.x में आपको फंक्शन का उपयोग करने की आवश्यकता होगी $ atlas_feature

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

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