Posted on

# STLineLocatePoint

STLineLocatePoint — Returns a float between 0 and 1 representing the location of the closest point on LineString to the given Point

Function Specification.

```Function [\$(lrsowner)].[STLineLocatePoint] (
@p_linestring geometry,
@p_point      geometry,
@p_round_xy   int   = 3,
@p_round_zm   int   = 2
)
Returns geometry
```

Description.

This function, given a point near a the supplied measure @p_linestring, returns the measure/length ratio of the found position.

Notes.

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.

Parameters.

```    @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.
```

Result.

The function returns the ratio of the position of the point on @p_linestring using measure/measure range or length/total length.

Example.

```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
```