การใช้ประโยชน์จาก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))
เกิดขึ้นได้บ่อยมาก อย่างน้อยในตัวอย่างง่ายๆนี้ทำให้โค้ดอ่านยากกว่าที่ควรจะเป็น
ดังนั้นคำถามของฉันคือมีวิธีเก็บนิพจน์หลังในตัวแปรชั่วคราวบางอย่างเช่น (pseudocode):
@mx=x(point_on_surface($geometry))
@my=y(point_on_surface($geometry))
geom_from_wkt(
'POLYGON((' ||
... #and so on
ใช่คุณพบวิธีแก้ไขปัญหาที่อธิบายไว้ในคำถามของคุณหรือไม่ ฉันกำลังเผชิญกับความต้องการที่คล้ายกันและกำลังค้นหาสิ่งเดียวกัน
—
iulian