Hi Alexis, Régis and Nyall I went with Nyall’s approach for now since I was 90% there and he gave me the last nudge I needed :-) I used data defined alignments:
Here are the expressions I used for horizontal: if ( X(closest_point($geometry, make_point( "auxiliary_storage_labeling_positionx" , "auxiliary_storage_labeling_positiony" ))) > X(make_point( "auxiliary_storage_labeling_positionx" , "auxiliary_storage_labeling_positiony" )), 'Right', 'Left’) Which gives (animated gif, open in browser if needed): And Vertical if ( Y(closest_point($geometry, make_point( "auxiliary_storage_labeling_positionx" , "auxiliary_storage_labeling_positiony" ))) < Y(make_point( "auxiliary_storage_labeling_positionx" , "auxiliary_storage_labeling_positiony" )), ’Top’, ‘Bottom’) Which gives (animated gif, open in browser if needed): @Régis I will give your plugin a try to see what it does too, thanks! QGIS Rocks! Regards Tim > On 11 Apr 2019, at 07:19, Régis Haubourg <[email protected]> wrote: > > Hi Tim, > You can have a look at easycustomlabeling plugin code. It's sets those > expressions for label alignement. > > FYI I should be working on a new version of it taking profit of the geometry > generators power soon , and we might be able to revive the QEP47 to revive > the idea of porting this natively to core. > Best regards > Regis > > Le jeu. 11 avr. 2019 à 00:54, Tim Sutton <[email protected]> a écrit : > To clarify a little, I am trying to avoid the label text crossing the > call-out line. > > Regards > > Tim > >> On 10 Apr 2019, at 23:02, Tim Sutton <[email protected]> wrote: >> >> Hi Friends >> >> So I am using logic like this* to make call out labels using a geometry >> generator: >> >> make_line( >> closest_point($geometry, >> make_point( "auxiliary_storage_labeling_positionx" , >> "auxiliary_storage_labeling_positiony" )), >> make_point( "auxiliary_storage_labeling_positionx" , >> "auxiliary_storage_labeling_positiony" ) >> ) >> >> The line runs from the closest point along the edge of the polygon to the >> bottom left corner of the label box. With this configuration it works well >> when my ‘lollipop’ callout label is north-east of the polygon being labelled: >> >> <Screenshot 2019-04-10 at 22.54.29.jpg> >> >> But doesn’t work when the label is e.g. south west of the polygon: >> >> <Screenshot 2019-04-10 at 22.54.54.jpg> >> >> Now I am wondering if we have any options for getting the geometry of the >> label box so I can do the reverse and get the closest point along the edge >> of the label box to the polygon being labelled. So my question: >> >> Is there any sneaky trick for getting the geometry of the label box for a >> feature in an expression? And no, using an opaque background for my label to >> mask away the call out line doesn’t really hack it. I know the label box >> isn’t being calculated at the time the polygon is being rendered so the >> answer is probably ’no’ but maybe someone else has a clever idea to make may >> lollipops work when labels are south (or east or west for that matter) of >> the feature being labelled? >> >> Thanks! >> >> Regards >> >> Tim >> >> >> >> — >> >> >> <KartozaNewLogoThumbnail.jpg> >> >> >> >> >> >> >> Tim Sutton >> >> Co-founder: Kartoza >> Ex Project chair: QGIS.org >> >> Visit http://kartoza.com to find out about open source: >> >> Desktop GIS programming services >> Geospatial web development >> GIS Training >> Consulting Services >> >> Skype: timlinux >> IRC: timlinux on #qgis at freenode.net >> >> I'd love to connect. Here's my calendar link to make finding time easy. >> > > — > > > > > > > > > > Tim Sutton > > Co-founder: Kartoza > Ex Project chair: QGIS.org > > Visit http://kartoza.com to find out about open source: > > Desktop GIS programming services > Geospatial web development > GIS Training > Consulting Services > > Skype: timlinux > IRC: timlinux on #qgis at freenode.net > > I'd love to connect. Here's my calendar link to make finding time easy. > > _______________________________________________ > QGIS-Developer mailing list > [email protected] > List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer > Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer > <KartozaNewLogoThumbnail.jpg> — Tim Sutton Co-founder: Kartoza Ex Project chair: QGIS.org Visit http://kartoza.com <http://kartoza.com/> to find out about open source: Desktop GIS programming services Geospatial web development GIS Training Consulting Services Skype: timlinux IRC: timlinux on #qgis at freenode.net I'd love to connect. Here's my calendar link <https://calendly.com/timlinux> to make finding time easy.
_______________________________________________ QGIS-Developer mailing list [email protected] List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
