STFindOffset
STFindOffset — Compute smallest perpendicular offset from supplied point to the supplied linestring.
Function Specification.
Function [lrs].[STFindOffset] ( @p_linestring geometry, @p_point geometry, @p_round_xy int = 3, @p_round_zm int = 2 ) Returns float
Description.
Given a point near @p_linestring, this function returns the perpendicular distance from it to the closest point on @p_linestring.
Notes.
Calls [lrs].[STInterpolatePoint]
Srid of @p_linestring and @p_point must be the same.
Parameters.
@p_linestring (geometry) - (Multi)LineString geometry. @p_point (geometry) - Offset Point for which closest linestring point measure is needed. @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 perpendicular offset distance from point to nearest point on line.
TODO.
Value is negative if on left of line; positive if on right.
Example.
select [lrs].[STFindOffset] ( 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) offset_distance union all select [lrs].[STFindOffset] ( 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) go offset_distance 2 0