GEOS  3.12.0dev
Public Member Functions | Static Public Member Functions | List of all members
geos::operation::distance::DistanceOp Class Reference

Find two points on two geom::Geometrys which lie within a given distance, or else are the nearest points on the geometries (in which case this also provides the distance between the geometries). More...

#include <DistanceOp.h>

Public Member Functions

 DistanceOp (const geom::Geometry *g0, const geom::Geometry *g1)
 
 DistanceOp (const geom::Geometry &g0, const geom::Geometry &g1)
 Constructs a DistanceOp that computes the distance and nearest points between the two specified geometries. More...
 
 DistanceOp (const geom::Geometry &g0, const geom::Geometry &g1, double terminateDistance)
 Constructs a DistanceOp that computes the distance and nearest points between the two specified geometries. More...
 
double distance ()
 
std::unique_ptr< geom::CoordinateSequencenearestPoints ()
 

Static Public Member Functions

static double distance (const geom::Geometry &g0, const geom::Geometry &g1)
 Compute the distance between the nearest points of two geometries. More...
 
static double distance (const geom::Geometry *g0, const geom::Geometry *g1)
 
static bool isWithinDistance (const geom::Geometry &g0, const geom::Geometry &g1, double distance)
 Test whether two geometries lie within a given distance of each other. More...
 
static std::unique_ptr< geom::CoordinateSequencenearestPoints (const geom::Geometry *g0, const geom::Geometry *g1)
 

Detailed Description

Find two points on two geom::Geometrys which lie within a given distance, or else are the nearest points on the geometries (in which case this also provides the distance between the geometries).

The distance computation also finds a pair of points in the input geometries which have the minimum distance between them. If a point lies in the interior of a line segment, the coordinate computed is a close approximation to the exact point.

Empty geometry collection components are ignored.

The algorithms used are straightforward O(n^2) comparisons. This worst-case performance could be improved on by using Voronoi techniques or spatial indexes.

Constructor & Destructor Documentation

◆ DistanceOp() [1/3]

geos::operation::distance::DistanceOp::DistanceOp ( const geom::Geometry g0,
const geom::Geometry g1 
)
Deprecated:
use the one taking references

◆ DistanceOp() [2/3]

geos::operation::distance::DistanceOp::DistanceOp ( const geom::Geometry g0,
const geom::Geometry g1 
)

Constructs a DistanceOp that computes the distance and nearest points between the two specified geometries.

Parameters
g0a Geometry
g1a Geometry

◆ DistanceOp() [3/3]

geos::operation::distance::DistanceOp::DistanceOp ( const geom::Geometry g0,
const geom::Geometry g1,
double  terminateDistance 
)

Constructs a DistanceOp that computes the distance and nearest points between the two specified geometries.

Parameters
g0a Geometry
g1a Geometry
terminateDistancethe distance on which to terminate the search

Member Function Documentation

◆ distance() [1/3]

double geos::operation::distance::DistanceOp::distance ( )

Report the distance between the closest points on the input geometries.

Returns
the distance between the geometries

◆ distance() [2/3]

static double geos::operation::distance::DistanceOp::distance ( const geom::Geometry g0,
const geom::Geometry g1 
)
static

Compute the distance between the nearest points of two geometries.

Parameters
g0a geom::Geometry
g1another geom::Geometry
Returns
the distance between the geometries
0 if either input geometry is empty
Exceptions
IllegalArgumentExceptionif either input geometry is null

◆ distance() [3/3]

static double geos::operation::distance::DistanceOp::distance ( const geom::Geometry g0,
const geom::Geometry g1 
)
static
Deprecated:
, use the version taking references

◆ isWithinDistance()

static bool geos::operation::distance::DistanceOp::isWithinDistance ( const geom::Geometry g0,
const geom::Geometry g1,
double  distance 
)
static

Test whether two geometries lie within a given distance of each other.

Parameters
g0a geom::Geometry
g1another geom::Geometry
distancethe distance to test
Returns
true if g0.distance(g1) <= distance

◆ nearestPoints() [1/2]

std::unique_ptr<geom::CoordinateSequence> geos::operation::distance::DistanceOp::nearestPoints ( )

Report the coordinates of the nearest points in the input geometries. The points are presented in the same order as the input Geometries.

Returns
a pair of geom::Coordinates of the nearest points as a newly allocated object (ownership to caller)

◆ nearestPoints() [2/2]

static std::unique_ptr<geom::CoordinateSequence> geos::operation::distance::DistanceOp::nearestPoints ( const geom::Geometry g0,
const geom::Geometry g1 
)
static

Compute the the nearest points of two geometries.

The points are presented in the same order as the input Geometries.

Parameters
g0a geom::Geometry
g1another geom::Geometry
Returns
the nearest points in the geometries, ownership to caller. A NULL return means one of the geometries is empty.

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