[QGIS-Developer] Feature's secondary geometry columns in expressions and python
Olivier Dalang
olivier.dalang at gmail.com
Wed Apr 22 06:22:26 PDT 2020
Dear list,
It's not exactly clear how secondary geometry columns are to be used from
QgsExpressions or Python code.
Just to be clear, by secondary geometry columns, I mean geometries stored
in other columns that the one that is used to display the features on the
map, typically a "center_point" field storing a Point on a Polygon layer.
When accessing them both in expression or Python, it seems it returns a
string with the ewkt representation (at least for postgis layers). This is
not really nice, as the only way to use it with functions such as make_line
is to strip the SRID from the text to get proper wkt, then to make the
create the feature using from_wkt.
This means instead of the nice and clear :
make_line( closest_point( $geometry, "center_point"), "center_point" )
You need :
make_line( closest_point( $geometry, geom_from_wkt( substr( "center_point",
strpos("center_point", ';') + 1) )), geom_from_wkt( substr( "center_point",
strpos("center_point", ';') + 1) ) )
It's also probably quite inefficient, which is an issue when used for
geometry generators.
Is there a limitation preventing to return QgsGeometries directly ? If not,
would it make sense to change QGIS to do so ? Does anyone have an efficient
workaround in the mean time ?
Thanks :-)
Olivier
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20200422/20b11158/attachment.html>
More information about the QGIS-Developer
mailing list