geos::operation::distance::DistanceOp Class Reference

Find two points on two `geom::Geometry`s 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.
| 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.
double | distance ()
std::unique_ptr< geom::CoordinateSequence > | nearestPoints ()

## 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.
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.
static std::unique_ptr< geom::CoordinateSequence > | nearestPoints (const geom::Geometry *g0, const geom::Geometry *g1)

## Detailed Description

Find two points on two `geom::Geometry`s 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

Referenced by DistanceOp().

## 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

  g0 | a Geometry
  g1 | a 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

  g0 | a Geometry
  g1 | a Geometry
  terminateDistance | the distance on which to terminate the search

References DistanceOp().

## 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]

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

  g0 | a `geom::Geometry`
  g1 | another `geom::Geometry`

Returns
  the distance between the geometries
  0 if either input geometry is empty

Exceptions

  IllegalArgumentException | if either input geometry is null

Referenced by isWithinDistance().

## distance() [3/3]

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

static

Deprecated
  , use the version taking references

## isWithinDistance()

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

  g0 | a `geom::Geometry`
  g1 | another `geom::Geometry`
  distance | the distance to test

Returns
  true if g0.distance(g1) <= distance

References 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::Coordinate`s of the nearest points as a newly allocated object (ownership to caller)

## nearestPoints() [2/2]

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

  g0 | a `geom::Geometry`
  g1 | another `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:

- DistanceOp.h