Shane, Use http://www.postgis.org/documentation/manual-svn/ST_Line_Locate_Point.html to locate the % position it is on the line,
Then use ST_Line_substring http://www.postgis.org/documentation/manual-svn/ST_Line_Substring.html So for example If you get 0.25 back from ST_Line_Locate_Point The trick is the answer you get won't be exactly on the line so you then need to do a ST_SetPoint on the other part Then the answer you seek would be So basically Pt is the point Line1 = ST_Line_SubString(the_geom, 0, ST_Line_Locate_Point(the_geom) ) Line2 = ST_Line_SubString(the_geom, ST_Line_Locate_Point(the_geom), 1) http://www.postgis.org/documentation/manual-svn/ST_SetPoint.html --This part is to get around floating point errors to force the two lines to connect back at the juncture Line2 = ST_SetPoint(Line2,0 , ST_EndPoint(Line1)) Leo -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Shane Butler Sent: Monday, October 19, 2009 6:51 PM To: PostGIS Users Discussion Subject: [postgis-users] Split line at a given point Hi all, I am trying to split a linestring into two linestrings at a given (intersecting) point. Can anyone give me a hint? I have tried ST_Difference(mylinestr,mypoint) but it just returns mylinestr... Im using: "POSTGIS="1.3.5" GEOS="3.0.3-CAPI-1.4.2" PROJ="Rel. 4.6.1, 21 August 2008" USE_STATS" Kind Regards, Shane _______________________________________________ postgis-users mailing list [email protected] http://postgis.refractions.net/mailman/listinfo/postgis-users _______________________________________________ postgis-users mailing list [email protected] http://postgis.refractions.net/mailman/listinfo/postgis-users
