Feature request #1780
Labels: Data defined position from geometry column
|Pull Request or Patch supplied:||No||Resolution:|
I would like to use a geometry (POINT) attribute to position label, using the example postgres schema:
CREATE TABLE region ( gid serial NOT NULL, geometry geometry, -- SELECT [[AddGeometryColumn]]('public','region','geometry',26910,'POLYGON',2); label geometry, -- SELECT [[AddGeometryColumn]]('public','region','label',26910,'POINT',2); ... );
Here, there are two geometry columns: a polygon for the shape in the map, and a point to specify and store the label location.
The present versions (1.0.1 to 1.2.0 unstable) support X/Y coordinates from two numeric columns. (This is found in Layer Properties > Labels > Data defined position).
The enchantment requested in this ticket is to add another pull-down for a data defined position, which would be a geometry column. This seems more natural than defining two numeric columns for X and Y coordinates.
I suggest first keeping it simple, supporting only POINT geometries. However, I can also envision enabling MULTIPOINT (for multiple places of the same label), and perhapps [MULTI]LINESTRING for text along a path (creeks, rivers) if the text fits the length. Furthermore, the centroid can easily be extracted from all other geometry types ([MULTI]POLYGONs, COLLECTIONs, etc.) to represent the coordinate for the label (i.e., this is the "else"/"default" case for other geometry types).
#5 Updated by Regis Haubourg 5 months ago
- Priority changed from Low to Normal
- Description updated (diff)
- Status changed from Open to In Progress
A QEP is opened for a related requirement here [[https://github.com/qgis/QGIS-Enhancement-Proposals/issues/46]]
QGIS 3 API is currently gaining the ability to handle multiple geometries, so we can consider we are getting closer