STSplitProcedure
STSplitProcedure — Procedure that splits a line into two parts.
Function Specification.
Function [lrs].[STSplitProcedure] ( @p_linestring geometry, @p_point geometry, @p_line1 geometry OUTPUT, @p_line2 geometry OUTPUT, @p_round_xy int = 3, @p_round_zm int = 2 ) Returns geometry
Description.
Splits @p_linestring at position defined by @p_point.
If @p_point is not on the line it is first snapped to the line.
Supports CircularString and CompoundCurve geometry objects and subelements from 2012 onewards.
Honours measures.
Parameters.
@p_linestring (geometry) - Supplied Linestring geometry. @p_point (geometry) - Supplied split point. @p_line1 (geometry) - Is an OUTPUT parameter that holds the first part of split line. @p_line2 (geometry) - Is an OUTPUT parameter that holds the second part of split line. @p_round_xy (int) - Decimal degrees of precision for when formatting XY ordinates in WKT. @p_round_zm (int) - Decimal degrees of precision for when formatting Z ordinate in WKT.
Result.
Returns two parts of split linestring.
Example.
declare @v_linestring geometry = geometry::STGeomFromText('LINESTRING(0 0,10 10,20 20,30 30,40 40,50 50,60 60,70 70,80 80,90 90,100 100)',0), @v_point geometry = geometry::STGeomFromText('POINT(50 51)',0), @v_line1 geometry, @v_line2 geometry; exec [lrs].[STSplitProcedure] @p_linestring=@v_linestring, @p_point=@v_point, @p_line1=@v_line1 OUTPUT, @p_line2=@v_line2 OUTPUT, @p_round_xy=3, @p_round_zm=2; select @v_line1.STAsText() as line1, @v_line2.STAsText() as line2 GO line1 line2 LINESTRING (0 0, 10 10, 20 20, 30 30, 40 40, 50 50, 50.5 50.5) LINESTRING (50.5 50.5, 60 60, 70 70, 80 80, 90 90, 100 100)