Still chasing bug
QgsVectorLayerFeatureIterator::QgsVectorLayerFeatureIterator
I reached QgsRectangle, whose "Null" or "Empty" nature changes
behavior of QgsFeatureVectorFeatureIterator in a way that prevents
proper WithinDistance filter from working.

Details are written in
https://github.com/qgis/QGIS/issues/45352
but what I wanted to ask here is:

According to the comments Empty means that some information is still
available (bounding box of a point) but the unit test for QgsRectangle
(and the isEmpty method implementation) seem to check for Max < Min,
which would NOT be the case for the bounding box of a point,
so is puzzling.

I'm not sure how to proceed for fixing the bug I'm seeing because
one simple fix would be avoiding to call setRectangle on a QgsRequest
if the iterator's mFilterRect is Empty, but a more complex solution
could be to *allow* those QgsRequests to have multiple filters, rather
than one excluding the other.

Also I've yet to understand WHY at construction time a
QgsAbstractFeatureIterator shoul dhave an Empty rather than Null
rectangle, which brings back to the first question (is the distinction
really defined?).

--strk; 

  Libre GIS consultant/developer
  https://strk.kbt.io/services.html
_______________________________________________
QGIS-Developer mailing list
[email protected]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to