org.cts.op.projection
Class SwissObliqueMercator

java.lang.Object
  extended by org.cts.IdentifiableComponent
      extended by org.cts.op.AbstractCoordinateOperation
          extended by org.cts.op.projection.Projection
              extended by org.cts.op.projection.SwissObliqueMercator
All Implemented Interfaces:
Identifiable, CoordinateOperation

public class SwissObliqueMercator
extends Projection

The Swiss Oblique Mercator Projection (SOMERC).

This projection is a special case of the Oblique Mercator Projection where the azimuth of the line through the projection center (alpha) is 90 degrees.

Author:
Jules Party

Nested Class Summary
 
Nested classes/interfaces inherited from class org.cts.op.projection.Projection
Projection.Orientation, Projection.Property, Projection.Surface
 
Field Summary
protected  double alpha
           
protected  double b0
           
protected  double FE
           
protected  double FN
           
protected  double K
           
protected  double kc
           
protected  double latc
           
protected  double lonc
           
protected  double R
           
static Identifier SOMERC
          The Identifier used for all Swiss Oblique Mercator projections.
 
Fields inherited from class org.cts.op.projection.Projection
DEFAULT_PARAMETERS
 
Fields inherited from class org.cts.op.AbstractCoordinateOperation
precision
 
Fields inherited from interface org.cts.Identifiable
DEFAULT, LOCAL, UNKNOWN
 
Constructor Summary
SwissObliqueMercator(Ellipsoid ellipsoid, Map<String,Measure> parameters)
          Create a new Swiss Oblique Stereographic Alternative Projection corresponding to the Ellipsoid and the list of parameters given in argument and initialize common parameters FE, FN and other parameters useful for the projection.
 
Method Summary
 Projection.Orientation getOrientation()
          Return the Orientation of this Projection.
 Projection.Property getProperty()
          Return the Property of this Projection.
 Projection.Surface getSurface()
          Return the Surface type of this Projection.
 CoordinateOperation inverse()
          Creates the inverse operation for Swiss Oblique Mercator Projection.
 double[] transform(double[] coord)
          Transform coord using the Swiss Oblique Mercator Projection.
 
Methods inherited from class org.cts.op.projection.Projection
equals, getAzimuth, getCentralMeridian, getDefaultParameters, getFalseEasting, getFalseNorthing, getLatitudeOfOrigin, getLatitudeOfTrueScale, getRectifiedGridAngle, getScaleFactor, getSemiMajorAxis, getSemiMinorAxis, getStandardParallel1, getStandardParallel2, hashCode, toWKT
 
Methods inherited from class org.cts.op.AbstractCoordinateOperation
getPrecision
 
Methods inherited from class org.cts.IdentifiableComponent
addAlias, addRemark, getAliases, getAuthorityKey, getAuthorityName, getCode, getComponent, getIdentifier, getName, getRemarks, getShortName, setIdentifier, setRemarks, setShortName, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.cts.Identifiable
addAlias, addRemark, getAliases, getAuthorityKey, getAuthorityName, getCode, getName, getRemarks, getShortName, setRemarks, setShortName
 

Field Detail

SOMERC

public static final Identifier SOMERC
The Identifier used for all Swiss Oblique Mercator projections.


latc

protected final double latc

lonc

protected final double lonc

kc

protected final double kc

FE

protected final double FE

FN

protected final double FN

alpha

protected final double alpha

b0

protected final double b0

K

protected final double K

R

protected final double R
Constructor Detail

SwissObliqueMercator

public SwissObliqueMercator(Ellipsoid ellipsoid,
                            Map<String,Measure> parameters)
Create a new Swiss Oblique Stereographic Alternative Projection corresponding to the Ellipsoid and the list of parameters given in argument and initialize common parameters FE, FN and other parameters useful for the projection.

Parameters:
ellipsoid - ellipsoid used to define the projection.
parameters - a map of useful parameters to define the projection.
Method Detail

getSurface

public Projection.Surface getSurface()
Return the Surface type of this Projection.

Specified by:
getSurface in class Projection

getProperty

public Projection.Property getProperty()
Return the Property of this Projection.

Specified by:
getProperty in class Projection

getOrientation

public Projection.Orientation getOrientation()
Return the Orientation of this Projection.

Specified by:
getOrientation in class Projection

transform

public double[] transform(double[] coord)
                   throws CoordinateDimensionException
Transform coord using the Swiss Oblique Mercator Projection. Input coord is supposed to be a geographic latitude / longitude coordinate in radians. Algorithm based on a Swiss Federal Office of Topography document :

Specified by:
transform in interface CoordinateOperation
Specified by:
transform in class AbstractCoordinateOperation
Parameters:
coord - coordinate to transform
Returns:
a double array containing the output coordinate
Throws:
CoordinateDimensionException - if coord length is not compatible with this CoordinateOperation.

inverse

public CoordinateOperation inverse()
                            throws NonInvertibleOperationException
Creates the inverse operation for Swiss Oblique Mercator Projection. Input coord is supposed to be a projected easting / northing coordinate in meters. Algorithm based on a Swiss Federal Office of Topography document:

Specified by:
inverse in interface CoordinateOperation
Overrides:
inverse in class AbstractCoordinateOperation
Parameters:
coord - coordinate to transform
Throws:
NonInvertibleOperationException


Copyright © 2014 IRSTV CNRS-FR-2488. All Rights Reserved.