I have two layers. One shapefile point layer, called "point1" and one csv no geometry layer, called "Meta".
"point1" looks like:
id bd 1 a 2 b 3 c 4 d 5 e 6 f
and so on...
"Meta" looks like:
Name ids sample 1, 2, 3, 6
It is a one-line layer and
1, 2, 3, 6 is one single string.
Layer "point1" will always stay the same and "Meta" will change everytime the project is opened.
Now I want to create a new layer (multipoint) from point1 layer which id's are listed in the
ids string of Meta layer. Out of curiosity I want to know whether this is possible or not using
Geometry by expression. (If you have an answer for virtual layers feel free to share as well.)
So far I have the following expression built up which returns an array like this:
[<feature: 0>, <feature: 1>, NULL, <feature: 3>] and so on... Here is my expression:
array_agg( get_feature( 'point1','id', array_find( ( array_foreach( string_to_array(attribute(get_feature_by_id('Meta',2),'ids')),to_int(@element) ) ) ,attribute( $currentfeature, 'id' ) ) ) )
geometry() returns a copy of point1 layer keeping only the wanted geometries. But how can I create a multipointlayer out of it?
Can I create a multipointlayer using expressions and arrays using QGIS 3.6 this way?