You can create a point geometry at the bottom left of the current map canvas that dynamically changes by first creating a virtual field with the coordinates of this point in any of your vector layers. Then you can access these coordinates a virtual layer query to create the point.
Inside field calculator (to create coordinates), the variable
@map_extent
from QGIS expressions is not available. So you have to create a custom function for the task to create the map canvas extent, see here how: https://gis.stackexchange.com/a/411313/88814 (thanks @katagena for the hint in the comment to this post).Then create two fields
canvx
for the x-coordinate withx_min(currentExtent())
and do the same forcanvy
withy_min(currentExtent())
.New create a virtual layer with this query and replace
my_layer
with the name of the layer that contains the attributescanvx
andcanvy
:SELECT MakePoint (p.canvxx , p.canvyy) FROM my_layercolor as p;p where p.id=1;
The
where p.id=1
part is optional, but is to avoid creating one and the same point at the bottom left separately for each feature in your layer. Change theid=1
part so that it fits your data.