Class Krovak
-
- 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:
- Proj-4.4.7 available at www.remotesensing.org/proj
Relevant files is:PJ_krovak.c
- "Coordinate Conversions and Transformations including Formulas" available at, http://www.remotesensing.org/geotiff/proj_list/guid7.html
- Since:
- 2.4
- Author:
- Jan Jezek, Martin Desruisseaux
- See Also:
- Krovak on RemoteSensing.org, Krovak on "Coordinate Conversions and Transformations including Formulas", Krovak on POSC, Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Krovak.NorthProvider
static class
Krovak.Provider
-
Nested classes/interfaces inherited from class MapProjection
MapProjection.AbstractProvider
-
-
Field Summary
Fields Modifier and Type Field Description protected double
azimuth
Azimuth of the centre line passing through the centre of the projection.protected ParameterDescriptorGroup
descriptors
The descriptor group, stored as a field as there are different providersprotected double
pseudoStandardParallel
Latitude of pseudo standard parallel.protected double
x_scale
Parameter used by ESRI - scale for X Axisprotected double
xy_plane_rotation
Parameter used by ESRI - rotationprotected double
y_scale
Parameter used by ESRI - scale for Y Axis-
Fields inherited from class MapProjection
centralMeridian, en0, en1, en2, en3, en4, excentricity, excentricitySquared, falseEasting, falseNorthing, globalScale, invertible, isSpherical, latitudeOfOrigin, LOGGER, scaleFactor, semiMajor, semiMinor, SKIP_SANITY_CHECKS
-
Fields inherited from class Formattable
SINGLE_LINE
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
Krovak(ParameterValueGroup parameters, ParameterDescriptorGroup descriptors, boolean esriDefinition)
Constructs a new map projection from the supplied parameters.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object object)
Compares the specified object with this map projection for equality.ParameterDescriptorGroup
getParameterDescriptors()
Returns the parameter descriptors for this map projection.ParameterValueGroup
getParameterValues()
Returns the parameter values for this map projection.int
hashCode()
Returns a hash value for this projection.protected Point2D
inverseTransformNormalized(double x, double y, Point2D ptDst)
Transforms the specified (x,y) coordinate and stores the result inptDst
.protected Point2D
transformNormalized(double lambda, double phi, Point2D ptDst)
Transforms the specified (λ,φ) coordinates (units in radians) and stores the result inptDst
(linear distance on a unit sphere).-
Methods inherited from class MapProjection
checkReciprocal, getSourceDimensions, getTargetDimensions, getToleranceForAssertions, inv_mlfn, inverse, mlfn, orthodromicDistance, resetWarnings, transform, transform, transform
-
Methods inherited from class AbstractMathTransform
createTransformedShape, derivative, derivative, ensureNonNull, formatWKT, getName, isIdentity, needCopy, normalizeAngle, rollLongitude, transform, transform, transform
-
Methods inherited from class Formattable
cleanupThreadLocals, toString, toWKT, toWKT, toWKT, toWKT
-
Methods inherited from interface MathTransform
derivative, isIdentity, toWKT, transform, transform, transform
-
Methods inherited from interface MathTransform2D
createTransformedShape, derivative
-
-
-
-
Field Detail
-
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 Detail
-
Krovak
protected Krovak(ParameterValueGroup parameters, ParameterDescriptorGroup descriptors, boolean esriDefinition) throws ParameterNotFoundException
Constructs a new map projection from the supplied parameters.- Parameters:
parameters
- The parameter values in standard units.esriDefinition
- true if ESRI parameters are specified.- Throws:
ParameterNotFoundException
- if a mandatory parameter is missing.
-
-
Method Detail
-
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 ofMapProjection.getParameterValues()
, as well as arguments checking.- Specified by:
getParameterDescriptors
in classMapProjection
- Returns:
- The parameter descriptors for this math transform, or
null
. - See Also:
OperationMethod.getParameters()
-
getParameterValues
public ParameterValueGroup getParameterValues()
Returns the parameter values for this map projection.- Overrides:
getParameterValues
in classMapProjection
- Returns:
- A copy of the parameter values for this map projection.
- See Also:
Operation.getParameterValues()
-
transformNormalized
protected Point2D transformNormalized(double lambda, double phi, Point2D ptDst) throws ProjectionException
Transforms the specified (λ,φ) coordinates (units in radians) and stores the result inptDst
(linear distance on a unit sphere).- Specified by:
transformNormalized
in classMapProjection
- 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 transformingptSrc
, ornull
. 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 inptDst
. - 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 inptDst
.- Specified by:
inverseTransformNormalized
in classMapProjection
- 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 transformingptSrc
, ornull
. Ordinates will be in radians.- Returns:
- the coordinate point after transforming
x
,y
and storing the result inptDst
. - Throws:
ProjectionException
- if the point can't be transformed.
-
hashCode
public int hashCode()
Returns a hash value for this projection.- Overrides:
hashCode
in classMapProjection
-
equals
public boolean equals(Object object)
Compares the specified object with this map projection for equality.- Overrides:
equals
in classMapProjection
- 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.
-
-