com.vividsolutions.jts.operation.distance
Class DistanceOp

java.lang.Object
  extended bycom.vividsolutions.jts.operation.distance.DistanceOp

public class DistanceOp
extends java.lang.Object

Find two points on two Geometrys which lie within a given distance, or else are the closest 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.

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

Version:
1.7

Constructor Summary
DistanceOp(Geometry g0, Geometry g1)
          Constructs a DistanceOp that computes the distance and closest points between the two specified geometries.
DistanceOp(Geometry g0, Geometry g1, double terminateDistance)
          Constructs a DistanceOp that computes the distance and closest points between the two specified geometries.
 
Method Summary
 GeometryLocation[] closestLocations()
          Report the locations of the closest points in the input geometries.
 Coordinate[] closestPoints()
          Report the coordinates of the closest points in the input geometries.
static Coordinate[] closestPoints(Geometry g0, Geometry g1)
          Compute the the closest points of two geometries.
 double distance()
          Report the distance between the closest points on the input geometries.
static double distance(Geometry g0, Geometry g1)
          Compute the distance between the closest points of two geometries.
static boolean isWithinDistance(Geometry g0, Geometry g1, double distance)
          Test whether two geometries lie within a given distance of each other.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DistanceOp

public DistanceOp(Geometry g0,
                  Geometry g1)
Constructs a DistanceOp that computes the distance and closest points between the two specified geometries.

Parameters:
g0 - a Geometry
g1 - a Geometry

DistanceOp

public DistanceOp(Geometry g0,
                  Geometry g1,
                  double terminateDistance)
Constructs a DistanceOp that computes the distance and closest points between the two specified geometries.

Parameters:
g0 - a Geometry
g1 - a Geometry
terminateDistance - the distance on which to terminate the search
Method Detail

distance

public static double distance(Geometry g0,
                              Geometry g1)
Compute the distance between the closest points of two geometries.

Parameters:
g0 - a Geometry
g1 - another Geometry
Returns:
the distance between the geometries

isWithinDistance

public static boolean isWithinDistance(Geometry g0,
                                       Geometry g1,
                                       double distance)
Test whether two geometries lie within a given distance of each other.

Parameters:
g0 - a Geometry
g1 - another Geometry
distance - the distance to test
Returns:
true if g0.distance(g1) <= distance

closestPoints

public static Coordinate[] closestPoints(Geometry g0,
                                         Geometry g1)
Compute the the closest points of two geometries. The points are presented in the same order as the input Geometries.

Parameters:
g0 - a Geometry
g1 - another Geometry
Returns:
the closest points in the geometries

distance

public double distance()
Report the distance between the closest points on the input geometries.

Returns:
the distance between the geometries

closestPoints

public Coordinate[] closestPoints()
Report the coordinates of the closest points in the input geometries. The points are presented in the same order as the input Geometries.

Returns:
a pair of Coordinates of the closest points

closestLocations

public GeometryLocation[] closestLocations()
Report the locations of the closest points in the input geometries. The locations are presented in the same order as the input Geometries.

Returns:
a pair of GeometryLocations for the closest points