an array of points
Allows creation of lines from variable numbers of points, and
from sequences from aggregates/dynamically generated sequences
Fixes#31268
Collects a set of geometries into a multi-part geometry object.
Geometry parts can either be specified as seperate arguments to the
function, or (more flexibly), as an array of geometry parts.
This allows geometries to be generated using iterator based approaches,
such as transforming an array generated using generate_series, e.g:
collect_geometries(
array_foreach(
generate_series( 0, 330, 30),
project($geometry, .2, radians(@element))
)
)
Gives a nice radial effect of points surrounding the central feature
point when used as a MultiPoint geometry generator
It's too dangerous to reuse the existing one, as it breaks the
ability to run multiple versions of qgis (i.e. proj < 6 and proj >= 6)
on the same machine
Fixes#30569
Returns a map containing all attributes from a feature, with field
names as map keys. We've got featureful, robust support for working
with maps in expressions now, so this allows rapid conversion
of all feature attributes to a map to use with these handy
functions.
The previous approach was severely broken, because the default
CRS for new projects setting was ignored as soon as a layer
was added to the project.
Instead, refine the setting to add options
- "Use CRS from first layer added": same as previous behavior,
the project CRS is set to match the first layer added to a new
project
- "Use a default CRS": CRS for a new project is set to a preset
default CRS, and is left unchanged when adding layers to the
project
Also update qgis_global_settings.ini to reflect these changes.
Fixes#27516
Because certain aggregates and concatenation requires results in
a certain order, this change allows specific control of the order
features are added to the aggregate during an expression evaluation.
E.g.
concatenate("Station",concatenator:=',', order_by:="Station")
will give a comma separated list of station names in alphabetical
order, rather than layer feature order.
Sponsored by SMEC/SJ
base_file_name: Returns the base name of the file without the directory or file suffix.
file_exists: Returns true if a file exists
file_name: Returns the file name from a full path
file_path: Returns the directory/path from a full file path
file_size: Returns a file size
file_suffix: Returns a files suffix/extension
is_directory: Returns true if a file path is a directory
is_file: Returns true if a file path is a file
This adds a second variant for the existing "attribute" function.
The current function requires both a target feature and attribute
name to be specified, while the NEW variant just uses the current
feature.
E.g.
NEW:
attribute( 'name' ) -> returns the value stored in 'name' attribute
for the current feature
EXISTING:
attribute( @atlas_feature, 'name' ) -> returns value stored in 'name'
attribute for the current atlas feature
It's just a faster shorthand version!