[postgis-users] Fwd: cut lines with points

Sandro Santilli strk at keybit.net
Thu Mar 15 00:59:16 PDT 2012


On Wed, Mar 14, 2012 at 07:58:37PM -0400, Stephen Woodbridge wrote:
> You might want to look at the book: "PostGIS In Action" pg 225 has a
> function to cut a linestring at point junctions.
> 
> Basically, you want to take your two points and construction a line like:
> 
> select astext(setsrid(makeline(pnt1, pnt2), 4326));
> 
> then get a collection of pieces of myline after we subtract your new
> line from it:
> 
> select astext(st_difference(myline, setsrid(makeline(pnt1, pnt2), 4326)));

In 2.0 there's also ST_Split for that purpose.
For the cut-line-by-line case it should be faster than st_difference.
Semantic is slightly different in that you get a collection out of
ST_Split, not a multiline. 

--strk;

  ,------o-. 
  |   __/  |    Delivering high quality PostGIS 2.0 !
  |  / 2.0 |    http://strk.keybit.net - http://vizzuality.com
  `-o------'




More information about the postgis-users mailing list