Public Member Functions | Static Public Member Functions | Friends

geos::linearref::LinearLocation Class Reference

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

#include <LinearLocation.h>

List of all members.

Public Member Functions

 LinearLocation (unsigned int segmentIndex=0, double segmentFraction=0.0)
 LinearLocation (unsigned int componentIndex, unsigned int segmentIndex, double segmentFraction)
void clamp (const geom::Geometry *linear)
void snapToVertex (const geom::Geometry *linearGeom, double minDistance)
double getSegmentLength (const geom::Geometry *linearGeom) const
void setToEnd (const geom::Geometry *linear)
unsigned int getComponentIndex () const
unsigned int getSegmentIndex () const
double getSegmentFraction () const
bool isVertex () const
geom::Coordinate getCoordinate (const geom::Geometry *linearGeom) const
std::auto_ptr< geom::LineSegmentgetSegment (const geom::Geometry *linearGeom) const
bool isValid (const geom::Geometry *linearGeom) const
int compareTo (const LinearLocation &other) const
int compareLocationValues (unsigned int componentIndex1, unsigned int segmentIndex1, double segmentFraction1) const
bool isOnSameSegment (const LinearLocation &loc) const

Static Public Member Functions

static LinearLocation getEndLocation (const geom::Geometry *linear)
static geom::Coordinate pointAlongSegmentByFraction (const geom::Coordinate &p0, const geom::Coordinate &p1, double frac)
static int compareLocationValues (unsigned int componentIndex0, unsigned int segmentIndex0, double segmentFraction0, unsigned int componentIndex1, unsigned int segmentIndex1, double segmentFraction1)

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.


Constructor & Destructor Documentation

geos::linearref::LinearLocation::LinearLocation ( unsigned int  segmentIndex = 0,
double  segmentFraction = 0.0 
)

Creates a location referring to the start of a linear geometry


Member Function Documentation

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

Ensures the indexes are valid for a given linear Geometry.

Parameters:
linear a linear geometry
static int geos::linearref::LinearLocation::compareLocationValues ( unsigned int  componentIndex0,
unsigned int  segmentIndex0,
double  segmentFraction0,
unsigned int  componentIndex1,
unsigned int  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
int geos::linearref::LinearLocation::compareLocationValues ( unsigned int  componentIndex1,
unsigned int  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 LineStringLocation is less than, equal to, or greater than the specified locationValues
int geos::linearref::LinearLocation::compareTo ( const LinearLocation other  )  const

Compares this object with the specified object for order.

Parameters:
o the LineStringLocation with which this Coordinate is being compared
Returns:
a negative integer, zero, or a positive integer as this LineStringLocation is less than, equal to, or greater than the specified LineStringLocation
unsigned int geos::linearref::LinearLocation::getComponentIndex (  )  const

Gets the component index for this location.

Returns:
the component index
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 a linear geometry
Returns:
the Coordinate at the location
static 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
std::auto_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
double geos::linearref::LinearLocation::getSegmentFraction (  )  const

Gets the segment fraction for this location

Returns:
the segment fraction
unsigned int geos::linearref::LinearLocation::getSegmentIndex (  )  const

Gets the segment index for this location

Returns:
the segment index
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
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
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
bool geos::linearref::LinearLocation::isVertex (  )  const

Tests whether this location refers to a vertex

Returns:
true if the location is a vertex
static 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
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
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: