|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.bbn.openmap.proj.ProjMath
public final class ProjMath
Math functions used by projection code.
Field Summary | |
---|---|
static double |
DATELINE_D
Dateline longitude in radians. |
static double |
DATELINE_DEG_D
Dateline longitude in degrees. |
static float |
DATELINE_F
Dateline longitude in radians. |
static double |
LON_RANGE_D
Longitude range in radians. |
static double |
LON_RANGE_DEG_D
Longitude range in degrees. |
static float |
LON_RANGE_F
Longitude range in radians. |
static double |
NORTH_POLE_D
North pole latitude in radians. |
static double |
NORTH_POLE_DEG_D
North pole latitude in degrees. |
static float |
NORTH_POLE_F
North pole latitude in radians. |
static double |
SOUTH_POLE_D
South pole latitude in radians. |
static double |
SOUTH_POLE_DEG_D
South pole latitude in degrees. |
static float |
SOUTH_POLE_F
South pole latitude in radians. |
Method Summary | |
---|---|
static double[] |
arrayDegToRad(double[] degs)
Converts an array of decimal degrees double lat/lons to double radians in place. |
static float[] |
arrayDegToRad(float[] degs)
Converts an array of decimal degrees float lat/lons to float radians in place. |
static double[] |
arrayRadToDeg(double[] rads)
Converts an array of radian double lat/lons to decimal degrees in place. |
static float[] |
arrayRadToDeg(float[] rads)
Converts an array of radian float lat/lons to decimal degrees in place. |
static long |
DEG_TO_SC(double deg)
Convert between decimal degrees and scoords. |
static double |
degToRad(double deg)
Convert degrees to radians. |
static float |
degToRad(float deg)
Convert degrees to radians. |
static double |
distance(double[] radianCoords)
Cumulative distance calculated between coords. |
static float |
geocentric_latitude(float lat,
float lon)
Deprecated. use geocentricLatitude instead. |
static float |
geocentricLatitude(float lat,
float flat)
Calculate the geocentric latitude given a geographic latitude. |
static float |
geographic_latitude(float lat,
float lon)
Deprecated. use geographicLoatitude instead. |
static float |
geographicLatitude(float lat,
float flat)
Calculate the geographic latitude given a geocentric latitude. |
static double[] |
getProjectionScreenOutlineCoords(Projection sourceMapProjection)
Walks around the perimeter of the sourceMapProjection and returns the lat/lon coords of the outline. |
static java.awt.geom.Rectangle2D |
getRatioBox(Projection proj,
java.awt.geom.Point2D pt1,
java.awt.geom.Point2D pt2,
boolean zoomOnCenter)
Given a projection to match against and the starting point of a box (pt1), look at pt2 to see if it represents the ratio of the projection map size. |
static java.awt.Point |
getRatioPoint(Projection proj,
java.awt.Point pt1,
java.awt.Point pt2)
Given a projection and the starting point of a box (pt1), look at pt2 to see if it represents the ratio of the projection map size. |
protected static float |
getScale(java.awt.geom.Point2D ll1,
java.awt.geom.Point2D ll2,
java.awt.geom.Point2D point1,
java.awt.geom.Point2D point2,
Projection projection)
Given a couple of points representing a bounding box, find out what the scale should be in order to make those points appear at the corners of the projection. |
static float |
getScale(java.awt.geom.Point2D ll1,
java.awt.geom.Point2D ll2,
Projection projection)
Given a couple of points representing a bounding box, find out what the scale should be in order to make those points appear at the corners of the projection. |
static float |
getScale(java.awt.Point point1,
java.awt.Point point2,
Projection projection)
Given a couple of points representing a bounding box, find out what the scale should be in order to make those points appear at the corners of the projection. |
static float |
getScaleFromProjected(java.awt.geom.Point2D point1,
java.awt.geom.Point2D point2,
Projection projection)
Given a couple of points representing a bounding box of projected coordinates, find out what the scale should be in order to make those points appear at the corners of the projection, with the intention that the bounding box will then fill the projected space. |
static int |
hashLatLon(float lat,
float lon)
Generate a hashCode value for a lat/lon pair. |
static boolean |
isCrossingDateline(double leftLon,
double rightLon,
float projScale)
Generic test for seeing if an left longitude value and a right longitude value seem to constitute crossing the dateline. |
static boolean |
isVisible(Projection sourceMapProjection,
java.awt.geom.Point2D llp)
Returns true if the Point is visible on the provided projection. |
static float |
lonDistance(float lon1,
float lon2)
Calculate the shortest arc distance between two lons. |
static double |
normalize_latitude(double lat,
double epsilon)
Deprecated. use normalizeLatitude instead. |
static float |
normalize_latitude(float lat,
float epsilon)
Deprecated. use normalizeLatitude instead. |
static double |
normalizeLatitude(double lat,
double epsilon)
Normalizes radian latitude. |
static float |
normalizeLatitude(float lat,
float epsilon)
Normalizes radian latitude. |
static double |
qint(double x)
Rounds the quantity away from 0. |
static double |
radToDeg(double rad)
Convert radians to degrees. |
static float |
radToDeg(float rad)
Convert radians to degrees. |
static double |
roundAdjust(double x)
rounds the quantity away from 0. |
static double |
SC_TO_DEG(int sc)
Convert between decimal degrees and scoords. |
static float |
sphericalUnitsToDeg(float u,
float uCircumference)
Converts units (km, nm, miles, etc) to decimal degrees for a spherical planet. |
static float |
sphericalUnitsToRad(float u,
float uCircumference)
Converts units (km, nm, miles, etc) to arc radians for a spherical planet. |
static double |
wrap_longitude(double lon)
Deprecated. use wrapLongitude instead. |
static float |
wrap_longitude(float lon)
Deprecated. use wrapLongitde instead. |
static double |
wrapLongitude(double lon)
Sets radian longitude to something sane. |
static float |
wrapLongitude(float lon)
Sets radian longitude to something sane. |
static double |
wrapLongitudeDeg(double lon)
Sets degree longitude to something sane. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final transient float NORTH_POLE_F
public static final transient float SOUTH_POLE_F
public static final transient double NORTH_POLE_D
public static final transient double NORTH_POLE_DEG_D
public static final transient double SOUTH_POLE_D
public static final transient double SOUTH_POLE_DEG_D
public static final transient float DATELINE_F
public static final transient double DATELINE_D
public static final transient double DATELINE_DEG_D
public static final transient float LON_RANGE_F
public static final transient double LON_RANGE_D
public static final transient double LON_RANGE_DEG_D
Method Detail |
---|
public static final double roundAdjust(double x)
x
- in value
qint(double)
public static final double qint(double x)
x
- value
public static final float lonDistance(float lon1, float lon2)
lon1
- radianslon2
- radians
public static final long DEG_TO_SC(double deg)
deg
- degrees
public static final double SC_TO_DEG(int sc)
sc
- scoords
public static final double radToDeg(double rad)
rad
- radians
public static final float radToDeg(float rad)
rad
- radians
public static final double degToRad(double deg)
deg
- degrees
public static final float degToRad(float deg)
deg
- degrees
public static final int hashLatLon(float lat, float lon)
lat
- latitudelon
- longitude
public static final float[] arrayDegToRad(float[] degs)
degs
- float[] lat/lons in decimal degrees
public static final float[] arrayRadToDeg(float[] rads)
rads
- float[] lat/lons in radians
public static final double[] arrayDegToRad(double[] degs)
degs
- double[] lat/lons in decimal degrees
public static final double[] arrayRadToDeg(double[] rads)
rads
- double[] lat/lons in radians
public static final float normalize_latitude(float lat, float epsilon)
public static final float normalizeLatitude(float lat, float epsilon)
lat
- float latitude in radiansepsilon
- epsilon (>= 0) radians distance from pole
LatLonPoint.normalizeLatitude(double)
public static final double normalize_latitude(double lat, double epsilon)
public static final double normalizeLatitude(double lat, double epsilon)
lat
- double latitude in radiansepsilon
- epsilon (>= 0) radians distance from pole
LatLonPoint.normalizeLatitude(double)
public static final float wrap_longitude(float lon)
public static final float wrapLongitude(float lon)
lon
- float longitude in radians
public static final double wrap_longitude(double lon)
public static final double wrapLongitude(double lon)
lon
- double longitude in radians
public static final double wrapLongitudeDeg(double lon)
lon
- double longitude in degrees
public static final float sphericalUnitsToDeg(float u, float uCircumference)
u
- units float valueuCircumference
- units circumference of planet
public static final float sphericalUnitsToRad(float u, float uCircumference)
u
- units float valueuCircumference
- units circumference of planet
public static final float geocentric_latitude(float lat, float lon)
public static final float geocentricLatitude(float lat, float flat)
Translated from Ken Anderson's lisp code Freeing the Essence of Computation
lat
- float geographic latitude in radiansflat
- float flatening factor
geographic_latitude(float, float)
public static final float geographic_latitude(float lat, float lon)
public static final float geographicLatitude(float lat, float flat)
lat
- float geocentric latitude in radiansflat
- float flatening factor
geocentric_latitude(float, float)
public static float getScale(java.awt.geom.Point2D ll1, java.awt.geom.Point2D ll2, Projection projection)
ll1
- the upper left coordinates of the bounding box.ll2
- the lower right coordinates of the bounding box.projection
- the projection to use for other projection parameters,
like map width and map height.public static float getScale(java.awt.Point point1, java.awt.Point point2, Projection projection)
point1
- a java.awt.Point reflecting a pixel spot on the projection,
usually the upper left corner of the area of interest.point2
- a java.awt.Point reflecting a pixel spot on the projection,
usually the lower right corner of the area of interest.projection
- the projection to use for other projection parameters,
like map width and map height.public static float getScaleFromProjected(java.awt.geom.Point2D point1, java.awt.geom.Point2D point2, Projection projection)
point1
- a java.awt.Point reflecting a pixel spot on the projection,
usually the upper left corner of the area of interest.point2
- a java.awt.Point reflecting a pixel spot on the projection,
usually the lower right corner of the area of interest.projection
- the projection to use for other projection parameters,
like map width and map height.protected static float getScale(java.awt.geom.Point2D ll1, java.awt.geom.Point2D ll2, java.awt.geom.Point2D point1, java.awt.geom.Point2D point2, Projection projection)
ll1
- the upper left coordinates of the bounding box.ll2
- the lower right coordinates of the bounding box.point1
- a java.awt.Point reflecting a pixel spot on the projection
that matches the ll1 coordinate in the new space, the upper left
corner of the area of interest. Where the ll1 is going to go in
the new projection.point2
- a java.awt.Point reflecting a pixel spot on the projection
that matches the ll2 coordinate in the new space, usually the
lower right corner of the area of interest. Where the ll2 is going
to go in the new projection.projection
- the projection to use to query to get the scale for,
for projection type and height and width.public static boolean isCrossingDateline(double leftLon, double rightLon, float projScale)
leftLon
- the leftmost longitude, in decimal degrees. Expected to
represent the location of the left side of a map window.rightLon
- the rightmost longitude, in decimal degrees. Expected to
represent the location of the right side of a map window.projScale
- the projection scale, considered if the two values are
very close to each other and leftLon less than rightLon.
public static java.awt.Point getRatioPoint(Projection proj, java.awt.Point pt1, java.awt.Point pt2)
proj
- the projection to use for the calculations.pt1
- upper left point in pixel spacept2
- second point in pixel space.
public static java.awt.geom.Rectangle2D getRatioBox(Projection proj, java.awt.geom.Point2D pt1, java.awt.geom.Point2D pt2, boolean zoomOnCenter)
proj
- the current projection.pt1
- first point, where mouse down happened, for instance.pt2
- latest point, where mouse released happened, for instance.zoomOnCenter
- whether the first point represents the center of the
zoom box, or one of the corners.
public static double[] getProjectionScreenOutlineCoords(Projection sourceMapProjection)
sourceMapProjection
- the source map's projection.
public static boolean isVisible(Projection sourceMapProjection, java.awt.geom.Point2D llp)
sourceMapProjection
- llp
-
public static double distance(double[] radianCoords)
radianCoords
- lat, lon, lat, lon order
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |