fr.cnes.sirius.patrius.projections
Class GeneralizedFlamsteedSamson

java.lang.Object
  extended by fr.cnes.sirius.patrius.projections.AbstractProjection
      extended by fr.cnes.sirius.patrius.projections.Mercator
          extended by fr.cnes.sirius.patrius.projections.GeneralizedFlamsteedSamson
All Implemented Interfaces:
IProjection, Serializable

public class GeneralizedFlamsteedSamson
extends Mercator

Despite the common name, the "Sanson-Flamsteed" projection was not first studied by either Nicholas Sanson (ca. 1650) or John Flamsteed (1729, published posthumously), but possibly by Mercator — at least it was included for maps of South America in later editions (1606) of Mercator's atlas, and has been referred to as the Mercator equal-area projection, or Mercator-Sanson. Since in the normal aspect all meridians are sinusoids, it is also called sinusoidal, and can be easily deduced. The sinusoidal projection is equal-area and preserves distances along the horizontals, i.e. all parallels in an equatorial map are standard lines — but only the central meridian. Although the equatorial band is reproduced with little distortion, the polar caps suffer from poor legibility due to shearing.

Since:
3.2
Version:
$Id: GeneralizedFlamsteedSamson.java 17585 2017-05-10 13:27:59Z bignon $
Author:
Galpin Thomas
See Also:
http://www.progonos.com/furuti/MapProj/Normal/ProjPCyl/projPCyl.html#SansonFlamsteed, Serialized Form
Concurrency :
not thread-safe

Field Summary
 
Fields inherited from class fr.cnes.sirius.patrius.projections.Mercator
MAX_LATITUDE
 
Constructor Summary
GeneralizedFlamsteedSamson(GeodeticPoint pivotPoint, ProjectionEllipsoid shape, double cap)
          Constructor : Mercator constructor is used with : a pivot point a reference shape a cap parameter centered set to true parameter series set to false indicating that inverse transformation is done with iterations : slower but more accurate
 
Method Summary
 GeodeticPoint applyInverseTo(double x, double y)
          Inverse projection.
 GeodeticPoint applyInverseTo(double x, double y, double alt)
          This is the Two standard parallel Mercator Projection model.
 Vector2D applyTo(double lat, double lon)
          Returns Easting value and Northing value in meters from latitude and longitude coordinates.
 Vector2D applyTo(GeodeticPoint geodeticPoint)
          Returns Easting value and Northing value in meters from geodetic coordinates.
 EnumLineProperty getLineProperty()
          Getter for line property .
 boolean isConformal()
          Inform the user if the direct transformation is a conformal 's one (If yes, it preserves angles).
 boolean isEquivalent()
          Inform the user if the direct transformation is an equivalent 's one (If yes, it preserves surfaces).
 
Methods inherited from class fr.cnes.sirius.patrius.projections.Mercator
canMap, getAzimuth, getDistortionFactor, getMaximumEastingValue, getMaximumLatitude, getMaximumNorthingValue, getScaleFactor
 
Methods inherited from class fr.cnes.sirius.patrius.projections.AbstractProjection
applyInverseTo, applyInverseTo, applyTo, applyToAndDiscretize, discretize, discretizeAndApplyTo, discretizeCircleAndApplyTo, discretizeRhumbAndApplyTo, getPivotPoint, getReference
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GeneralizedFlamsteedSamson

public GeneralizedFlamsteedSamson(GeodeticPoint pivotPoint,
                                  ProjectionEllipsoid shape,
                                  double cap)
Constructor : Mercator constructor is used with :

Parameters:
pivotPoint - pivot point
shape - reference shape
cap - is angle from the north direction to the current direction in CLOCKWISE sense
Method Detail

applyTo

public Vector2D applyTo(double lat,
                        double lon)
                 throws OrekitException
Returns Easting value and Northing value in meters from latitude and longitude coordinates.

Specified by:
applyTo in interface IProjection
Overrides:
applyTo in class Mercator
Parameters:
lat - latitude of the point to project.
lon - longitude of the point to project.
Returns:
Vector2D containing Easting value and Northing value in meters.
Throws:
OrekitException - thrown if projection could not be computed

applyTo

public Vector2D applyTo(GeodeticPoint geodeticPoint)
                 throws OrekitException
Returns Easting value and Northing value in meters from geodetic coordinates.

Specified by:
applyTo in interface IProjection
Overrides:
applyTo in class Mercator
Parameters:
geodeticPoint - the geodetic point to transform.
Returns:
Vector2D containing Easting value and Northing value in meters.
Throws:
OrekitException - thrown if projection could not be computed

applyInverseTo

public GeodeticPoint applyInverseTo(double x,
                                    double y,
                                    double alt)
                             throws OrekitException
This is the Two standard parallel Mercator Projection model. The latitude and the longitude of the given point to convert can be defined from any natural origin and the user can set the altitude.

Specified by:
applyInverseTo in interface IProjection
Overrides:
applyInverseTo in class Mercator
Parameters:
x - abscissa coordinate
y - ordinate coordinate
alt - altitude coordinate
Returns:
coordinate
Throws:
OrekitException - thrown if inverse projection could not be computed

applyInverseTo

public GeodeticPoint applyInverseTo(double x,
                                    double y)
                             throws OrekitException
Inverse projection. Returns geodetic coordinates. This is the inverse transformation process to convert two dimensional map coordinates into geodetics one. The iterative method used is a Newton-Raphson iterative process. We're searching the solution of F(phi) = 0. At each iterations, we compute a new value of phi : phi' = phi - F(phi)/F'(phi) where phi is the trial value, F(phi) = y(phi) - phi, with y(phi) the direct Mercator transformation, and F'(phi) the derive function of y(phi). The stop condition is satisfied when F(phi) < epsilon (here equal at 1E-14). This method returns geodetic coordinates. The iterative process stop if the iteration's number is bigger than 100.

Specified by:
applyInverseTo in interface IProjection
Overrides:
applyInverseTo in class Mercator
Parameters:
x - abscissa coordinate
y - ordinate coordinate
Returns:
geodetic coordinates.
Throws:
OrekitException - thrown if inverse projection could not be computed

isConformal

public boolean isConformal()
Inform the user if the direct transformation is a conformal 's one (If yes, it preserves angles).

Specified by:
isConformal in interface IProjection
Overrides:
isConformal in class Mercator
Returns:
a boolean.

isEquivalent

public boolean isEquivalent()
Inform the user if the direct transformation is an equivalent 's one (If yes, it preserves surfaces).

Specified by:
isEquivalent in interface IProjection
Overrides:
isEquivalent in class Mercator
Returns:
a boolean.

getLineProperty

public EnumLineProperty getLineProperty()
Getter for line property .

Specified by:
getLineProperty in interface IProjection
Overrides:
getLineProperty in class Mercator
Returns:
line property.


Copyright © 2017 CNES. All Rights Reserved.