How can I create a multiple inner (negative) buffer of a polygon layer that starts from an initial distance and repeats n times at a fixed distance?

The result should be independent polygons. Ex: I would like to generate 10 independent interior polygons relative to a layer of polygon features, the first of them 30m apart, and then 9 more interior polygons 1m apart.

  • 2
    Hi David, welcome to GIS SE. Please not that this is an english-language site and all contributions have to be in english, otherwise the question risks to be closed/deleted. Use an automatic translation software if you have troubles writing in english. A solution to your problem is using negative buffers with Geoemtry Generator/Geomtry by expression.
    – Babel
    Commented Feb 20, 2022 at 11:08
  • A diagram to explain what you want to achieve would be a valuable addition to your question. By independent, do you mean they are (30 and) 1 m strips, or are they progressively getting 1 m wider, but all starting at the boundary?
    – Matt
    Commented Feb 20, 2022 at 23:08

1 Answer 1

  1. Use Menu Processing > Toolbox > Geometry by expression with this expression:
   collect_geometries (
       array_foreach (
           generate_series (30,39,1),
           buffer ($geometry, -@element)
  1. Run Menu Vector > Geometry tools > Multipart to singleparts:

Remark: Line 3 in the above expression contains the distances for the bufers: 30 is the initial distance for the first buffer; 39 is the distance of the last buffer (from 30 to 39, you get 10 elements), 1 is the distance between each buffer (here, for the value of 1, this is optional).

The solution, here demonstrated with Geometry Generator: enter image description here


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.