Bug report #16544
Updated by Jürgen Fischer over 7 years ago
h1. Steps to reproduce
1. Create a vector memory layer with some features
2. Try accessing getFeatures(QgsMapRequest) in Python:
<pre>
request = QgsFeatureRequest(QgsRectangle(mapCoords, mapCoords)) # insert e. g. click coordinates here
request.setFlags(QgsFeatureRequest.ExactIntersect)
features = list(memoryLayer.getFeatures(request))
</pre>
h2. Observed behaviour
No feature is returned.
h2. Expected behaviour
The features intersecting with the given point are returned.
h1. Remarks
On layers loaded from disks, this works like a charm (you don't even need to supply the ExactIntersect flag).
An easy workaround is to not use exact feature requests, but just use normal ones and filtering manually with
<pre>
feature.geometry().contains(mapCoords)
</pre>
Something similar could probably be the fix already.
Normal requests return all features which intersect with their bounding box.
See also #16068 also: https://issues.qgis.org/issues/16068
1. Create a vector memory layer with some features
2. Try accessing getFeatures(QgsMapRequest) in Python:
<pre>
request = QgsFeatureRequest(QgsRectangle(mapCoords, mapCoords)) # insert e. g. click coordinates here
request.setFlags(QgsFeatureRequest.ExactIntersect)
features = list(memoryLayer.getFeatures(request))
</pre>
h2. Observed behaviour
No feature is returned.
h2. Expected behaviour
The features intersecting with the given point are returned.
h1. Remarks
On layers loaded from disks, this works like a charm (you don't even need to supply the ExactIntersect flag).
An easy workaround is to not use exact feature requests, but just use normal ones and filtering manually with
<pre>
feature.geometry().contains(mapCoords)
</pre>
Something similar could probably be the fix already.
Normal requests return all features which intersect with their bounding box.
See also #16068 also: https://issues.qgis.org/issues/16068