mccombe.mapping
Class TransverseMercator

java.lang.Object
  extended by mccombe.mapping.CoordinateSystem
      extended by mccombe.mapping.Projection
          extended by mccombe.mapping.TransverseMercator
Direct Known Subclasses:
BMN, IrishGrid, NZTM2000, OSGB, UTM

public abstract class TransverseMercator
extends Projection

TransverseMercator is an abstract base class for coordinate systems derived from the Transverse Mercator Projection. Methods are provided for standard conversions between Lat/Lon and Easting/Northing

Concrete sub-classes derived from TransverseMercator need to provide values for the projection constants f0(), phi0(), n0(), e0() and lamda0() (see below).


Field Summary
protected  boolean northernHemisphere
           
protected  int zone
           
 
Fields inherited from class mccombe.mapping.CoordinateSystem
locus, ref, sph
 
Constructor Summary
protected TransverseMercator()
          Default constructor for TransverseMercator
  TransverseMercator(ENPair point, Ellipsoid sphere, Datum datum)
          Create an instance of TransverseMercator based on a specified ENPair
protected TransverseMercator(ENPair point, int z, Ellipsoid sphere, Datum datum, boolean hemisphere)
          Create an instance of TransverseMercator based on a specified ENPair
  TransverseMercator(Position p, Ellipsoid e, Datum d)
          Create a new TransverseMercator instance for a location specified by Position, Ellipsoid and Datum
 
Method Summary
abstract  double e0()
          e0() defines the "false easting" distance of the projection.
abstract  double f0()
          The scale factor on the Central Meridian.
 double gridConvergence()
          Calculate the Grid Convergence for the current location.
abstract  double lamda0()
          lamda0() defines the longitude (in radians) of the true origin also known as the "Central Meridian".
abstract  double n0()
          n0() defines the "false northing" distance of the projection.
abstract  double phi0()
          phi0() defines the latitude of the true origin of the projection.
 double pointScaleFactor()
          Calculate the Point Scale Factor for the current Position.
 ENPair toEN()
          Provide an ENPair containing Easting and Northing distances for this point
 
Methods inherited from class mccombe.mapping.CoordinateSystem
defaultDatum, defaultEllipsoid, getDatum, getEllipsoid, getName, getPosition, getWGS84, parseDouble, toLatLong, toLatLongString, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

northernHemisphere

protected boolean northernHemisphere

zone

protected int zone
Constructor Detail

TransverseMercator

protected TransverseMercator()
Default constructor for TransverseMercator


TransverseMercator

public TransverseMercator(Position p,
                          Ellipsoid e,
                          Datum d)
Create a new TransverseMercator instance for a location specified by Position, Ellipsoid and Datum

Parameters:
p - A Position object defining the location
e - The Ellipsoid used as a reference
d - The Datum used

TransverseMercator

public TransverseMercator(ENPair point,
                          Ellipsoid sphere,
                          Datum datum)
Create an instance of TransverseMercator based on a specified ENPair

Parameters:
point - An ENPair containing the Easting and Northing distances of the point
sphere - The Ellipsoid to use
datum - The Datum to use with this instance

TransverseMercator

protected TransverseMercator(ENPair point,
                             int z,
                             Ellipsoid sphere,
                             Datum datum,
                             boolean hemisphere)
Create an instance of TransverseMercator based on a specified ENPair

Parameters:
sphere - The Ellipsoid to use
z - UTM Zone number
datum - The Datum to use with this instance
point - An ENPair containing the Easting and Northing distances of the point
hemisphere - true if the point is in the Northern hemisphere
Method Detail

toEN

public ENPair toEN()
Provide an ENPair containing Easting and Northing distances for this point

Specified by:
toEN in class Projection
Returns:
an ENPair

gridConvergence

public double gridConvergence()
Calculate the Grid Convergence for the current location. Grid Convergence is defined as the angle between Grid North and True North. The value is zero on the Central Meridian.

Specified by:
gridConvergence in class Projection
Returns:
The value of Grid Convergence (radians)

pointScaleFactor

public double pointScaleFactor()
Calculate the Point Scale Factor for the current Position. This is f0() on the central meridian.

Returns:
The Point Scale Factor

f0

public abstract double f0()
The scale factor on the Central Meridian. Generally, Transverse Mercator projections increasingly exagerate distances further from the central meridian. It is usual to reduce the scale factor at the central meridian to compensate for this effect and optimise the scale over the area of interest.

Returns:
the value of the ScaleFactor at the central meridian.

phi0

public abstract double phi0()
phi0() defines the latitude of the true origin of the projection. Note, however, that many Transverse Mercator projections employ a false origin. See n0() and e0() below.

Returns:
The latitude of the true origin (radians)

n0

public abstract double n0()
n0() defines the "false northing" distance of the projection. False origins are usually used with TM projections to ensure that easting and northing distances are always positive over the area of interest. n0() is used as an offset to the grid so that the "true origin" appears to have a northing value equal to n0().

Returns:
The false northing distance (double)

e0

public abstract double e0()
e0() defines the "false easting" distance of the projection. False origins are usually used with TM projections to ensure that easting and northing distances are always positive over the area of interest. e0() is used as an offset to the grid so that the "true origin" appears to have an easting value equal to e0().

Returns:
The false easting distance (double)

lamda0

public abstract double lamda0()
lamda0() defines the longitude (in radians) of the true origin also known as the "Central Meridian".

Returns:
The central meridian (radians)