package mil.nga.giat.geowave.analytic.distance; import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.Geometry; /** * Calculate distance between two geometries. * * @see com.vividsolutions.jts.geom.Geometry * */ public class GeometryCentroidDistanceFn implements DistanceFn<Geometry> { /** * */ private static final long serialVersionUID = -4340689267509659236L; private DistanceFn<Coordinate> coordinateDistanceFunction = new CoordinateEuclideanDistanceFn(); public GeometryCentroidDistanceFn() {} public GeometryCentroidDistanceFn( final DistanceFn<Coordinate> coordinateDistanceFunction ) { super(); this.coordinateDistanceFunction = coordinateDistanceFunction; } public DistanceFn<Coordinate> getCoordinateDistanceFunction() { return coordinateDistanceFunction; } public void setCoordinateDistanceFunction( final DistanceFn<Coordinate> coordinateDistanceFunction ) { this.coordinateDistanceFunction = coordinateDistanceFunction; } @Override public double measure( final Geometry x, final Geometry y ) { return coordinateDistanceFunction.measure( x.getCentroid().getCoordinate(), y.getCentroid().getCoordinate()); } }