Hi,
Is there any method or any other possibility to use bounding box of labels in
QGIS geometry generator expression builder?
I want to make a layer styling with labels with leader lines from object's
label to the object. I have a PostGIS point geometry source for the actual
object and another for the label position. They are related by attribute "id".
So generally thanks to great QGIS' geometry generator it's easy to generate a
leader line by
make_line($geometry, geometry(get_feature('object_layer', 'id', "id ")))
As an extra challenge, I want to generate the leader line from first or last
character of the label, depending if first or last character is closer to the
object geometry. The label is positioned above right of label geometry. So if
the first character of the label is closer, I can use above method to generate
leader to lower left corner of the label. But if the end is closer I would need
something like 'label bounding box' to generate leader to lower right corner of
the label. Currently I use
make_line(project($geomety,length("label_string")*0.5,radians(90)),
geometry(get_feature('object_layer', 'id', "id "))
This way, I project the start point of the leader by length of label text
(comes from the attribute "label_string"). With the factor 0.5 I get quite OK
results for many labels, but sometimes if the label string contains many narrow
or wide characters (i,l,j resp. o,p,g) the leader's start point doesn't get the
correct position. With 'label bounding box' it would be easy to always get the
right position.
Thanks for any help!
Regards
Benjamin
_______________________________________________
Qgis-user mailing list
[email protected]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user