public class IndexedFacetDistance
extends java.lang.Object
Geometry
s
using a Branch-and-Bound algorithm.
The Branch-and-Bound algorithm operates over a
traversal of R-trees built
on the target and possibly also the query geometries.
This approach provides the following benefits:
getDistance(Geometry)
when one or both
input geometries are large,
or when evaluating many distance computations against
a single geometry.
This class is not thread-safe.
Modifier and Type | Class and Description |
---|---|
private static class |
IndexedFacetDistance.FacetSequenceDistance
Tests whether the base geometry lies within
a specified distance of the given geometry.
|
Modifier and Type | Field and Description |
---|---|
private STRtree |
cachedTree |
Constructor and Description |
---|
IndexedFacetDistance(Geometry g1)
Creates a new distance-finding instance for a given target
Geometry . |
Modifier and Type | Method and Description |
---|---|
static double |
distance(Geometry g1,
Geometry g2)
Computes the distance between two geometries using
the indexed approach.
|
private static double |
facetDistance(java.lang.Object[] obj) |
double |
getDistance(Geometry g)
Computes the distance from the base geometry to
the given geometry.
|
private STRtree cachedTree
public IndexedFacetDistance(Geometry g1)
Geometry
.
Distances will be computed to all facets of the input geometry.
The facets of the geometry are the discrete segments and points
contained in its components.
In the case of Lineal
and Puntal
inputs,
this is equivalent to computing the conventional distance.
In the case of Polygonal
inputs, this is equivalent
to computing the distance to the polygons boundaries.
g1
- a Geometry, which may be of any type.public static double distance(Geometry g1, Geometry g2)
For geometries with many segments or points, this can be faster than using a simple distance algorithm.
g1
- a geometryg2
- a geometrypublic double getDistance(Geometry g)
g
- the geometry to compute the distance toprivate static double facetDistance(java.lang.Object[] obj)