[GIS] Splitting line at point positions using QGIS

linepointqgissplittingvector

I have a polyline and I have two points on the polyline.

I would like to know if there is a tool or script that I could use to split my original polyline into 3 polylines? (Starting point to point A, Point A to B and B to ending point of the polyline)?

I am looking for an automatic process rather splitting the line manually.

Best Answer

QGIS won't do this natively to the best of my knowledge. However, you can use GRASS from within QGIS, and this thread looks like exactly what you want. I haven't tested this, but it all makes sense. Credit of course goes to the folks in that thread. First, you would import your data into GRASS then:

dump the coordinates to a text file (v.out.ascii) then loop thru that file, and feed the coords to v.edit, like so: v.out.ascii out=points.txt while read x y; do v.edit tool=break coord=$x,$y cat=0-99999 done < points.txt

Note the caveat that your points must be exactly on the line.

Or, even simpler in a bash environment:

v.out.ascii format=point in=pts --q | cut -d'|' -f1,2 | tr '|' ',' | while read COOR; do v.edit map=line tool=break coords=$COOR; done