Works in two ways. Either creating a centroid layer, using either centroid, point on surface, or pole of inaccessibility.
Runs through each geometry that you want to select from and tests if the centroid or the point of surface central point falls within the selecting geometry. If the central point falls within the selecting polygon, it is usually mostly inside the selecting geometry.
Or selecting based on percentage overlap. By default dissolving the selecting features first.
Useful if you are splitting up a polygon layer based on a polygon coverage layer, as each polygon will only end up in one of the selecting polygon areas. Unlike with an Intersects query which would return the geometry twice if it is on the border one on each side, or a Within query, which would not return the geometry at all. Very useful if your selection and selecting geometries have similar boundaries.
For the difference between Centroid and Point On Surface see:
http://workshops.boundlessgeo.com/postgis-intro/geometry_returning.html#st-centroid-st-pointonsurface
Post:
QGIS Centroid Within Selection 0.4
Original Post:
Centroid Within Selection in QGIS
Code:
GitHub Code Base
Issues and bug tracker:
GitHub Issues
Pingback: Centroid Within Selection in QGIS | GIS for Thought
Pingback: Announcing Centroid Within Selection QGIS Plugin | GIS for Thought
Why is this so complicated?
Isn’t just easier to add “have their centroid in” in the Select by Location just as in ArcGIS so people can get immediately to their results, instead of having a million plug ins to install and it is not even clear on this page where the download is…
Hi Steve,
The download is through QGIS itself. Through Plugins> Manage and install plugins.
If you want to fund this as a core QGIS feature, that’s great. Have a read through:
http://nyalldawson.net/2016/08/how-to-effectively-get-things-changed-in-qgis/
Thanks for the comment.
Hi, Heikki.
I am glad to have found this, because I need to select small polygons that ‘have their centroid in’ a larger set of polygons. And this does that. I’ve been very surprised to see that base QGIS 3.16 (after decades of development) doesn’t seem to have that really basic functionality.
However, I need to iterate through about 150k small areas and 1,400 larger ones. So I have to do this in QGIS Processing Modeller or at least Processing Toolbox.
I cannot see a way of getting your plug-in to work within these environments.
Advice gratefully received.