[QGIS-Developer] (Postgis)VectorLayer based on QgsFeatureRequest?
Richard Duivenvoorde
rdmailings at duif.net
Mon Jan 11 07:53:50 PST 2021
Hi,
Thanks!
My issue is not so much using the QgsFeatureRequest (and it's filters) in python.
You can do a 'layer.getFeatures(request)' too.
It's more like that I think it would be nice to have some kind of 'filtered'-layer notion, but a little more fine-grained then current 'filter'-use.
Raymond told me that using 'Virtual Layers' it is possible to use the full sql-query syntax.
And I just tested and indeed that seems to work.
Have to see how this is implemented though...
Regards,
Richard Duivenvoorde
On 1/11/21 3:44 PM, JD L wrote:
> Hi Richard,
> have you considered something like this (maybe not the optimal way)
>
> req = QgsFeatureRequest()
> req.setLimit(10)
>
> sink, dest = QgsProcessingUtils.createFeatureSink(
> uri,
> QgsProcessingContext(),
> source_layer.fields(),
> source_layer.wkbType(),
> source_layer.crs()
> )
>
> sink.addFeatures(source_layer.getFeatures(req), QgsFeatureSink.FastInsert)
>
> del sink
>
> Regards,
>
>
> Le lun. 11 janv. 2021 à 14:50, Richard Duivenvoorde <rdmailings at duif.net <mailto:rdmailings at duif.net>> a écrit :
>
> Hi Devs,
>
> I have this project in which there is (a set of different) moving cars (in time and position), but I only want to show (and able to edit in a plugin) the LAST POSITION of the cars.
>
> In QGIS gui you can NOT use 'limit' or 'order' parts in the filter clause, I can only filter on car-ID (or so) (would be nice to have I think...).
>
> In PyQGIS you can create a featureIterator based on a QgsFeatureRequest in which you CAN set limit and order of the set to iterate over...
>
> My question is: can I create a VectorLayer, based on a QgsFeatureRequest?
> In this way you can (at least in python) create a much finer grained 'filter' for a certain layer.
>
> I looked into the api and did some googling, and hope that I just missed it...
>
> I have thought about creating a VIEW in the db for this (that is with an ordering on time and limit 1), and then with a filter=xxx in QGIS gui, I can at least see my subset's.
> But I think it is actually stronger to sort of have an real (editable) layer in QGIS for that?
>
> Regards,
>
> Richard Duivenvoorde
>
> [0] https://qgis.org/pyqgis/master/core/QgsFeatureRequest.html <https://qgis.org/pyqgis/master/core/QgsFeatureRequest.html>
> _______________________________________________
> QGIS-Developer mailing list
> QGIS-Developer at lists.osgeo.org <mailto:QGIS-Developer at lists.osgeo.org>
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer <https://lists.osgeo.org/mailman/listinfo/qgis-developer>
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer <https://lists.osgeo.org/mailman/listinfo/qgis-developer>
>
More information about the QGIS-Developer
mailing list