Posted on


STResetMeasure is a TSQL function that sets all existing assigned measures to NULL.

TSQL Function Specification.

Function [lrs].[STResetMeasure] (
           @p_geometry       geometry,
           @p_marker_measure float = -999999999,
           @p_round_xy       int = 3,
           @p_round_zm       int = 2
Returns geometry 


Sets all measures of a measured linestring to supplied @p_marker_measure value leaving dimensionality of geometry alone.

So, a linestring with XYM remains so, but all measures are set to value of -999999999 if @p_marker_measure is NULL, and @p_marker_measure if otherwise.

If null, then Vertex 2 in a linestring with value of 10.23,5.75,2.65 will be set to 10.23,5.75,-999999999.

If 9.9 is the passed @p_marker_measure value then Vertex 2 will be set to 10.23,5.75,9.9.

Supports CircularString and CompoundCurve geometry objects and subelements from 2012 onwards.


This is not the same as [lrs].[STRemoveMeasure] which remove measures etc and returns a pure 2D geometry.


    @p_geometry    (geometry) - Supplied Linestring geometry.
    @p_marker_measure (float) - Marker Measure applied to all measure values: Default is -999999999,
    @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.


The function returns the input linestring with all its M ordinates set to NULL.


SELECT [lrs].[STResetMeasure] (
          geometry::STGeomFromText('MULTILINESTRING((1 1 NULL 1,2 2 NULL 2),(3 3 NULL 3,4 4 NULL 4))',0),
       ).AsTextZM() as ResetMeasureLine

MULTILINESTRING ((1 1 NULL -999999999, 2 2 NULL -999999999), (3 3 NULL -999999999, 4 4 NULL -999999999))
Leave a Reply

Your email address will not be published. Required fields are marked *