[Qgis-user] Precision parameter on Select by Location, v 2.16

Ivan Santiago isantiago at ogp.pr.gov
Tue Sep 20 06:21:25 PDT 2016


Hello all


Maybe some of you have QGIS 2.16.

When using Vector | Research tools | Select by location

The interface is not very informative about what is the purpose of the 'Precision' parameter.


Well, somebody at http://gis.stackexchange.com/questions/210948/how-does-the-precision-parameter-in-select-by-location-tool-work?noredirect=1#comment321716_210948

pointed out a link on github.... qgis development.


Precision:

https://github.com/qgis/QGIS/pull/2341

Improve robustness of geometry predicates with new precision parameter in by location algorithms.

Snap geometries to a virtual grid of step precision before applying geometry predicate.
This also affect bbox used for index intersection.

These features were funded by: MEDDE (French Ministry of Sustainable Development)

Just a little theoretical explanation of this would be very helpful... ...how the virtual grid and the bounding box work for the algorithm.

I tested it with very small numbers but I don't know if this is affected by the extent of the layer...


I'm wondering if this would be a kind of 'clustering tolerance' or fuzzy tolerance, like that on ArcGIS products.


This 'tolerance' issue is important but, can it be applied into QGIS, and at the same time, complying to Simple Features Standard?


I made some tests with dummy geodata in a spatialite db and Java Topology Suite (JTS).

In QGIS, select by location (intersection) does not select a point that lies on the boundary of a polygon or at the interior of a line segment. (using the SFA definitions of boundary and interior....


Turns out...

if I want that bordering coincident point to be selected, then a vertex must lie in the same place of that point (i tested it using ST_Snap in DB Manager's SQL Window...).


This is true for all programs using SF but not for JTS.  JTS seems more 'robust' applying predicate rules.  I don't know why in JTS a point in a boundary or line interior is selected using intersection but not in other products... it is not the same algorithm? JTS java and GEOS


I guess is not that simple (infinite points in a line segment) but the rule for intersects predicate states that an intersection is true if geometries share at least a point, being on their interiors or boundaries....


...

By the way... having a 'buffer' parameter on select by location would be very useful...

is somebody willing to fund it? crowd-sourcing?



________________________________
Iván Santiago
GIS Specialist
Information Technologies
PR Office of Management and Budget
787.725.9420 x 2409
http://gis.pr.gov/<http://gis.pr.gov/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-user/attachments/20160920/deac94a7/attachment.html>


More information about the Qgis-user mailing list