I have a polygon layer with a land-use class and ID for every polygon. How can I merge polygons (into multi part polygon) which do not adjoin, but are not further than x meters apart from each other.

As an example you can imagine two forest polygons which are separated by a road. I would like the two forest polygons to be one multi-part polygon.

Of course one can merge two polygons by hand, but this would take forever!

Clarification: In case two forest polygons are separated more than x meters, e.g. a 100m broad meadow, I would like to keep the two separate forest polygons.

I am using this map for the ecological modeling of animals. This is why habitat patches need to be defined. Basically this process decides if two polygons are still the same habitat or two separate habitats.

  • Can you clarify what should happen when they are separated by more than 'x' meters? Commented Dec 3, 2014 at 9:11
  • Clarification added.
    – MarioT
    Commented Dec 3, 2014 at 9:38

1 Answer 1


I would make a new layer by buffering your polygons by x-meters and checking the 'dissolve' option. Make sure your new layer is singlepart geometry and then give each of your buffered polygons a unique ID. Next perform a spatial join of your buffers on your original polygons to attribute the originals with the ids from your buffers. Finally dissolve your original polygons using the new attribute.

  • Yep, works! Thank you very much! Saves me a lot of work! Compared to the manual method it is less arbitrary and susceptible to "human error" too!
    – MarioT
    Commented Dec 3, 2014 at 14:39

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.