I have a river network (lines) and a .shp with states (polygon). I would like to split the lines at the state boundaries i.e. split lines by polygon boundaries.

Is there a geoprocessing tool to do this in QGIS? I can't merge the lines by the way, since they are meaningfully split into tributaries/main river.

  • I have tried using vector geometry/ vector overlay / lines intersect tool. This gives me a point layer where lines overlap. However not all overlapping points were found, and I would still prefer if it can be done automatically. Commented Dec 18, 2014 at 15:03

5 Answers 5


This is now possible by default in QGIS with the "Intersection" tool.

  • The "intersection" tool clips the lines - it removes lines outside the polygon. This is different from simply splitting, which means cutting lines and including all the resulting parts in the output.
    – jberrio
    Commented Jan 18 at 6:48
  • They are splitting by state, so what interests them is rivers split by individual state. Usually, I would expect that rivers outside of the whole set of polygons are not interesting to them. But good word of warning for those that don't want that! Commented Jan 20 at 13:00

Intersect didn't work for me in 2.18 or 3x.

To split road lines by zone polygons I used SAGA - Line Polygon intersection that split the line by the polygon

Then the "Attribute Transfer" plugin conflated the attributes across.


I did not have success with the Line-Polygon tool. I converted my polygon to lines and then used the SAGA->Vector line tools->Split lines with lines. This worked for me.


In the Processing Toolbox under "Vector Overlay" use the "Split with lines" tool.


It can be done with GRASS. v.overlay

  • 2
    Can you add a more detailed description how it can be done with v.overlay?
    – MrXsquared
    Commented Jul 4, 2023 at 14:28

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.