public final class GeoUtils extends Object
Modifier and Type | Class and Description |
---|---|
static class |
GeoUtils.WindingOrder
used to define the orientation of 3 points
-1 = Clockwise
0 = Colinear
1 = Counter-clockwise
|
Modifier and Type | Field and Description |
---|---|
static double |
EARTH_MEAN_RADIUS_METERS
mean earth axis in meters
|
static double |
MAX_LAT_INCL
Maximum latitude value.
|
static double |
MAX_LAT_RADIANS
max latitude value in radians
|
static double |
MAX_LON_INCL
Maximum longitude value.
|
static double |
MAX_LON_RADIANS
max longitude value in radians
|
static double |
MIN_LAT_INCL
Minimum latitude value.
|
static double |
MIN_LAT_RADIANS
min latitude value in radians
|
static double |
MIN_LON_INCL
Minimum longitude value.
|
static double |
MIN_LON_RADIANS
min longitude value in radians
|
Modifier and Type | Method and Description |
---|---|
static void |
checkLatitude(double latitude)
validates latitude value is within standard +/-90 coordinate bounds
|
static void |
checkLongitude(double longitude)
validates longitude value is within standard +/-180 coordinate bounds
|
static double |
distanceQuerySortKey(double radius)
binary search to find the exact sortKey needed to match the specified radius
any sort key lte this is a query match.
|
static boolean |
lineCrossesLine(double a1x,
double a1y,
double b1x,
double b1y,
double a2x,
double a2y,
double b2x,
double b2y)
uses orient method to compute whether two line segments cross
|
static boolean |
lineCrossesLineWithBoundary(double a1x,
double a1y,
double b1x,
double b1y,
double a2x,
double a2y,
double b2x,
double b2y)
uses orient method to compute whether two line segments cross; boundaries included - returning true for
lines that terminate on each other.
|
static int |
orient(double ax,
double ay,
double bx,
double by,
double cx,
double cy)
Returns a positive value if points a, b, and c are arranged in counter-clockwise order,
negative value if clockwise, zero if collinear.
|
static PointValues.Relation |
relate(double minLat,
double maxLat,
double minLon,
double maxLon,
double lat,
double lon,
double distanceSortKey,
double axisLat)
Compute the relation between the provided box and distance query.
|
static double |
sloppySin(double a)
Returns the trigonometric sine of an angle converted as a cos operation.
|
public static final double MIN_LON_INCL
public static final double MAX_LON_INCL
public static final double MIN_LAT_INCL
public static final double MAX_LAT_INCL
public static final double MIN_LON_RADIANS
public static final double MIN_LAT_RADIANS
public static final double MAX_LON_RADIANS
public static final double MAX_LAT_RADIANS
public static final double EARTH_MEAN_RADIUS_METERS
public static void checkLatitude(double latitude)
public static void checkLongitude(double longitude)
public static double sloppySin(double a)
Note that this is not quite right... e.g. sin(0) != 0
Special cases:
NaN
or an infinity, then the result is NaN
.
a
- an angle, in radians.Math.sin(double)
public static double distanceQuerySortKey(double radius)
public static PointValues.Relation relate(double minLat, double maxLat, double minLon, double maxLon, double lat, double lon, double distanceSortKey, double axisLat)
public static int orient(double ax, double ay, double bx, double by, double cx, double cy)
public static boolean lineCrossesLine(double a1x, double a1y, double b1x, double b1y, double a2x, double a2y, double b2x, double b2y)
public static boolean lineCrossesLineWithBoundary(double a1x, double a1y, double b1x, double b1y, double a2x, double a2y, double b2x, double b2y)
lineCrossesLine(double, double, double, double, double, double, double, double)
to exclude lines that terminate on each other from the truth tableCopyright © 2000-2020 Apache Software Foundation. All Rights Reserved.