STFindMeasureByPoint
STFindMeasureByPoint — Returns value of the measure dimension of a point on the provided linesting closest to the provided point.
Function Specification.
Function [lrs].[STFindMeasureByPoint] ( @p_linestring geometry, @p_point geometry, @p_round_xy int = 3, @p_round_zm int = 2 ) Returns geometry
Description.
Given a point near a the supplied measure @p_linestring, this function returns the measure of the closest point on the measured @p_linestring.
Returned measure value is rounded to @p_round_zm decimal digits of precision.
Notes.
Is identical to [lrs].[STInterpolatePoint].
Srid of @p_linestring and @p_point must be the same.
@p_linestring must be measured.
Parameters.
@p_linestring (geometry) - Measured linestring with or without Z ordinates. @p_point (geometry) - Point near to linestring. @p_round_xy (int) - Decimal digits of precision for XY ordinates. @p_round_zm (int) - Decimal digits of precision for M ordinate.
Result.
The function returns the measure value of the point found on @p_linestring closest to @p_point.
Example.
select [lrs].[STFindMeasureByPoint] ( geometry::STGeomFromText('LINESTRING(-4 -4 0 1, 0 0 0 5.6, 10 0 0 15.61, 10 10 0 25.4)',28355), geometry::Point(8,8,28355), 3,2) as measure union all select [lrs].[STFindMeasureByPoint] ( geometry::STGeomFromText('LINESTRING(-4 -4 0 1, 0 0 0 5.6, 10 0 0 15.61, 10 10 0 25.4)',28355), geometry::Point(10,0,28355), 3,2) as measure GO measure 23.44 15.61