#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. | |
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. | |
geom::Coordinate | extractPoint (double index, double offsetDistance) const |
geom::Geometry * | extractLine (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 |
geos::linearref::LengthIndexedLine::LengthIndexedLine | ( | const geom::Geometry * | linearGeom | ) |
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.
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.
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) |
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.
startIndex | the index of the start of the interval | |
endIndex | the index of the end of the interval |
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.
pt | a point on the line |
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.
pt | a point on the line | |
minIndex | the value the returned index must be greater than |
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).
subLine | a subLine of the line |
double geos::linearref::LengthIndexedLine::project | ( | const geom::Coordinate & | pt | ) | const |
double geos::linearref::LengthIndexedLine::getStartIndex | ( | ) | const |
double geos::linearref::LengthIndexedLine::getEndIndex | ( | ) | const |
bool geos::linearref::LengthIndexedLine::isValidIndex | ( | double | index | ) | const |
double geos::linearref::LengthIndexedLine::clampIndex | ( | double | index | ) | const |