STReverseMeasure
STReverseMeasure is a TSQL function that reverses the measures assigned to the vertices of a (multi)linestring.
TSQL Function Signature.
Function STReverseMeasure ( @p_geometry geometry, @p_round_xy int = 3, @p_round_zm int = 2 ) Returns geometry
Description.
Reverses measures assigned to a linestring.
Supports CircularString and CompoundCurve geometry objects and subelements from 2012 onewards.
Parameters.
@p_geometry (geometry) - Supplied Linestring geometry. @p_round_xy (int) - Decimal degrees of precision to which calculated XY ordinates are rounded. @p_round_zm (int) - Decimal degrees of precision to which calculated ZM ordinates are rounded. <strong>Result.</strong> The function returns the input geometry will all its vertices' M ordinates reversed. <strong>Example.</strong> [code lang="sql"] WITH data AS ( SELECT geometry::STGeomFromText('COMPOUNDCURVE (CIRCULARSTRING (3 6.3 1.1 0, 0 7 1.1 3.1, -3 6.3 1.1 9.3), (-3 6.3 1.1 9.3, 0 0 1.4 16.3, 3 6.3 1.6 20.2))',0) as Geom ) SELECT 'Before' as text, d.geom.AsTextZM() as rGeom from data as d UNION ALL SELECT 'After' as text, [$(lrsowner)].[STReverseMeasure](d.geom,3,2).AsTextZM() as rGeom FROM data as d; GO text rGeom ------ ------------------------------------------------------------------------------------------------------------------------------- Before COMPOUNDCURVE (CIRCULARSTRING (3 6.3 1.1 0, 0 7 1.1 3.1, -3 6.3 1.1 9.3), (-3 6.3 1.1 9.3, 0 0 1.4 16.3, 3 6.3 1.6 20.2)) After COMPOUNDCURVE (CIRCULARSTRING (3 6.3 1.1 20.2, 0 7 1.1 17.1, -3 6.3 1.1 24.9), (-3 6.3 1.1 24.9, 0 0 1.4 17.9, 3 6.3 1.6 0))