Geometry generator
प्रतीक परत प्रकार का उपयोग करना , मैं रेखाओं की विशेषताओं के आयाम @nv_bg_w
(चौड़ाई) और @nv_bg_h
(ऊंचाई) (प्रोजेक्ट चर) के आयतों को निर्देशांक text_x, text_y
(विशेषताओं, यदि नहीं NULL
) पर या वैकल्पिक रूप से निम्नलिखित अभिव्यक्ति द्वारा पंक्ति के केंद्र में आकर्षित करता हूं :
geom_from_wkt(
'POLYGON((' ||
COALESCE("text_x", x(point_on_surface($geometry))) ||' '|| COALESCE("text_y", y(point_on_surface($geometry))) || ','||
(to_real(COALESCE("text_x", x(point_on_surface($geometry)))+ @nv_bg_w )) ||' '|| COALESCE("text_y", y(point_on_surface($geometry))) || ','||
(to_real(COALESCE("text_x", x(point_on_surface($geometry)))+ @nv_bg_w )) ||' '|| (to_real(COALESCE("text_y", y(point_on_surface($geometry))))- @nv_bg_h ) || ','||
COALESCE("text_x", x(point_on_surface($geometry))) ||' '|| (to_real(COALESCE("text_y", y(point_on_surface($geometry))))- @nv_bg_h ) || ','||
COALESCE("text_x", x(point_on_surface($geometry))) ||' '|| COALESCE("text_y", y(point_on_surface($geometry)))|| '))'
)
जैसा कि देखा x(point_on_surface($geometry))
और y(point_on_surface($geometry))
बहुत बार हो सकता है । कम से कम इस सरल उदाहरण में, यह कोड को पढ़ने के लिए कठिन बना देता है जितना कि इसे करना होगा।
तो मेरा सवाल यह है कि क्या कुछ अस्थायी चर में बाद के भावों को संग्रहीत करने का एक तरीका है, कुछ इस तरह से (स्यूडोकोड):
@mx=x(point_on_surface($geometry))
@my=y(point_on_surface($geometry))
geom_from_wkt(
'POLYGON((' ||
... #and so on