geos::linearref::LinearLocation Class Reference

Represents a location along a LineString or MultiLineString. More...

`#include <LinearLocation.h>`

## Public Member Functions

| LinearLocation (std::size_t segmentIndex=0, double segmentFraction=0.0)
| Creates a location referring to the start of a linear geometry.
| LinearLocation (std::size_t componentIndex, std::size_t segmentIndex, double segmentFraction)
void | clamp (const geom::Geometry *linear)
| Ensures the indexes are valid for a given linear Geometry.
void | snapToVertex (const geom::Geometry *linearGeom, double minDistance)
| Snaps the value of this location to the nearest vertex on the given linear Geometry, if the vertex is closer than minDistance.
double | getSegmentLength (const geom::Geometry *linearGeom) const
| Gets the length of the segment in the given Geometry containing this location.
void | setToEnd (const geom::Geometry *linear)
| Sets the value of this location to refer the end of a linear geometry.
std::size_t | getComponentIndex () const
| Gets the component index for this location.
std::size_t | getSegmentIndex () const
| Gets the segment index for this location.
double | getSegmentFraction () const
| Gets the segment fraction for this location.
bool | isVertex () const
| Tests whether this location refers to a vertex.
geom::Coordinate | getCoordinate (const geom::Geometry *linearGeom) const
| Gets the Coordinate along the given linear Geometry which is referenced by this location.
std::unique_ptr< geom::LineSegment > | getSegment (const geom::Geometry *linearGeom) const
| Gets a LineSegment representing the segment of the given linear Geometry which contains this location.
bool | isValid (const geom::Geometry *linearGeom) const
| Tests whether this location refers to a valid location on the given linear Geometry.
int | compareTo (const LinearLocation &other) const
| Compares this object with the specified object for order.
int | compareLocationValues (std::size_t componentIndex1, std::size_t segmentIndex1, double segmentFraction1) const
| Compares this object with the specified index values for order.
bool | isOnSameSegment (const LinearLocation &loc) const
| Tests whether two locations are on the same segment in the parent Geometry.
bool | isEndpoint (const geom::Geometry &linearGeom) const
| Tests whether this location is an endpoint of the linear component it refers to.

## Static Public Member Functions

static LinearLocation | getEndLocation (const geom::Geometry *linear)
| Gets a location which refers to the end of a linear Geometry.
static geom::Coordinate | pointAlongSegmentByFraction (const geom::Coordinate &p0, const geom::Coordinate &p1, double frac)
| Computes the Coordinate of a point a given fraction along the line segment (p0, p1).
static int | compareLocationValues (std::size_t componentIndex0, std::size_t segmentIndex0, double segmentFraction0, std::size_t componentIndex1, std::size_t segmentIndex1, double segmentFraction1)
| Compares two sets of location values for order.

## Friends

std::ostream & | operator<< (std::ostream &out, const LinearLocation &obj)

## Detailed Description

Represents a location along a LineString or MultiLineString.

The referenced geometry is not maintained within this location, but must be provided for operations which require it. Various methods are provided to manipulate the location value and query the geometry it references.

## Member Function Documentation

## clamp()

void geos::linearref::LinearLocation::clamp | ( | const geom::Geometry * | linear | ) |

Ensures the indexes are valid for a given linear Geometry.

Parameters

  linear | a linear geometry

Referenced by geos::linearref::LocationIndexedLine::clampIndex().

## compareLocationValues() [1/2]

int geos::linearref::LinearLocation::compareLocationValues | ( | std::size_t | componentIndex0,
|  | std::size_t | segmentIndex0,
|  | double | segmentFraction0,
|  | std::size_t | componentIndex1,
|  | std::size_t | segmentIndex1,
|  | double | segmentFraction1 )

static

Compares two sets of location values for order.

Parameters

  componentIndex0 | a component index
  segmentIndex0 | a segment index
  segmentFraction0 | a segment fraction
  componentIndex1 | another component index
  segmentIndex1 | another segment index
  segmentFraction1 | another segment fraction

Returns
  a negative integer, zero, or a positive integer as the first set of location values is less than, equal to, or greater than the second set of locationValues

## compareLocationValues() [2/2]

int geos::linearref::LinearLocation::compareLocationValues | ( | std::size_t | componentIndex1,
|  | std::size_t | segmentIndex1,
|  | double | segmentFraction1 ) const

Compares this object with the specified index values for order.

Parameters

  componentIndex1 | a component index
  segmentIndex1 | a segment index
  segmentFraction1 | a segment fraction

Returns
  a negative integer, zero, or a positive integer as this LinearLocation is less than, equal to, or greater than the specified locationValues

## compareTo()

int geos::linearref::LinearLocation::compareTo | ( | const LinearLocation & | other | ) | const

Compares this object with the specified object for order.

Parameters

  other | the LinearLocation with which this Coordinate is being compared

Returns
  a negative integer, zero, or a positive integer as this LinearLocation is less than, equal to, or greater than the specified LinearLocation

References LinearLocation().

## getComponentIndex()

std::size_t geos::linearref::LinearLocation::getComponentIndex | ( |  | ) | const

Gets the component index for this location.

Returns
  the component index

## getCoordinate()

geom::Coordinate geos::linearref::LinearLocation::getCoordinate | ( | const geom::Geometry * | linearGeom | ) | const

Gets the Coordinate along the given linear Geometry which is referenced by this location.

Parameters

  linearGeom | the linear geometry referenced by this location

Returns
  the Coordinate at the location

## getEndLocation()

LinearLocation geos::linearref::LinearLocation::getEndLocation | ( | const geom::Geometry * | linear | ) |

static

Gets a location which refers to the end of a linear Geometry.

Parameters

  linear | the linear geometry

Returns
  a new LinearLocation

References LinearLocation().

Referenced by geos::linearref::LocationIndexedLine::getEndIndex().

## getSegment()

std::unique_ptr< geom::LineSegment > geos::linearref::LinearLocation::getSegment | ( | const geom::Geometry * | linearGeom | ) | const

Gets a LineSegment representing the segment of the given linear Geometry which contains this location.

Parameters

  linearGeom | a linear geometry

Returns
  the LineSegment containing the location

## getSegmentFraction()

double geos::linearref::LinearLocation::getSegmentFraction | ( |  | ) | const

Gets the segment fraction for this location.

Returns
  the segment fraction

## getSegmentIndex()

std::size_t geos::linearref::LinearLocation::getSegmentIndex | ( |  | ) | const

Gets the segment index for this location.

Returns
  the segment index

## getSegmentLength()

double geos::linearref::LinearLocation::getSegmentLength | ( | const geom::Geometry * | linearGeom | ) | const

Gets the length of the segment in the given Geometry containing this location.

Parameters

  linearGeom | a linear geometry

Returns
  the length of the segment

## isEndpoint()

bool geos::linearref::LinearLocation::isEndpoint | ( | const geom::Geometry & | linearGeom | ) | const

Tests whether this location is an endpoint of the linear component it refers to.

Parameters

  linearGeom | the linear geometry referenced by this location

Returns
  true if the location is a component endpoint

References LinearLocation().

## isOnSameSegment()

bool geos::linearref::LinearLocation::isOnSameSegment | ( | const LinearLocation & | loc | ) | const

Tests whether two locations are on the same segment in the parent Geometry.

Parameters

  loc | a location on the same geometry

Returns
  true if the locations are on the same segment of the parent geometry

References LinearLocation().

## isValid()

bool geos::linearref::LinearLocation::isValid | ( | const geom::Geometry * | linearGeom | ) | const

Tests whether this location refers to a valid location on the given linear Geometry.

Parameters

  linearGeom | a linear geometry

Returns
  true if this location is valid

## isVertex()

bool geos::linearref::LinearLocation::isVertex | ( |  | ) | const

Tests whether this location refers to a vertex.

Returns
  true if the location is a vertex

## pointAlongSegmentByFraction()

geom::Coordinate geos::linearref::LinearLocation::pointAlongSegmentByFraction | ( | const geom::Coordinate & | p0,
|  | const geom::Coordinate & | p1,
|  | double | frac )

static

Computes the Coordinate of a point a given fraction along the line segment (p0, p1).

If the fraction is greater than 1.0 the last point of the segment is returned. If the fraction is less than or equal to 0.0 the first point of the segment is returned. The Z ordinate is interpolated from the Z-ordinates of the given points, if they are specified.

Parameters

  p0 | the first point of the line segment
  p1 | the last point of the line segment
  frac | the length to the desired point

Returns
  the Coordinate of the desired point

## setToEnd()

void geos::linearref::LinearLocation::setToEnd | ( | const geom::Geometry * | linear | ) |

Sets the value of this location to refer the end of a linear geometry.

Parameters

  linear | the linear geometry to set

## snapToVertex()

void geos::linearref::LinearLocation::snapToVertex | ( | const geom::Geometry * | linearGeom,
|  | double | minDistance )

Snaps the value of this location to the nearest vertex on the given linear Geometry, if the vertex is closer than minDistance.

Parameters

  linearGeom | a linear geometry
  minDistance | the minimum allowable distance to a vertex

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

- LinearLocation.h