QGIS में लेबल से फ़ीचर की सीधी रेखाएँ?


11

मैं जो करने की कोशिश कर रहा हूं वह बिंदु सुविधाओं की एक श्रृंखला है लेकिन बिंदु सुविधाओं के घनत्व के कारण मुझे लेबल को बिंदु सुविधाओं से दूर ले जाना होगा। मैं फिर एक सरल सीधी रेखा (एक तीर नहीं) का उपयोग करना चाहता हूं ताकि यह दिखाया जा सके कि कौन सा लेबल किस बिंदु को संदर्भित करता है।

मैंने लेबल बनाने के लिए प्लगइन का उपयोग किया है "लेबल बनाने के लिए और उन्हें जहां मैं चाहता हूं, वहां ले जाने के लिए। लेकिन मैं जो करने में असमर्थ हूं वह बिंदु और तालिका के बीच एक सरल पतली सीधी रेखा बनाता है।

मैंने जो सबसे अच्छा हासिल किया है वह है "प्रतीक परत प्रकार" (लेबल परत> गुण> शैली) को "तीर" में बदलना, "घुमावदार तीर" को अनचेक करना और प्रत्येक खंड पर "दोहराने तीर" को अनचेक करना। और फिर सिर की लंबाई और मोटाई 0 करें और इसे "तीर की चौड़ाई" और "तीर की चौड़ाई शुरू में" जितना संभव हो उतना संभव बनाएं। लेकिन यह अभी भी एक चंकी रेखा बनाता है। छवि ए देखें

मैंने "सिंबल टाइप" को "सिंपल लाइन" सेट करने की कोशिश की है, लेकिन इसके परिणामस्वरूप उन्हें किंक / कोने / कोने के साथ लाइनों में रखा गया है। चित्र देखें B

आदर्श रूप से, मैं लेबल्स और फ़ीचर (जैसे छवि A में) के बीच सीधी रेखाएँ पसंद करूँगा जो कि छवि B के समान चौड़ाई वाले हों।

दो प्रकार के लेबलिंग के उदाहरण

जवाबों:


11

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

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

expresion:

CASE 
 WHEN (label_x IS NOT NULL AND label_y IS NOT NULL) THEN
  make_line(centroid($geometry),make_point(label_x -2,label_y), make_point(label_x ,label_y))
ELSE
  NULL
END

और इसका परिणाम यह होना चाहिए:

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


सिर्फ एक सिडनोट, यदि लेबलिंग गुणों के टूलबार का उपयोग करके मैन्युअल रूप से ले जाया जाता है और प्रोजेक्ट प्रोजेक्ट में संग्रहीत किया जाता है, तो लेबल_x, y वैरिएबल बदलकर "असिस्टेंट_स्टेज_लैब्लिंग_पेंडेक्स" और "असिस्टेंट -स्टोरेज_लैब्लिंग_पेंडसी" नामक फ़ील्ड में बदल जाते हैं।
गैब्रियल सी।

2
अपनी मध्य बिंदु 2 इकाइयों को पश्चिम में रखने से जैसा कि आप यहाँ करते हैं make_point(label_x -2,label_y), पश्चिमी तट पर लेबल मज़ेदार दिखेंगे। साथ ही, एक अलग पैमाने पर काम करने से यह बेकार हो जाएगा। यह आपके लेबल से दूरी और आपके केन्द्रक से सापेक्ष स्थिति के संबंध में इस बिंदु को स्थापित करने में बेहतर काम करेगा।
अल्बर्ट

2

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

केवल वही परिवर्तन करने की आवश्यकता है जो मेरी अभिव्यक्ति में x, y मान हैं:

CASE
   WHEN ("auxiliary_storage_labeling_positionx" IS NOT NULL AND "auxiliary_storage_labeling_positiony" IS NOT NULL) THEN
        make_line(centroid($geometry),make_point("auxiliary_storage_labeling_positionx","auxiliary_storage_labeling_positiony"))
   ELSE
      NULL
END

जैसा कि लीडर खुद कहते हैं, सिम्बोलॉजी ट्री इस प्रकार है:

  • भरण
    • ज्यामिति जनरेटर
      • लाइन
        • मार्कर लाइन
          • निशान
            • सरल मार्कर
          • सरल रेखा

यह सुनिश्चित करने के लिए कि नेता लेबल केंद्र पर समाप्त होते हैं, बस 'क्षैतिज' के लिए 'केंद्र' और ऊर्ध्वाधर के लिए 'आधा' लेबल के मूल्यों को संपादित करें। लाइन को स्टाइल करने के लिए आपको जो भी चाहिए, मार्कर लाइन में नेस्टेड लाइन का उपयोग करें।

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