QGIS में लेबल के रूप में केवल अपरकेस पाठ दिखा रहा है?


15

QGIS 2.14 का उपयोग करना और देखना कि अब नियम आधारित लेबलिंग है। मैं उन शहरों के लेबल दिखाना चाहता हूं जिनमें बड़े अक्षर हैं (जैसे CRAWLEY) और न कि निचले अक्षरों वाले शहरों के लेबल दिखाएं (जैसे Faygate)

विशेषता तालिका विभिन्न शहरों को उनके नाम से अलग नहीं करती है। क्या इसे करने का कोई तरीका है ?

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

जवाबों:


20

आपको इसके लिए वास्तव में नियम-आधारित स्टाइल की आवश्यकता नहीं है।

  1. का चयन इस परत के लिए लेबल दिखाएँ विकल्प (या नियम आधारित अगर आप पसंद करते हैं) और क्लिक अभिव्यक्ति आइकन और करने के लिए जाना समारोह संपादक के रूप में नीचे दिखाया गया है।

    समारोह संपादक

  2. एक नई फ़ाइल बनाएं (या किसी मौजूदा को संपादित करें) और निम्नलिखित दर्ज करें:

    from qgis.core import *
    from qgis.gui import *
    
    @qgsfunction(args='auto', group='Custom')
    def func(value, feature, parent):
        if value.isupper():
            return value
    
  3. लोड पर क्लिक करें फिर एक्सप्रेशन टैब पर जाएं और निम्नलिखित टाइप करें:

    func("fieldName")
    
  4. फिर सभी परिवर्तन लागू करें । आपके लेबल में अब केवल वही होना चाहिए जो सभी बड़े अक्षर हैं।


उदाहरण :

फ़ंक्शन चलाने से पहले:

कार्य करने से पहले

फ़ंक्शन चलाने के बाद:

कार्य के बाद


8
यहाँ एक कस्टम अजगर समारोह का उपयोग करने के बजाय आप इनबिल्ट अभिव्यक्ति का उपयोग भी कर सकते हैं"fieldName"=upper("fieldName")
ndawson

3
@ndawson - वैसे यह बहुत आसान काम है, धन्यवाद! यद्यपि आपकी अभिव्यक्ति केवल एक बूलियन देती है, आप इसके बजाय उपयोग कर सकते हैं if("fieldName" = upper("fieldName"), "fieldName", '')। किसी भी तरह से, मुझे लगता है कि आपको इसे उत्तर के रूप में पोस्ट करना चाहिए ;)
जोसेफ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.