package mil.nga.giat.geowave.analytic.distance;
import com.vividsolutions.jts.geom.Coordinate;
public class CoordinateCosineDistanceFn implements
DistanceFn<Coordinate>
{
/**
*
*/
private static final long serialVersionUID = 2074200104626591273L;
@Override
public double measure(
final Coordinate x,
final Coordinate y ) {
final double ab = (x.x * y.x) + (x.y * y.y) + (x.z * y.z);
final double norma = Math.sqrt(Math.pow(
x.x,
2) + Math.pow(
x.y,
2) + Math.pow(
x.z,
2));
final double normb = Math.sqrt(Math.pow(
y.x,
2) + Math.pow(
y.y,
2) + Math.pow(
y.z,
2));
return ab / (norma * normb);
}
}