Feature request #1780
Updated by Regis Haubourg over 7 years ago
I would like to use a geometry (POINT) attribute to position label, using the example postgres schema:
<pre>
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);
...
);
</pre>
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).
<pre>
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);
...
);
</pre>
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).