org.geotools.referencing.operation.projection
Class WinkelTripel

Object
  extended by Formattable
      extended by AbstractMathTransform
          extended by MapProjection
              extended by WinkelTripel
All Implemented Interfaces:
Serializable, MathTransform, MathTransform2D

public class WinkelTripel
extends MapProjection

Winkel Tripel and Hammer Aitoff projection References:

Since:
2.6.3
Author:
Andrea Aime
See Also:
Polyconic projection on MathWorld, "Polyconic" on RemoteSensing.org, Serialized Form

Nested Class Summary
static class WinkelTripel.AitoffProvider
          The math transform provider for the Aitoff projection (not part of the EPSG database).
static class WinkelTripel.WinkelProvider
          The math transform provider for the Winkle Tripel projection projection (not part of the EPSG database).
 
Nested classes/interfaces inherited from class MapProjection
MapProjection.AbstractProvider
 
Field Summary
 
Fields inherited from class MapProjection
centralMeridian, en0, en1, en2, en3, en4, excentricity, excentricitySquared, falseEasting, falseNorthing, globalScale, invertible, isSpherical, latitudeOfOrigin, LOGGER, scaleFactor, semiMajor, semiMinor
 
Fields inherited from class Formattable
SINGLE_LINE
 
Constructor Summary
protected WinkelTripel(WinkelTripel.ProjectionMode mode, ParameterDescriptorGroup descriptors, ParameterValueGroup parameters)
          Constructs a new map projection from the supplied parameters.
 
Method Summary
 boolean equals(Object object)
          Compares the specified object with this map projection for equality.
 ParameterDescriptorGroup getParameterDescriptors()
          Returns the parameter descriptors for this map projection.
 int hashCode()
          Returns a hash value for this projection.
protected  Point2D inverseTransformNormalized(double x, double y, Point2D ptDst)
          Transforms the specified coordinate and stores the result in ptDst.
protected  Point2D transformNormalized(double lam, double phi, Point2D ptDst)
          Transforms the specified (λ,φ) coordinates (units in radians) and stores the result in ptDst (linear distance on a unit sphere).
 
Methods inherited from class MapProjection
checkReciprocal, getParameterValues, getSourceDimensions, getTargetDimensions, getToleranceForAssertions, inv_mlfn, inverse, mlfn, orthodromicDistance, resetWarnings, transform, transform, transform
 
Methods inherited from class AbstractMathTransform
createTransformedShape, derivative, derivative, ensureNonNull, formatWKT, getName, isIdentity, needCopy, rollLongitude, transform, transform, transform
 
Methods inherited from class Formattable
cleanupThreadLocals, toString, toWKT, toWKT, toWKT, toWKT
 
Methods inherited from class Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface MathTransform2D
createTransformedShape, derivative
 
Methods inherited from interface MathTransform
derivative, isIdentity, toWKT, transform, transform, transform
 

Constructor Detail

WinkelTripel

protected WinkelTripel(WinkelTripel.ProjectionMode mode,
                       ParameterDescriptorGroup descriptors,
                       ParameterValueGroup parameters)
                throws ParameterNotFoundException
Constructs a new map projection from the supplied parameters.

Parameters:
parameters - The parameter values in standard units.
Throws:
ParameterNotFoundException - if a mandatory parameter is missing.
Method Detail

getParameterDescriptors

public ParameterDescriptorGroup getParameterDescriptors()
Returns the parameter descriptors for this map projection. This is used for a providing a default implementation of MapProjection.getParameterValues(), as well as arguments checking.

Specified by:
getParameterDescriptors in class MapProjection
Returns:
The parameter descriptors for this math transform, or null.
See Also:
OperationMethod.getParameters()

transformNormalized

protected Point2D transformNormalized(double lam,
                                      double phi,
                                      Point2D ptDst)
                               throws ProjectionException
Transforms the specified (λ,φ) coordinates (units in radians) and stores the result in ptDst (linear distance on a unit sphere).

Specified by:
transformNormalized in class MapProjection
Parameters:
lam - The longitude of the coordinate, in radians.
phi - The latitude of the coordinate, in radians.
ptDst - the specified coordinate point that stores the result of transforming ptSrc, or null. Ordinates will be in a dimensionless unit, as a linear distance on a unit sphere or ellipse.
Returns:
the coordinate point after transforming (lambda, phi) and storing the result in ptDst.
Throws:
ProjectionException - if the point can't be transformed.

inverseTransformNormalized

protected Point2D inverseTransformNormalized(double x,
                                             double y,
                                             Point2D ptDst)
                                      throws ProjectionException
Description copied from class: MapProjection
Transforms the specified coordinate and stores the result in ptDst. This method returns longitude as x values in the range [-PI..PI] and latitude as y values in the range [-PI/2..PI/2]. It will be checked by the caller, so this method doesn't need to performs this check.

Input coordinates have the MapProjection.falseEasting and MapProjection.falseNorthing removed and are divided by MapProjection.globalScale before this method is invoked. After this method is invoked, the MapProjection.centralMeridian is added to the x results in ptDst. This means that projections that implement this method are performed on an ellipse (or sphere) with a semi-major axis of 1.

In PROJ.4, the same standardization, described above, is handled by pj_inv.c. Therefore when porting projections from PROJ.4, the inverse transform equations can be used directly here with minimal change. In the equations of Snyder, MapProjection.falseEasting, MapProjection.falseNorthing and MapProjection.scaleFactor are usually not given. When implementing these equations here, you will not need to add the MapProjection.centralMeridian to the output longitude or remove the MapProjection.semiMajor (a or R).

Specified by:
inverseTransformNormalized in class MapProjection
Parameters:
x - The easting of the coordinate, linear distance on a unit sphere or ellipse.
y - The northing of the coordinate, linear distance on a unit sphere or ellipse.
ptDst - the specified coordinate point that stores the result of transforming ptSrc, or null. Ordinates will be in radians.
Returns:
the coordinate point after transforming x, y and storing the result in ptDst.
Throws:
ProjectionException - if the point can't be transformed.

hashCode

public int hashCode()
Returns a hash value for this projection.

Overrides:
hashCode in class MapProjection

equals

public boolean equals(Object object)
Compares the specified object with this map projection for equality.

Overrides:
equals in class MapProjection
Parameters:
object - The object to compare with this transform.
Returns:
true if the given object is a transform of the same class and if, given identical source position, the transformed position would be the equals.


Copyright © 1996-2014 Geotools. All Rights Reserved.