GEOS  3.7.0dev
geos::linearref::LengthIndexedLine Class Reference

Supports linear referencing along a linear Geometry using the length along the line as the index. Negative length values are taken as measured in the reverse direction from the end of the geometry. Out-of-range index values are handled by clamping them to the valid range of values. Non-simple lines (i.e. which loop back to cross or touch themselves) are supported. More...

`#include <LengthIndexedLine.h>`

Public Member Functions

LengthIndexedLine (const geom::Geometry *linearGeom)
Constructs an object which allows a linear Geometry to be linearly referenced using length as an index. More...

geom::Coordinate extractPoint (double index) const
Computes the Coordinate for the point on the line at the given index. If the index is out of range the first or last point on the line will be returned. The Z-ordinate of the computed point will be interpolated from the Z-ordinates of the line segment containing it, if they exist. More...

geom::Coordinate extractPoint (double index, double offsetDistance) const
Computes the Coordinate for the point on the line at the given index, offset by the given distance. More...

geom::GeometryextractLine (double startIndex, double endIndex) const

double indexOf (const geom::Coordinate &pt) const

double indexOfAfter (const geom::Coordinate &pt, double minIndex) const

double * indicesOf (const geom::Geometry *subLine) const

double project (const geom::Coordinate &pt) const

double getStartIndex () const

double getEndIndex () const

bool isValidIndex (double index) const

double clampIndex (double index) const

Detailed Description

Supports linear referencing along a linear Geometry using the length along the line as the index. Negative length values are taken as measured in the reverse direction from the end of the geometry. Out-of-range index values are handled by clamping them to the valid range of values. Non-simple lines (i.e. which loop back to cross or touch themselves) are supported.

Constructor & Destructor Documentation

 geos::linearref::LengthIndexedLine::LengthIndexedLine ( const geom::Geometry * linearGeom )

Constructs an object which allows a linear Geometry to be linearly referenced using length as an index.

Parameters
 linearGeom the linear geometry to reference along

Member Function Documentation

 double geos::linearref::LengthIndexedLine::clampIndex ( double index ) const

Computes a valid index for this line by clamping the given index to the valid range of index values

Returns
a valid index value
 geom::Geometry* geos::linearref::LengthIndexedLine::extractLine ( double startIndex, double endIndex ) const

Computes the LineString for the interval on the line between the given indices. If the endIndex lies before the startIndex, the computed geometry is reversed.

Parameters
 startIndex the index of the start of the interval endIndex the index of the end of the interval
Returns
the linear interval between the indices
 geom::Coordinate geos::linearref::LengthIndexedLine::extractPoint ( double index ) const

Computes the Coordinate for the point on the line at the given index. If the index is out of range the first or last point on the line will be returned. The Z-ordinate of the computed point will be interpolated from the Z-ordinates of the line segment containing it, if they exist.

Parameters
 index the index of the desired point
Returns
the Coordinate at the given index
 geom::Coordinate geos::linearref::LengthIndexedLine::extractPoint ( double index, double offsetDistance ) const

Computes the Coordinate for the point on the line at the given index, offset by the given distance.

If the index is out of range the first or last point on the line will be returned. The computed point is offset to the left of the line if the offset distance is positive, to the right if negative.

The Z-ordinate of the computed point will be interpolated from the Z-ordinates of the line segment containing it, if they exist.

Parameters
 index the index of the desired point offsetDistance the distance the point is offset from the segment (positive is to the left, negative is to the right)
Returns
the Coordinate at the given index
 double geos::linearref::LengthIndexedLine::getEndIndex ( ) const

Returns the index of the end of the line

Returns
the end index
 double geos::linearref::LengthIndexedLine::getStartIndex ( ) const

Returns the index of the start of the line

Returns
the start index
 double geos::linearref::LengthIndexedLine::indexOf ( const geom::Coordinate & pt ) const

Computes the minimum index for a point on the line. If the line is not simple (i.e. loops back on itself) a single point may have more than one possible index. In this case, the smallest index is returned.

The supplied point does not necessarily have to lie precisely on the line, but if it is far from the line the accuracy and performance of this function is not guaranteed. Use project to compute a guaranteed result for points which may be far from the line.

Parameters
 pt a point on the line
Returns
the minimum index of the point
project
 double geos::linearref::LengthIndexedLine::indexOfAfter ( const geom::Coordinate & pt, double minIndex ) const

Finds the index for a point on the line which is greater than the given index. If no such index exists, returns `minIndex`. This method can be used to determine all indexes for a point which occurs more than once on a non-simple line. It can also be used to disambiguate cases where the given point lies slightly off the line and is equidistant from two different points on the line.

The supplied point does not necessarily have to lie precisely on the line, but if it is far from the line the accuracy and performance of this function is not guaranteed. Use project to compute a guaranteed result for points which may be far from the line.

Parameters
 pt a point on the line minIndex the value the returned index must be greater than
Returns
the index of the point greater than the given minimum index
project
 double* geos::linearref::LengthIndexedLine::indicesOf ( const geom::Geometry * subLine ) const

Computes the indices for a subline of the line. (The subline must conform to the line; that is, all vertices in the subline (except possibly the first and last) must be vertices of the line and occcur in the same order).

Parameters
 subLine a subLine of the line
Returns
a pair of indices for the start and end of the subline.
 bool geos::linearref::LengthIndexedLine::isValidIndex ( double index ) const

Tests whether an index is in the valid index range for the line.

Parameters
 length the index to test
Returns
`true` if the index is in the valid range
 double geos::linearref::LengthIndexedLine::project ( const geom::Coordinate & pt ) const

Computes the index for the closest point on the line to the given point. If more than one point has the closest distance the first one along the line is returned. (The point does not necessarily have to lie precisely on the line.)

Parameters
 pt a point on the line
Returns
the index of the point

The documentation for this class was generated from the following file: