यदि एक क्षेत्र QGIS में शून्य है, तो कई फ़ील्ड को लेबल के रूप में प्रदर्शित करना?


13

मैं कुछ मुद्दों को क्यूजीआईएस में एक एकल लेबल के लिए कई क्षेत्रों को दिखाने की कोशिश कर रहा हूं। QGIS2.6 में, यदि फ़ील्ड में से कोई एक अशक्त है, तो कई फ़ील्ड्स वाले फ़ीचर के लिए लेबल प्रदर्शित करने का प्रयास एक खाली लेबल में होता है। उदाहरण के लिए, लेबल अभिव्यक्ति संवाद में:

concat("Temp Site",'\n',"Notes",'\n',"Function")

सामान्य रूप से कार्य करेगा जब तक कि खेतों में से एक शून्य नहीं होता है, तब इसका कोई लेबल दिखाई नहीं देता है। '' का उपयोग कर अभिव्यक्ति संवाद के बदले ऑपरेटर भी उसी व्यवहार में परिणत होता है:

"Temp Site" || '\n'  ||  "Notes" || '\n'  ||  "Function"

खेतों में से किसी एक के शून्य होने पर भी लेबल प्रदर्शित करने का कोई तरीका है?

जवाबों:


20

"Coalesce" फ़ंक्शन का उपयोग करें। Coalesce अपने तर्कों से पहला गैर-शून्य मान लेता है। तो यह अभिव्यक्ति काम करना चाहिए:

coalesce("Temp Site",'') || '\n'  ||  coalesce("Notes",'') || '\n'  ||  coalesce("Function",'')

1
आप कोलेसस फंक्शन के भीतर नई लाइन भी लपेट सकते हैं, अगर यह समझ में आता है कि लेबल के बीच में खाली लाइनों से बचने के लिए मैंने एक अभिव्यक्ति का उपयोग किया है जैसेcoalesce("Temp Site", ' ') || coalesce(('\n' || "Notes"), ' ') || coalesce(('\n' || "Function"), ' ' )
ब्रायन फिशर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.