QGIS – Transforming All Polygons into Circles

circlegeometrypolygonpolygon-creationqgis

I want to change the shape of all polygons within a layer into circles and maintain their original size. All polygons are different sizes and shapes at the moment, based on the extent of wind power sites.

I have not found a way how to actually create new, circular polygons at all. It seem like "Geometry by expression" could be a tool for this, but I have never used it and don't know the expression to achieve this.

Best Answer

To get circles with equal area, run Geometry by expression with:

make_circle(
    point_on_surface( $geometry ),   -- centroid( $geometry )
    sqrt( $area / pi() )
)

Here, the resulting circle centers on a point that is guaranteed to lie on the surface (point_on_surface()) of the initial Polygon. This is likely a different location than the centroid(), which is point-set weighted and may lie outside an irregular shape (or MultiPolygon) - you will have to decide which one suits best.


There are plenty of other built-in methods to create circles with relation to shape and size of the intial Polygons, including the minimal_circle() function you can use inside the expression.