## Class Polyconic

• All Implemented Interfaces:
`Serializable`, `Parameterized`, `Lenient­Comparable`, `Math­Transform`, `Math­Transform2D`

```public class Polyconic
extends NormalizedProjection```
American Polyconic projection (EPSG codes 9818). This projection has the following properties:
• Neither conformal nor equal-area.
• Parallels of latitude (except for Equator) are arcs of circles, but are not concentrics.
• Central Meridian and Equator are straight lines; all other meridians are complex curves.
• Scale is true along each parallel and along the central meridian, but no parallel is "standard".
• Free of distortion only along the central meridian.

References:

• John P. Snyder (Map Projections - A Working Manual,
U.S. Geological Survey Professional Paper 1395, 1987)
• "Coordinate Conversions and Transformations including Formulas",
EPSG Guidance Note Number 7.
Since:
1.0
Serialized Form

Defined in the `sis-referencing` module

• ### Nested classes/interfaces inherited from class NormalizedProjection

`Normalized­Projection​.Parameter­Role`

• ### Fields inherited from class NormalizedProjection

`eccentricity, eccentricity­Squared`
• ### Constructor Summary

Constructors
Constructor Description
```Polyconic​(OperationMethod method, Parameters parameters)```
Creates a Polyconic projection from the given parameters.
• ### Method Summary

All Methods
Modifier and Type Method Description
`MathTransform` `createMapProjection​(MathTransformFactory factory)`
Returns the sequence of normalization`this`denormalization transforms as a whole.
`protected void` ```inverseTransform​(double[] srcPts, int srcOff, double[] dstPts, int dstOff)```
Transforms the specified (x,y) coordinates and stores the result in `dst­Pts` (angles in radians).
`Matrix` ```transform​(double[] srcPts, int srcOff, double[] dstPts, int dstOff, boolean derivate)```
Converts the specified (λ,φ) coordinate (units in radians) and stores the result in `dst­Pts` (linear distance on a unit sphere).
• ### Methods inherited from class NormalizedProjection

`compute­Hash­Code, equals, get­Contextual­Parameters, get­Parameter­Descriptors, get­Parameter­Values, inverse, try­Concatenate`
• ### Methods inherited from class AbstractMathTransform2D

`create­Transformed­Shape, derivative, get­Source­Dimensions, get­Target­Dimensions, transform`
• ### Methods inherited from class AbstractMathTransform

`derivative, equals, format­To, hash­Code, is­Identity, transform, transform, transform, transform, transform`
• ### Methods inherited from class FormattableObject

`print, to­String, to­String, to­WKT`
• ### Methods inherited from class Object

`clone, finalize, get­Class, notify, notify­All, wait, wait, wait`
• ### Methods inherited from interface MathTransform

`derivative, is­Identity, to­WKT, transform, transform, transform, transform, transform`
• ### Constructor Detail

• #### Polyconic

```public Polyconic​(OperationMethod method,
Parameters parameters)```
Creates a Polyconic projection from the given parameters. The `method` argument can be the description of one of the following:
• "American Polyconic".
Parameters:
`method` - description of the projection parameters.
`parameters` - the parameter values of the projection to create.
• ### Method Detail

• #### createMapProjection

```public MathTransform createMapProjection​(MathTransformFactory factory)
throws FactoryException```
Returns the sequence of normalization`this`denormalization transforms as a whole. The transform returned by this method expects (longitude, latitude) coordinates in degrees and returns (x,y) coordinates in metres.

The non-linear part of the returned transform will be `this` transform, except if the ellipsoid is spherical. In the later case, `this` transform will be replaced by a simplified implementation.

Overrides:
`create­Map­Projection` in class `Normalized­Projection`
Parameters:
`factory` - the factory to use for creating the transform.
Returns:
the map projection from (λ,φ) to (x,y) coordinates.
Throws:
`Factory­Exception` - if an error occurred while creating a transform.
`Contextual­Parameters​.complete­Transform(Math­Transform­Factory, Math­Transform)`
• #### transform

```public Matrix transform​(double[] srcPts,
int srcOff,
double[] dstPts,
int dstOff,
boolean derivate)
throws ProjectionException```
Converts the specified (λ,φ) coordinate (units in radians) and stores the result in `dst­Pts` (linear distance on a unit sphere). In addition, opportunistically computes the projection derivative if `derivate` is `true`.
Specified by:
`transform` in class `Normalized­Projection`
Parameters:
`src­Pts` - the array containing the source point coordinate, as (longitude, latitude) angles in radians.
`src­Off` - the offset of the single coordinate to be converted in the source array.
`dst­Pts` - the array into which the converted coordinate is returned (may be the same than `src­Pts`). Coordinates will be expressed in a dimensionless unit, as a linear distance on a unit sphere or ellipse.
`dst­Off` - the offset of the location of the converted coordinate that is stored in the destination array.
`derivate` - `true` for computing the derivative, or `false` if not needed.
Returns:
the matrix of the projection derivative at the given source position, or `null` if the `derivate` argument is `false`.
Throws:
`Projection­Exception` - if the coordinates can not be converted.
`Abstract­Math­Transform​.derivative(Direct­Position)`, `Abstract­Math­Transform​.transform(Direct­Position, Direct­Position)`, `Math­Transforms​.derivative­And­Transform(Math­Transform, double[], int, double[], int)`
• #### inverseTransform

```protected void inverseTransform​(double[] srcPts,
int srcOff,
double[] dstPts,
int dstOff)
throws ProjectionException```
Transforms the specified (x,y) coordinates and stores the result in `dst­Pts` (angles in radians).
Specified by:
`inverse­Transform` in class `Normalized­Projection`
Parameters:
`src­Pts` - the array containing the source point coordinate, as linear distance on a unit sphere or ellipse.
`src­Off` - the offset of the point to be converted in the source array.
`dst­Pts` - the array into which the converted point coordinate is returned (may be the same than `src­Pts`). Coordinates will be (longitude, latitude) angles in radians.
`dst­Off` - the offset of the location of the converted point that is stored in the destination array.
Throws:
`Projection­Exception` - if the coordinates can not be converted.