Class DistanceOp
- java.lang.Object
-
- org.locationtech.jts.operation.distance.DistanceOp
-
public class DistanceOp extends java.lang.Object
Find two points on twoGeometry
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.
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
-
-
Field Summary
Fields Modifier and Type Field Description private Geometry[]
geom
private double
minDistance
private GeometryLocation[]
minDistanceLocation
private PointLocator
ptLocator
private double
terminateDistance
-
Constructor Summary
Constructors Constructor Description DistanceOp(Geometry g0, Geometry g1)
Constructs a DistanceOp that computes the distance and nearest points between the two specified geometries.DistanceOp(Geometry g0, Geometry g1, double terminateDistance)
Constructs a DistanceOp that computes the distance and nearest points between the two specified geometries.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description GeometryLocation[]
closestLocations()
Deprecated.renamed to nearestLocationsCoordinate[]
closestPoints()
Deprecated.renamed to nearestPointsstatic Coordinate[]
closestPoints(Geometry g0, Geometry g1)
Deprecated.renamed to nearestPointsprivate void
computeContainmentDistance()
private void
computeContainmentDistance(int polyGeomIndex, GeometryLocation[] locPtPoly)
private void
computeContainmentDistance(java.util.List locs, java.util.List polys, GeometryLocation[] locPtPoly)
private void
computeContainmentDistance(GeometryLocation ptLoc, Polygon poly, GeometryLocation[] locPtPoly)
private void
computeFacetDistance()
Computes distance between facets (lines and points) of input geometries.private void
computeMinDistance()
private void
computeMinDistance(LineString line0, LineString line1, GeometryLocation[] locGeom)
private void
computeMinDistance(LineString line, Point pt, GeometryLocation[] locGeom)
private void
computeMinDistanceLines(java.util.List lines0, java.util.List lines1, GeometryLocation[] locGeom)
private void
computeMinDistanceLinesPoints(java.util.List lines, java.util.List points, GeometryLocation[] locGeom)
private void
computeMinDistancePoints(java.util.List points0, java.util.List points1, GeometryLocation[] locGeom)
double
distance()
Report the distance between the nearest points on the input geometries.static double
distance(Geometry g0, Geometry g1)
Compute the distance between the nearest 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.GeometryLocation[]
nearestLocations()
Report the locations of the nearest points in the input geometries.Coordinate[]
nearestPoints()
Report the coordinates of the nearest points in the input geometries.static Coordinate[]
nearestPoints(Geometry g0, Geometry g1)
Compute the the nearest points of two geometries.private void
updateMinDistance(GeometryLocation[] locGeom, boolean flip)
-
-
-
Field Detail
-
geom
private Geometry[] geom
-
terminateDistance
private double terminateDistance
-
ptLocator
private PointLocator ptLocator
-
minDistanceLocation
private GeometryLocation[] minDistanceLocation
-
minDistance
private double minDistance
-
-
Method Detail
-
distance
public static double distance(Geometry g0, Geometry g1)
Compute the distance between the nearest points of two geometries.
-
isWithinDistance
public static boolean isWithinDistance(Geometry g0, Geometry g1, double distance)
Test whether two geometries lie within a given distance of each other.
-
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.
-
closestPoints
public static Coordinate[] closestPoints(Geometry g0, Geometry g1)
Deprecated.renamed to nearestPointsCompute the the closest points of two geometries. The points are presented in the same order as the input 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
Coordinate
s of the nearest points
-
closestPoints
public Coordinate[] closestPoints()
Deprecated.renamed to nearestPoints- Returns:
- a pair of
Coordinate
s 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
GeometryLocation
s for the nearest points
-
closestLocations
public GeometryLocation[] closestLocations()
Deprecated.renamed to nearestLocations- Returns:
- a pair of
GeometryLocation
s for the nearest points
-
updateMinDistance
private void updateMinDistance(GeometryLocation[] locGeom, boolean flip)
-
computeMinDistance
private void computeMinDistance()
-
computeContainmentDistance
private void computeContainmentDistance()
-
computeContainmentDistance
private void computeContainmentDistance(int polyGeomIndex, GeometryLocation[] locPtPoly)
-
computeContainmentDistance
private void computeContainmentDistance(java.util.List locs, java.util.List polys, GeometryLocation[] locPtPoly)
-
computeContainmentDistance
private void computeContainmentDistance(GeometryLocation ptLoc, Polygon poly, GeometryLocation[] locPtPoly)
-
computeFacetDistance
private void computeFacetDistance()
Computes distance between facets (lines and points) of input geometries.
-
computeMinDistanceLines
private void computeMinDistanceLines(java.util.List lines0, java.util.List lines1, GeometryLocation[] locGeom)
-
computeMinDistancePoints
private void computeMinDistancePoints(java.util.List points0, java.util.List points1, GeometryLocation[] locGeom)
-
computeMinDistanceLinesPoints
private void computeMinDistanceLinesPoints(java.util.List lines, java.util.List points, GeometryLocation[] locGeom)
-
computeMinDistance
private void computeMinDistance(LineString line0, LineString line1, GeometryLocation[] locGeom)
-
computeMinDistance
private void computeMinDistance(LineString line, Point pt, GeometryLocation[] locGeom)
-
-