STLineLocatePoint — Returns a float between 0 and 1 representing the location of the closest point on LineString to the given Point
Function [$(lrsowner)].[STLineLocatePoint] ( @p_linestring geometry, @p_point geometry, @p_round_xy int = 3, @p_round_zm int = 2 ) Returns geometry
This function, given a point near a the supplied measure @p_linestring, returns the measure/length ratio of the found position.
Is identical to PostGIS’s ST_LineLocatePoint.
Srid of @p_linestring and @p_point must be the same.
If @p_linestring is measured ratio returned is measure of located point / MeasureRange of linestring.
If @p_linestring is not measured the ratio returned is position of located point from start / STLenth of linestring.
@p_linestring (geometry) - Linestring geometry with or without measures. @p_point (geometry) - Point near to linestring. @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 ratio of the position of the point on @p_linestring using measure/measure range or length/total length.
select [lrs].[STLineLocatePoint] ( 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), default, default ) as ratio union all select [lrs].[STLineLocatePoint] ( geometry::STGeomFromText('LINESTRING(-4 -4,0 0,10 0,10 10)',28355), geometry::Point(10,0,28355), 4, 8 ) as ratio GO ratio 23.44 15.6