Class AzimuthalEquidistant

All Implemented Interfaces:
Serializable, Parameterized, LenientComparable, org.opengis.referencing.operation.MathTransform, org.opengis.referencing.operation.MathTransform2D
Direct Known Subclasses:
ModifiedAzimuthalEquidistant

public class AzimuthalEquidistant extends NormalizedProjection
Azimuthal Equidistant (Spherical) projection. This projection method has no EPSG code. See the following references for an overview: Current implementation supports only the spherical case. For ellipsoidal formulas, the ModifiedAzimuthalEquidistant class provides an approximation valid under 800 kilometres of the projection centre.
Note of projection variants: formulas for this map projection have been published by Snyder (1987) in the following forms:
  • Azimuthal Equidistant projection for the sphere. This form has no EPSG code. It is implemented in Apache SIS as "Azimuthal Equidistant (Spherical)".
  • Polar aspect of ellipsoidal Azimuthal Equidistant. This form has no EPSG code. It is not yet implemented in Apache SIS.
  • Oblique and equatorial aspects of ellipsoidal Azimuthal Equidistant:
    • Nearly rigorous sets of formulas. The EPSG name is "Modified Azimuthal Equidistant" (EPSG:9832). This projection is implemented by ModifiedAzimuthalEquidistant.
    • Approximate sets of formulas. The EPSG name is "Guam projection" (EPSG:9831). This projection is not yet implemented in Apache SIS.
This base class is aimed to provide the general case valid for all distances; the fact that current version uses spherical formulas should be considered as an implementation limitation that may change in future version. Subclasses are specialization for more restricted areas.
Since:
1.1
Version:
1.1
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      For compatibility with different versions during deserialization.
      See Also:
    • sinφ0

      final double sinφ0
      Sine and cosine of the latitude of origin φ₀.
    • cosφ0

      final double cosφ0
      Sine and cosine of the latitude of origin φ₀.
  • Constructor Details

    • AzimuthalEquidistant

      public AzimuthalEquidistant(org.opengis.referencing.operation.OperationMethod method, Parameters parameters)
      Creates a Azimuthal Equidistant projection from the given parameters. The method argument can be the description of one of the following:
      • "Azimuthal Equidistant (Spherical)".
      Parameters:
      method - description of the projection parameters.
      parameters - the parameter values of the projection to create.
    • AzimuthalEquidistant

      AzimuthalEquidistant(Initializer initializer)
      Creates a new normalized projection from the parameters computed by the given initializer.
      Parameters:
      initializer - the initializer for computing map projection internal parameters.
    • AzimuthalEquidistant

      AzimuthalEquidistant(AzimuthalEquidistant other)
      Creates a new projection initialized to the same parameters than the given one.
  • Method Details

    • initializer

      @Workaround(library="JDK", version="1.8") private static Initializer initializer(org.opengis.referencing.operation.OperationMethod method, Parameters parameters)
      Work around for RFE #4093999 in Sun's bug database ("Relax constraint on placement of this()/super() call in constructors").
    • getInternalParameterNames

      final String[] getInternalParameterNames()
      Returns the names of additional internal parameters which need to be taken in account when comparing two AzimuthalEquidistant projections or formatting them in debug mode.

      We could report any of the internal parameters. But since they are all derived from φ₀ and the eccentricity and since the eccentricity is already reported by the super-class, we report only φ₀ as a representative of the internal parameters.

      Overrides:
      getInternalParameterNames in class NormalizedProjection
    • getInternalParameterValues

      final double[] getInternalParameterValues()
      Returns the values of additional internal parameters which need to be taken in account when comparing two AzimuthalEquidistant projections or formatting them in debug mode.
      Overrides:
      getInternalParameterValues in class NormalizedProjection
    • transform

      public org.opengis.referencing.operation.Matrix transform(double[] srcPts, int srcOff, double[] dstPts, int dstOff, boolean derivate) throws ProjectionException
      Projects the specified (λ,φ) coordinates (units in radians) and stores the result in dstPts. In addition, opportunistically computes the projection derivative if derivate is true. The results must be multiplied by the denormalization matrix before to get linear distances.
      Specified by:
      transform in class NormalizedProjection
      Parameters:
      srcPts - source point coordinates, as (longitude, latitude) in radians.
      srcOff - the offset of the single coordinate tuple to be converted in the source array.
      dstPts - the array into which the converted coordinates is returned (may be the same than srcPts).
      dstOff - the offset of the location of the converted coordinates 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:
      ProjectionException - if the coordinates cannot be converted.
      See Also:
    • inverseTransform

      protected void inverseTransform(double[] srcPts, int srcOff, double[] dstPts, int dstOff) throws ProjectionException
      Converts the specified (x,y) coordinates and stores the result in dstPts (angles in radians).
      Specified by:
      inverseTransform in class NormalizedProjection
      Parameters:
      srcPts - the array containing the source point coordinates, as linear distance on a unit sphere or ellipse.
      srcOff - the offset of the point to be converted in the source array.
      dstPts - the array into which the converted point coordinates is returned (may be the same than srcPts).
      dstOff - the offset of the location of the converted point that is stored in the destination array.
      Throws:
      ProjectionException - if the point cannot be converted.