GEOS  3.4.2
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
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)
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

Ensures the indexes are valid for a given linear Geometry.

Parameters:
lineara linear geometry

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

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:
componentIndex1a component index
segmentIndex1a segment index
segmentFraction1a 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
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:
componentIndex0a component index
segmentIndex0a segment index
segmentFraction0a segment fraction
componentIndex1another component index
segmentIndex1another segment index
segmentFraction1another 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

Compares this object with the specified object for order.

Parameters:
othe 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

Gets the component index for this location.

Returns:
the component index

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

Parameters:
linearGeomthe linear geometry referenced by this location
Returns:
the Coordinate at the location

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

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

Parameters:
linearthe linear geometry
Returns:
a new LinearLocation

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

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

Parameters:
linearGeoma linear geometry
Returns:
the LineSegment containing the location

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

Gets the segment fraction for this location

Returns:
the segment fraction

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

Gets the segment index for this location

Returns:
the segment index

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

Parameters:
linearGeoma linear geometry
Returns:
the length of the segment
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:
linearGeomthe linear geometry referenced by this location
Returns:
true if the location is a component endpoint

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

Parameters:
loca 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:
linearGeoma linear geometry
Returns:
true if this location is valid

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

Tests whether this location refers to a vertex

Returns:
true if the location is a vertex

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:
p0the first point of the line segment
p1the last point of the line segment
fracthe length to the desired point
Returns:
the Coordinate of the desired point

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

Parameters:
linearthe 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:
linearGeoma linear geometry
minDistancethe minimum allowable distance to a vertex

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