I am brand new to GIS and am attempting to use QGIS to take an existing line from a shapefile and create a 2D polygon based on it i.e. I want to take a line and fatten it out a bit so it has an area.

Specifically I have a shapefile which represents centrelines of NZ rivers available from NZ Land information data service. I have managed to select the river segments that I want, and have merge them into one line (not sure about that step being useful) and saved as it's own shapefile which I can load into QGIS. For example the lines within the area circled in red in this image:selection

I would like to take this line (or each separate segment) and fatten it/them out into a 2D polygon area similar to the circled area in this image:poly

My 2D polygon would have branches though like the first image, and I would like to have one continuous polygon for the entire outline. (I would also like to calculate the area in hectares, but I believe this should be fairly trivial once I have the polygon)

What would be the best method to achieve this? Is there an feature/plugin in QGIS which can automatically fatten a line by specified amount? Is there a programmatic method I can use (I am fairly proficient at Python programming but not very familiar with QGIS)?

I am not expecting a one shot kill and do expect to do some manual drawing to achieve this but am hoping there is some technique or tool to help me out before I go ahead and manually draw the entire thing.


After seeing the answers posted I should clarify that I am trying to basically draw the outline of the "wet bed" of the rivers/creeks and is for my purposes arbitrary to a certain extent. So after consideration this would clearly not correspond to a set distance from the centre lines.

After seeing @UdithaGIS answer and looking at the topographic elevation data it appears what I need is more closely related to the contour lines (but not exactly). I will try to use the contours as a starting point and attempt to modify them for my needs.

  • Welcome to GIS SE! We're a little different from other sites; this isn't a discussion forum but a Q&A site. Please check out our short tour to learn about our focussed Q&A format.
    – PolyGeo
    Commented Jan 21, 2021 at 0:49
  • Apart from creating a buffer (as already proposed), you could also try to download OpenStreetMap data, as they often are already in polygon form. Simply creating an area around a line does not seem to make sense to me if you want to measure the area afterwards: this area will be completely arbitrary. So probably you should add some information what you need this for.
    – Babel
    Commented Jan 21, 2021 at 14:37
  • Thanks, please see my edit @babel, you are correct that it doesn't make sense to create an area around the center lines, but for my purposes the area will be somewhat arbitrary.
    – justinjt
    Commented Jan 21, 2021 at 22:36

2 Answers 2


Single Symbol Renderer

if you need to give a width to the line to represent the river width then you can right click the layer > Properties > Symbology > select single symbol from the drop down > then change the width of the line ex- from 0.5 to 2


Categorized Renderer or Rule-based Renderer

if you need to make it pop up with main river with a higher width and other smaller tributaries smaller as they go up you have to number the rivers with Stream Ordering system and use the Categorized or Rule Based method instead of the single symbol. If you are intending to do analysis with a river network please represent the river as a line and give the width to the river with this method.


If you are trying to draw watersheds then you have to have a contour map or DEM or raster with elevation data like SRTM. then you will be able to drive more meaningful outcome.


Create a buffer for your line layer (Vector > Geoprocess tools > Buffer) setting the width of the buffer in m. This creates a new polygon layer whose attributes you can modify with the Fields calculator button creating a new field with the function $area to calculate the area of each polygon.

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.