All Implemented Interfaces:
Serializable, MathTransform, MathTransform2D

public class Krovak extends MapProjection
Krovak Oblique Conformal Conic projection (EPSG code 9819). This projection is used in the Czech Republic and Slovakia under the name "Krovak" projection. The geographic coordinates on the ellipsoid are first reduced to conformal coordinates on the conformal (Gaussian) sphere. These spherical coordinates are then projected onto the oblique cone and converted to grid coordinates. The pseudo standard parallel is defined on the conformal sphere after its rotation, to obtain the oblique aspect of the projection. It is then the parallel on this sphere at which the map projection is true to scale; on the ellipsoid it maps as a complex curve.

The compulsory parameters are just the ellipsoid characteristics. All other parameters are optional and have defaults to match the common usage with Krovak projection.

In general the axis of Krovak projection are defined as westing and southing (not easting and northing) and they are also reverted, so if the value of projected coordinates should (and in y, x order in Krovak) be positive the 'Axis' parameter for projection should be defined explicitly like this (in wkt):

PROJCS["S-JTSK (Ferro) / Krovak",
         .
         .
         .
     PROJECTION["Krovak"]
     PARAMETER["semi_major", 6377397.155],
     PARAMETER["semi_minor", 6356078.963],
     UNIT["meter",1.0],
     AXIS["x", WEST],
     AXIS["y", SOUTH]]
     
Axis in Krovak:
   y<------------------+
                       |
    Czech. Rep.        |
                       |
                       x
 
By default, the axis are 'easting, northing' so the values of projected coordinates are negative (and in y, x order in Krovak - it is cold Krovak GIS version).

References:

Since:
2.4
Author:
Jan Jezek, Martin Desruisseaux
See Also:
  • Field Details

    • azimuth

      protected final double azimuth
      Azimuth of the centre line passing through the centre of the projection. This is equals to the co-latitude of the cone axis at point of intersection with the ellipsoid.
    • descriptors

      protected final ParameterDescriptorGroup descriptors
      The descriptor group, stored as a field as there are different providers
    • x_scale

      protected double x_scale
      Parameter used by ESRI - scale for X Axis
    • y_scale

      protected double y_scale
      Parameter used by ESRI - scale for Y Axis
    • xy_plane_rotation

      protected double xy_plane_rotation
      Parameter used by ESRI - rotation
    • pseudoStandardParallel

      protected final double pseudoStandardParallel
      Latitude of pseudo standard parallel.
  • Constructor Details

  • Method Details

    • getParameterDescriptors

      public ParameterDescriptorGroup getParameterDescriptors()
      Description copied from class: MapProjection
      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:
    • getParameterValues

      public ParameterValueGroup getParameterValues()
      Returns the parameter values for this map projection.
      Overrides:
      getParameterValues in class MapProjection
      Returns:
      A copy of the parameter values for this map projection.
      See Also:
    • transformNormalized

      protected Point2D transformNormalized(double lambda, 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:
      lambda - 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
      Transforms the specified (x,y) coordinate and stores the result in ptDst.
      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.