/** * Transforms the specified (<var>x</var>,<var>y</var>) coordinates and stores the result in * {@code ptDst}. */ @Override protected Point2D inverseTransformNormalized(double x, double y, Point2D ptDst) { final double normalisedCylindricalZ = sinPhi0 * (primeVert0 * (1.0 - excentricitySquared)) + cosPhi0 * y; final double primeVerticalCylindricalRadius = cosPhi0 * primeVert0 - sinPhi0 * y; final double lambda = atan2(x, primeVerticalCylindricalRadius); final double normalisedCylindricalRadius = hypot(x, primeVerticalCylindricalRadius); final double phi = getLatitudeFromPolar(normalisedCylindricalRadius, normalisedCylindricalZ); if (ptDst != null) { ptDst.setLocation(lambda, phi); return ptDst; } return new Point2D.Double(lambda, phi); }