|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.bbn.openmap.proj.Proj
com.bbn.openmap.proj.Cylindrical
com.bbn.openmap.proj.Mercator
Implements the Mercator projection.
Field Summary | |
protected float |
asinh_of_tanCtrLat
|
protected static float |
epsilon
|
protected int |
hy
|
protected static int |
MAX_RHUMB_SEGS
|
static java.lang.String |
MercatorName
The Mercator name. |
static int |
MercatorType
The Mercator type of projection. |
protected float |
tanCtrLat
|
protected int |
wx
|
Fields inherited from class com.bbn.openmap.proj.Cylindrical |
half_world, world |
Fields inherited from class com.bbn.openmap.proj.Proj |
ctrLat, ctrLon, DATELINE, height, maxscale, mercator, MIN_HEIGHT, MIN_WIDTH, minscale, NORTH_POLE, NUM_DEFAULT_CIRCLE_VERTS, NUM_DEFAULT_GREAT_SEGS, pixelsPerMeter, planetPixelCircumference, planetPixelRadius, planetRadius, projID, scale, scaled_radius, SOUTH_POLE, type, width, XSCALE_THRESHOLD, XTHRESHOLD |
Constructor Summary | |
Mercator(LatLonPoint center,
float scale,
int width,
int height)
Construct a Mercator projection. |
|
Mercator(LatLonPoint center,
float scale,
int width,
int height,
int type)
|
Method Summary | |
protected void |
computeParameters()
Called when some fundamental parameters change. |
java.awt.Point |
forward(float lat,
float lon,
java.awt.Point p)
Forward projects a lat,lon coordinates. |
java.awt.Point |
forward(float lat,
float lon,
java.awt.Point p,
boolean isRadian)
Forward projects lat,lon into XY space and returns a Point. |
java.awt.Point |
forward(LatLonPoint pt,
java.awt.Point p)
Projects a point from Lat/Lon space to X/Y space. |
java.lang.String |
getName()
Get the name string of the projection. |
LatLonPoint |
inverse(int x,
int y,
LatLonPoint llp)
Inverse project x,y coordinates into a LatLonPoint. |
LatLonPoint |
inverse(java.awt.Point pt,
LatLonPoint llp)
Inverse project a Point. |
boolean |
isPlotable(float lat,
float lon)
Checks if a LatLonPoint is plot-able. |
float |
normalize_latitude(float lat)
Sets radian latitude to something sane. |
protected float[] |
rhumbProject(java.awt.Point from,
java.awt.Point to,
boolean include_last,
int nsegs)
Calculates the points along a rhumbline between two XY points. |
protected static int |
rhumbStep(java.awt.Point pt1,
java.awt.Point pt2)
Computes the best stepping factor for a rhumbline. |
java.lang.String |
toString()
Return stringified description of this projection. |
Methods inherited from class com.bbn.openmap.proj.Cylindrical |
_forwardPoly, drawBackground, drawBackground, dumpPoly, forwardRaw, getLowerRight, getUpperLeft, pan |
Methods inherited from class com.bbn.openmap.proj.Proj |
clone, doPolyDispatch, equals, forward, forward, forwardArc, forwardArc, forwardArc, forwardCircle, forwardCircle, forwardCircle, forwardGreatPoly, forwardLine, forwardLine, forwardPoly, forwardPoly, forwardRaster, forwardRect, forwardRect, forwardRect, forwardRhumbPoly, getCenter, getHeight, getMaxScale, getMinScale, getPlanetPixelCircumference, getPlanetPixelRadius, getPlanetRadius, getPPM, getProjectionID, getProjectionType, getScale, getScale, getWidth, hashCode, init, inverse, inverse, isComplicatedLineType, isPlotable, makeClone, pan, panE, panE, panN, panN, panNE, panNE, panNW, panNW, panS, panS, panSE, panSE, panSW, panSW, panW, panW, setCenter, setCenter, setHeight, setMaxScale, setMinScale, setParms, setPlanetRadius, setPPM, setProjectionID, setScale, setWidth, wrap_longitude |
Methods inherited from class java.lang.Object |
finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
public static final transient java.lang.String MercatorName
public static final transient int MercatorType
protected static int MAX_RHUMB_SEGS
protected static float epsilon
protected int hy
protected int wx
protected float tanCtrLat
protected float asinh_of_tanCtrLat
Constructor Detail |
public Mercator(LatLonPoint center, float scale, int width, int height)
center
- LatLonPoint center of projectionscale
- float scale of projectionwidth
- width of screenheight
- height of screenpublic Mercator(LatLonPoint center, float scale, int width, int height, int type)
Method Detail |
public java.lang.String toString()
toString
in class Cylindrical
Projection.getProjectionID()
protected void computeParameters()
Each projection will decide how to respond to this change. For instance, they may need to recalculate "constant" paramters used in the forward() and inverse() calls.
computeParameters
in class Cylindrical
public float normalize_latitude(float lat)
normalize_latitude
in class Proj
lat
- float latitude in radians
LatLonPoint.normalize_latitude(float)
public boolean isPlotable(float lat, float lon)
A point is always plot-able in the Mercator projection (even the North and South poles since we normalize latitude).
lat
- float latitude in decimal degreeslon
- float longitude in decimal degrees
public java.awt.Point forward(LatLonPoint pt, java.awt.Point p)
pt
- LatLonPointp
- Point retval
public java.awt.Point forward(float lat, float lon, java.awt.Point p)
lat
- raw latitude in decimal degreeslon
- raw longitude in decimal degreesp
- Resulting XY Point
public java.awt.Point forward(float lat, float lon, java.awt.Point p, boolean isRadian)
lat
- float latitude in radianslon
- float longitude in radiansp
- Resulting XY PointisRadian
- bogus argument indicating that lat,lon
arguments are in radians
Projection.forward(float,float,Point)
public LatLonPoint inverse(java.awt.Point pt, LatLonPoint llp)
pt
- x,y Pointllp
- resulting LatLonPoint
public LatLonPoint inverse(int x, int y, LatLonPoint llp)
x
- integer x coordinatey
- integer y coordinatellp
- LatLonPoint
Proj.inverse(Point)
protected static final int rhumbStep(java.awt.Point pt1, java.awt.Point pt2)
Computes the best stepping factor between two x,y points in order to interpolate points on a rhumb line. (We calculate rhumb lines by forward projecting the line in the Mercator projection, and then calculating segments along the straight line between them.)
pt1
- Pointpt2
- Point
protected float[] rhumbProject(java.awt.Point from, java.awt.Point to, boolean include_last, int nsegs)
Loxodromes are straight in the Mercator projection. Calculate a bunch of extra points between the two points, inverse project back into LatLons and return all the vertices.
from
- Pointto
- Pointinclude_last
- include the very last point?nsegs
- number of segments
public java.lang.String getName()
getName
in interface Projection
getName
in class Cylindrical
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |