I have two vector layers in QGIS:

  1. a layer containing building outlines for houses
  2. a layer containing parcel outlines for properties

I used a spatial join (join attributes by location) to connect the buildings and parcels. So I have a joined layer that contains each building plus the identifier for its associated parcel, i.e. the parcel that contains the building. All good so far.

Next, I need to draw a buffer of 100 ft. around each building but have that buffer clipped to the perimeter of the containing parcel. In other words, the buffer needs to be up to 100 ft. but also not extend beyond the edge of the property.

Any suggestions?

1 Answer 1


You can follow these steps:

  1. Buffer tool (distance: 100 ft)
  2. Intersection tool (input layer: buffers, overlay layer: parcel)
  3. Select by Location tool (select from: intersection, predicate: contain, by comparing to: building)
  4. Invert Feature Selection (from Selection toolbar)

enter image description here

  1. Toggle Editing (from Digitizing toolbar), then click 'Delete Selected' button.

enter image description here

enter image description here

P.S. It can work for you but this is not the optimal solution. If you use a bigger value or buildings are so close to each other, it may not work.

  • 3
    I think the best solution is to use PyQGIS script. Commented Mar 17, 2023 at 21:31

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.