QGIS 3.8.3 – How to Create Polygon with a Specific Width

areapolygonqgis

I'm very new to GIS and QGIS.

I'm trying to map areas of arable fields and would like to create a polygon that traces the edge of a field and is a specific width away from the edge of the field ie 8 meters. Almost like drawing a line along the boundary then having a parallel line 8 meters away from the first line but making a polygon so I can work out the area.

I'm sure this is possible but im struggling to work out how to. Can anyone point me in the right direction?

Best Answer

Create a buffer around the outer line of your polygon. You have at least two options to do so:

Create Geometries with QGIS expressions

  • Use Geometry generator or Geometry by expression (see here for details) with this expression to create a polygon on both sides of the field's edges (inside and outside the field: blue area on the screenshot):

    buffer (boundary ($geometry),8)
    
  • If you want to get only a 8 m distance inside the field (black dotted line), use this expression:

    single_sided_buffer (boundary ($geometry),8)
    
  • And if you only want the area outside the field, use this last expression and change 8 to -8.

Red lines: edges of the field; blue: buffer inside and outside; black dotted line: buffer only inside the field: enter image description here

Use Geoprocessing tools

First convert the field polygon to lines using Menu Vector / Geometry tools / Polygons to lines. Then use one of these tools:

  • Use Menu Vector / Geoprocessing tools / Buffer with Distance = 8
  • Use Menu Processing / Toolbox / Single sided buffer to create buffers only inside (positive values for Distance) or outside the field (negative Distance values).