Posted on

STValidMeasure

STValidMeasure — Checks if supplied measure falls within the linestring’s measure range.

Function Specification.

Function [lrs].[STValidMeasure] (
           @p_linestring geometry,
           @p_measure    float
         )
Returns bit

Description.

Function returns 1 (true) if measure falls within the underlying linestring’s measure range or the 0 (false) string if the supplied measure does not fall within the measure range.

Supports All Linestring geometry types

Parameters.

    @p_linestring (geometry) - Measured linestring.
    @p_measure       (float) - Actual Measure value.

Result.

Returns 1 (true) if measure within range, 0 (false) otherwise.

Example.

select [lrs].[STValidMeasure] (
                geometry::STGeomFromText('LINESTRING(0 0 NULL 1,50 50 NULL 14.1,100 100 NULL 141.1)',0),
                0.5
       ) as measure_exists
GO
 
measure_exists
0
 
select [lrs].[STValidMeasure] (
                geometry::STGeomFromText('LINESTRING(0 0 NULL 1,50 50 NULL 14.1,100 100 NULL 141.1)',0),
                5
       ) as measure_exists
GO
 
measure_exists
1

select t.IntValue,
       case when [lrs].[STValidMeasure](geometry::STGeomFromText('LINESTRING(-4 -4 0 1, 0 0 0 5.6, 10 0 0 15.61, 10 10 0 25.4)',28355),
                                                cast(t.intValue as float) )
                 = 1 
            then 'Yes' 
            else 'No' 
        end 
         as isMeasureWithinLinestring
  from [dbo].[Generate_Series] (-1,30,4) as t;
GO

IntValue isMeasureWithinLinestring
      -1 No
       3 Yes
       7 Yes
      11 Yes
      15 Yes
      19 Yes
      23 Yes
      27 No
Leave a Reply

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