Class DistanceOp


  • public class DistanceOp
    extends java.lang.Object
    Find two points on two 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.

    Version:
    1.7
    • Constructor Detail

      • DistanceOp

        public DistanceOp​(Geometry g0,
                          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

        public DistanceOp​(Geometry g0,
                          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
    • Method Detail

      • distance

        public static double distance​(Geometry g0,
                                      Geometry g1)
        Compute the distance between the nearest 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
      • nearestPoints

        public static Coordinate[] nearestPoints​(Geometry g0,
                                                 Geometry g1)
        Compute the the nearest 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 nearest points in the geometries
      • closestPoints

        public static Coordinate[] closestPoints​(Geometry g0,
                                                 Geometry g1)
        Deprecated.
        renamed to nearestPoints
        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 nearest points on the input geometries.
        Returns:
        the distance between the geometries or 0 if either input geometry is empty
        Throws:
        java.lang.IllegalArgumentException - if either input geometry is null
      • nearestPoints

        public Coordinate[] 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 Coordinates of the nearest points
      • closestPoints

        public Coordinate[] closestPoints()
        Deprecated.
        renamed to nearestPoints
        Returns:
        a pair of Coordinates of the nearest points
      • nearestLocations

        public GeometryLocation[] nearestLocations()
        Report the locations of the nearest points in the input geometries. The locations are presented in the same order as the input Geometries.
        Returns:
        a pair of GeometryLocations for the nearest points
      • closestLocations

        public GeometryLocation[] closestLocations()
        Deprecated.
        renamed to nearestLocations
        Returns:
        a pair of GeometryLocations for the nearest points