Package org.apache.lucene.spatial
Class DistanceUtils
- java.lang.Object
-
- org.apache.lucene.spatial.DistanceUtils
-
@Deprecated public class DistanceUtils extends Object
Deprecated.NOTE: This API is still in flux and might change in incompatible ways in the next release.
-
-
Field Summary
Fields Modifier and Type Field Description static double
DEG_180_AS_RADS
Deprecated.static double
DEG_225_AS_RADS
Deprecated.static double
DEG_270_AS_RADS
Deprecated.static double
DEG_45_AS_RADS
Deprecated.static double
DEG_90_AS_RADS
Deprecated.static double
DEGREES_TO_RADIANS
Deprecated.static double
EARTH_EQUATORIAL_RADIUS_KM
Deprecated.static double
EARTH_EQUATORIAL_RADIUS_MI
Deprecated.static double
EARTH_MEAN_RADIUS_KM
Deprecated.The International Union of Geodesy and Geophysics says the Earth's mean radius in KM is: [1] http://en.wikipedia.org/wiki/Earth_radiusstatic double
EARTH_MEAN_RADIUS_MI
Deprecated.static double
KM_TO_MILES
Deprecated.static double
MILES_TO_KM
Deprecated.static double
RADIANS_TO_DEGREES
Deprecated.static double
SIN_45_AS_RADS
Deprecated.
-
Constructor Summary
Constructors Constructor Description DistanceUtils()
Deprecated.
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static double
angularDistance(double distance, double radius)
Deprecated.distance/radius.static Rectangle
getBoundary(double x1, double y1, double miles)
Deprecated.static double
getDistanceMi(double x1, double y1, double x2, double y2)
Deprecated.static double
getLLMDistance(double x1, double y1, double x2, double y2)
Deprecated.static double
haversine(double y1, double x1, double y2, double x2, double radius)
Deprecated.Computes the haversine distance between two points.static double[]
latLonCorner(double latCenter, double lonCenter, double distance, double[] result, boolean upperRight, double sphereRadius)
Deprecated.Uses Haversine to calculate the corner of a box (upper right or lower left) that is the distance away, given a sphere of the specified radius.static double[]
latLonCornerDegs(double latCenter, double lonCenter, double distance, double[] result, boolean upperRight, double sphereRadius)
Deprecated.static void
normLat(double[] latLng)
Deprecated.static void
normLng(double[] latLng)
Deprecated.Returns a normalized Lng rectangle shape for the bounding boxstatic double[]
parseLatitudeLongitude(double[] latLon, String latLonStr)
Deprecated.extract (by callingparsePoint(String[], String, int)
and validate the latitude and longitude contained in the String by making sure the latitude is between 90 & -90 and longitude is between -180 and 180.static double[]
parseLatitudeLongitude(String latLonStr)
Deprecated.static String[]
parsePoint(String[] out, String externalVal, int dimension)
Deprecated.Given a string containing dimension values encoded in it, separated by commas, return a String array of length dimension containing the values.static double[]
parsePointDouble(double[] out, String externalVal, int dimension)
Deprecated.Given a string containing dimension values encoded in it, separated by commas, return a double array of length dimension containing the values.static double[]
pointOnBearing(double startLat, double startLon, double distance, double bearing, double[] result, double sphereRadius)
Deprecated.Given a start point (startLat, startLon) and a bearing on a sphere of radius sphereRadius, return the destination point.static double
squaredEuclideanDistance(double[] vec1, double[] vec2)
Deprecated.The square of the Euclidean Distance.static double[]
vectorBoxCorner(double[] center, double[] result, double distance, boolean upperRight)
Deprecated.Return the coordinates of a vector that is the corner of a box (upper right or lower left), assuming a Rectangular coordinate system.static double
vectorDistance(double[] vec1, double[] vec2, double power)
Deprecated.Calculate the p-norm (i.e.static double
vectorDistance(double[] vec1, double[] vec2, double power, double oneOverPower)
Deprecated.Calculate the p-norm (i.e.
-
-
-
Field Detail
-
DEGREES_TO_RADIANS
public static final double DEGREES_TO_RADIANS
Deprecated.- See Also:
- Constant Field Values
-
RADIANS_TO_DEGREES
public static final double RADIANS_TO_DEGREES
Deprecated.- See Also:
- Constant Field Values
-
DEG_45_AS_RADS
public static final double DEG_45_AS_RADS
Deprecated.- See Also:
- Constant Field Values
-
SIN_45_AS_RADS
public static final double SIN_45_AS_RADS
Deprecated.
-
DEG_90_AS_RADS
public static final double DEG_90_AS_RADS
Deprecated.- See Also:
- Constant Field Values
-
DEG_180_AS_RADS
public static final double DEG_180_AS_RADS
Deprecated.- See Also:
- Constant Field Values
-
DEG_225_AS_RADS
public static final double DEG_225_AS_RADS
Deprecated.- See Also:
- Constant Field Values
-
DEG_270_AS_RADS
public static final double DEG_270_AS_RADS
Deprecated.- See Also:
- Constant Field Values
-
KM_TO_MILES
public static final double KM_TO_MILES
Deprecated.- See Also:
- Constant Field Values
-
MILES_TO_KM
public static final double MILES_TO_KM
Deprecated.- See Also:
- Constant Field Values
-
EARTH_MEAN_RADIUS_KM
public static final double EARTH_MEAN_RADIUS_KM
Deprecated.The International Union of Geodesy and Geophysics says the Earth's mean radius in KM is: [1] http://en.wikipedia.org/wiki/Earth_radius- See Also:
- Constant Field Values
-
EARTH_MEAN_RADIUS_MI
public static final double EARTH_MEAN_RADIUS_MI
Deprecated.- See Also:
- Constant Field Values
-
EARTH_EQUATORIAL_RADIUS_MI
public static final double EARTH_EQUATORIAL_RADIUS_MI
Deprecated.- See Also:
- Constant Field Values
-
EARTH_EQUATORIAL_RADIUS_KM
public static final double EARTH_EQUATORIAL_RADIUS_KM
Deprecated.- See Also:
- Constant Field Values
-
-
Method Detail
-
getDistanceMi
public static double getDistanceMi(double x1, double y1, double x2, double y2)
Deprecated.
-
getBoundary
public static Rectangle getBoundary(double x1, double y1, double miles)
Deprecated.- Parameters:
x1
-y1
-miles
-- Returns:
- boundary rectangle where getY/getX is top left, getMinY/getMinX is bottom right
-
getLLMDistance
public static double getLLMDistance(double x1, double y1, double x2, double y2)
Deprecated.
-
angularDistance
public static double angularDistance(double distance, double radius)
Deprecated.distance/radius.- Parameters:
distance
- The distance travelledradius
- The radius of the sphere- Returns:
- The angular distance, in radians
-
vectorDistance
public static double vectorDistance(double[] vec1, double[] vec2, double power)
Deprecated.Calculate the p-norm (i.e. length) beteen two vectors- Parameters:
vec1
- The first vectorvec2
- The second vectorpower
- The power (2 for Euclidean distance, 1 for manhattan, etc.)- Returns:
- The length. See http://en.wikipedia.org/wiki/Lp_space
- See Also:
vectorDistance(double[], double[], double, double)
-
vectorDistance
public static double vectorDistance(double[] vec1, double[] vec2, double power, double oneOverPower)
Deprecated.Calculate the p-norm (i.e. length) between two vectors- Parameters:
vec1
- The first vectorvec2
- The second vectorpower
- The power (2 for Euclidean distance, 1 for manhattan, etc.)oneOverPower
- If you've precalculated oneOverPower and cached it, use this method to save one division operation overvectorDistance(double[], double[], double)
.- Returns:
- The length.
-
vectorBoxCorner
public static double[] vectorBoxCorner(double[] center, double[] result, double distance, boolean upperRight)
Deprecated.Return the coordinates of a vector that is the corner of a box (upper right or lower left), assuming a Rectangular coordinate system. Note, this does not apply for points on a sphere or ellipse (although it could be used as an approximatation).- Parameters:
center
- The center pointresult
- Holds the result, potentially resizing if needed.distance
- The d from the center to the cornerupperRight
- If true, return the coords for the upper right corner, else return the lower left.- Returns:
- The point, either the upperLeft or the lower right
-
latLonCornerDegs
public static double[] latLonCornerDegs(double latCenter, double lonCenter, double distance, double[] result, boolean upperRight, double sphereRadius)
Deprecated.- Parameters:
latCenter
- In degreeslonCenter
- In degreesdistance
- The distanceresult
- A preallocated array to hold the results. If null, a new one is constructed.upperRight
- If true, calculate the upper right corner, else the lower leftsphereRadius
- The radius of the sphere to use.- Returns:
- The Lat/Lon in degrees
- See Also:
latLonCorner(double, double, double, double[], boolean, double)
-
latLonCorner
public static double[] latLonCorner(double latCenter, double lonCenter, double distance, double[] result, boolean upperRight, double sphereRadius)
Deprecated.Uses Haversine to calculate the corner of a box (upper right or lower left) that is the distance away, given a sphere of the specified radius. NOTE: This is not the same as calculating a box that transcribes a circle of the given distance.- Parameters:
latCenter
- In radianslonCenter
- In radiansdistance
- The distanceresult
- A preallocated array to hold the results. If null, a new one is constructed.upperRight
- If true, give lat/lon for the upper right corner, else lower leftsphereRadius
- The radius to use for the calculation- Returns:
- The Lat/Lon in Radians
-
pointOnBearing
public static double[] pointOnBearing(double startLat, double startLon, double distance, double bearing, double[] result, double sphereRadius)
Deprecated.Given a start point (startLat, startLon) and a bearing on a sphere of radius sphereRadius, return the destination point.- Parameters:
startLat
- The starting point latitude, in radiansstartLon
- The starting point longitude, in radiansdistance
- The distance to travel along the bearing. The units are assumed to be the same as the sphereRadius units, both of which is up to the caller to knowbearing
- The bearing, in radians. North is a 0 deg. bearing, east is 90 deg, south is 180 deg, west is 270 deg.result
- A preallocated array to hold the results. If null, a new one is constructed.sphereRadius
- The radius of the sphere to use for the calculation.- Returns:
- The destination point, in radians. First entry is latitude, second is longitude
-
normLat
public static void normLat(double[] latLng)
Deprecated.- Parameters:
latLng
- The lat/lon, in radians. lat in position 0, long in position 1
-
normLng
public static void normLng(double[] latLng)
Deprecated.Returns a normalized Lng rectangle shape for the bounding box- Parameters:
latLng
- The lat/lon, in radians, lat in position 0, long in position 1
-
squaredEuclideanDistance
public static double squaredEuclideanDistance(double[] vec1, double[] vec2)
Deprecated.The square of the Euclidean Distance. Not really a distance, but useful if all that matters is comparing the result to another one.- Parameters:
vec1
- The first pointvec2
- The second point- Returns:
- The squared Euclidean distance
-
haversine
public static double haversine(double y1, double x1, double y2, double x2, double radius)
Deprecated.Computes the haversine distance between two points. The arguments are in radians and provided in lat,lon order.- Parameters:
y1
- The y coordinate of the first point, in radiansx1
- The x coordinate of the first point, in radiansy2
- The y coordinate of the second point, in radiansx2
- The x coordinate of the second point, in radiansradius
- The radius of the sphere- Returns:
- The distance between the two points, as determined by the haversine formula.
-
parsePoint
public static String[] parsePoint(String[] out, String externalVal, int dimension) throws InvalidGeoException
Deprecated.Given a string containing dimension values encoded in it, separated by commas, return a String array of length dimension containing the values.- Parameters:
out
- A preallocated array. Must be size dimension. If it is not it will be resized.externalVal
- The value to parsedimension
- The expected number of values for the point- Returns:
- An array of the values that make up the point (aka vector)
- Throws:
InvalidGeoException
- if the dimension specified does not match the number of values in the externalValue.
-
parsePointDouble
public static double[] parsePointDouble(double[] out, String externalVal, int dimension) throws InvalidGeoException
Deprecated.Given a string containing dimension values encoded in it, separated by commas, return a double array of length dimension containing the values.- Parameters:
out
- A preallocated array. Must be size dimension. If it is not it will be resized.externalVal
- The value to parsedimension
- The expected number of values for the point- Returns:
- An array of the values that make up the point (aka vector)
- Throws:
InvalidGeoException
- if the dimension specified does not match the number of values in the externalValue.
-
parseLatitudeLongitude
public static final double[] parseLatitudeLongitude(String latLonStr) throws InvalidGeoException
Deprecated.- Throws:
InvalidGeoException
-
parseLatitudeLongitude
public static final double[] parseLatitudeLongitude(double[] latLon, String latLonStr) throws InvalidGeoException
Deprecated.extract (by callingparsePoint(String[], String, int)
and validate the latitude and longitude contained in the String by making sure the latitude is between 90 & -90 and longitude is between -180 and 180. The latitude is assumed to be the first part of the string and the longitude the second part.- Parameters:
latLon
- A preallocated array to hold the resultlatLonStr
- The string to parse. Latitude is the first value, longitude is the second.- Returns:
- The lat long
- Throws:
InvalidGeoException
- if there was an error parsing
-
-