Posted on

STRemoveMeasure

STRemoveMeasure — Function that removes measure values from all points in linestring.

Function Specification.

Function [lrs].[STRemoveMeasure] (
                  @p_linestring geometry,
                  @p_round_xy   int = 3,
                  @p_round_zm   int = 2
         )
Returns geometry

Description.

Removes all measure ordinate values.

Linestring with XYM ordinates is returned with XY ordinates.

Linestring with XYZM ordinates is returned with XYZ ordinates. If all Z values are NULL, the Z is removed.

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

Parameters.

    @p_linestring (geometry) - Supplied Linestring geometry.
    @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 input geometry with all M ordinates removed.

Example.

select [lrs].[STRemoveMeasure] (
             geometry::STGeomFromText('LINESTRING(1 1 NULL 1,2 2 NULL 2)',0),
             3,
             2
       ).AsTextZM() as RemoveMeasureLine
union all
select [lrs].[STRemoveMeasure] (
             geometry::STGeomFromText('LINESTRING(1 1 1 1,2 2 2 2)',0),
             3,
             2
       ).AsTextZM() as RemoveMeasureLine
union all
select [lrs].[STRemoveMeasure] (
             geometry::STGeomFromText('MULTILINESTRING((1 1 NULL 1,2 2 NULL 2),(3 3 NULL 3,4 4 NULL 4))',0),
             3,
             2
       ).AsTextZM() as RemoveMeasureLine
union all
select [lrs].[STRemoveMeasure] (
             geometry::STGeomFromText('MULTILINESTRING((1 1 1 1,2 2 2 2),(3 3 3 3,4 4 4 4))',0),
             3,
             2
       ).AsTextZM() as RemoveMeasureLine
GO

RemoveMeasureLine
LINESTRING (1 1, 2 2)
LINESTRING (1 1 1, 2 2 2)
MULTILINESTRING ((1 1, 2 2), (3 3, 4 4))
MULTILINESTRING ((1 1 1, 2 2 2), (3 3 3, 4 4 4))
Leave a Reply

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