All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.geotoolkit.referencing.operation.provider.Krovak Maven / Gradle / Ivy

Go to download

Implementations of Coordinate Reference Systems (CRS), conversion and transformation services derived from ISO 19111.

There is a newer version: 3.20-geoapi-3.0
Show newest version
/*
 *    Geotoolkit.org - An Open Source Java GIS Toolkit
 *    http://www.geotoolkit.org
 *
 *    (C) 2002-2011, Open Source Geospatial Foundation (OSGeo)
 *    (C) 2009-2011, Geomatys
 *
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the GNU Lesser General Public
 *    License as published by the Free Software Foundation;
 *    version 2.1 of the License.
 *
 *    This library is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *    Lesser General Public License for more details.
 */
package org.geotoolkit.referencing.operation.provider;

import net.jcip.annotations.Immutable;

import org.opengis.parameter.ParameterValueGroup;
import org.opengis.parameter.ParameterDescriptor;
import org.opengis.parameter.ParameterDescriptorGroup;
import org.opengis.referencing.operation.ConicProjection;
import org.opengis.referencing.operation.MathTransform2D;
import org.opengis.referencing.ReferenceIdentifier;

import org.geotoolkit.referencing.NamedIdentifier;
import org.geotoolkit.internal.referencing.Identifiers;
import org.geotoolkit.metadata.iso.citation.Citations;


/**
 * The provider for "Krovak Oblique Conic Conformal" projection (EPSG:9819).
 * The programmatic names and parameters are enumerated at
 * Krovak on RemoteSensing.org.
 * The math transform implementations instantiated by this provider may be any of the following classes:
 * 

*

    *
  • {@link org.geotoolkit.referencing.operation.projection.Krovak}
  • *
* * @author Jan Jezek (HSRS) * @author Martin Desruisseaux (IRD, Geomatys) * @version 3.19 * * @since 2.4 * @module */ @Immutable public class Krovak extends MapProjection { /** * For cross-version compatibility. */ private static final long serialVersionUID = -278392856661204734L; /** * The operation parameter descriptor for the {@linkplain * org.geotoolkit.referencing.operation.projection.UnitaryProjection.Parameters#centralMeridian * central meridian} parameter value. * * This parameter is mandatory. * Valid values range is [-180 … 180]° and default value is * 24°50' (which is 42°30' from Ferro prime meridian). */ public static final ParameterDescriptor LONGITUDE_OF_CENTRE = Identifiers.CENTRAL_MERIDIAN.select(true, 42.5 - 17.66666666666667, "longitude_of_center", // OGC "Longitude_Of_Center", // ESRI "Longitude of origin", // EPSG "CenterLong"); // GeoTIFF /** * The operation parameter descriptor for the {@linkplain * org.geotoolkit.referencing.operation.projection.UnitaryProjection.Parameters#latitudeOfOrigin * latitude of origin} parameter value. * * This parameter is mandatory. * Valid values range is [-90 … 90]° and default value is 49.5°. */ public static final ParameterDescriptor LATITUDE_OF_CENTRE = Identifiers.LATITUDE_OF_ORIGIN.select(true, 49.5, "latitude_of_center", // OGC "Latitude_Of_Center", // ESRI "Latitude of projection centre", // EPSG "CenterLat"); // GeoTIFF /** * The operation parameter descriptor for the {@code azimuth} parameter value. This has * been renamed "Co-latitude of cone axis" in latest EPSG database versions. * * This parameter is mandatory. * Valid values range is [-90 … 90]° and default value is 30.28813972222°. */ public static final ParameterDescriptor AZIMUTH = Identifiers.AZIMUTH.select(true, 30.28813972222222, "azimuth", // OGC "Co-latitude of cone axis", // EPSG "AzimuthAngle"); // GeoTIFF /** * The operation parameter descriptor for the first {@linkplain * org.geotoolkit.referencing.operation.projection.UnitaryProjection.Parameters#standardParallels * standard parallel} parameter value. * * This parameter is mandatory. * Valid values range is [-90 … 90]° and default value is 78.5°. */ public static final ParameterDescriptor PSEUDO_STANDARD_PARALLEL = Identifiers.STANDARD_PARALLEL_1.select(true, 78.5, "pseudo_standard_parallel_1", // OGC "Pseudo_Standard_Parallel_1", // ESRI "Latitude of pseudo standard parallel"); // EPSG /** * The operation parameter descriptor for the {@linkplain * org.geotoolkit.referencing.operation.projection.UnitaryProjection.Parameters#scaleFactor * scale factor} parameter value. * * This parameter is mandatory. * Valid values range is (0 … ∞) and default value is 0.9999. */ public static final ParameterDescriptor SCALE_FACTOR = Identifiers.SCALE_FACTOR.select(true, 0.9999, "Scale factor on pseudo standard parallel", // EPSG "ScaleAtCenter"); // GeoTIFF /** * The operation parameter descriptor for the {@linkplain * org.geotoolkit.referencing.operation.projection.UnitaryProjection.Parameters#falseEasting * false easting} parameter value. * * This parameter is mandatory. * Valid values range is unrestricted and default value is 0 metre. */ public static final ParameterDescriptor FALSE_EASTING = Mercator1SP.FALSE_EASTING; /** * The operation parameter descriptor for the {@linkplain * org.geotoolkit.referencing.operation.projection.UnitaryProjection.Parameters#falseNorthing * false northing} parameter value. * * This parameter is mandatory. * Valid values range is unrestricted and default value is 0 metre. */ public static final ParameterDescriptor FALSE_NORTHING = Mercator1SP.FALSE_NORTHING; /** * The parameters group. */ public static final ParameterDescriptorGroup PARAMETERS = Identifiers.createDescriptorGroup( new ReferenceIdentifier[] { new NamedIdentifier(Citations.OGC, "Krovak"), new NamedIdentifier(Citations.GEOTIFF, "Krovak"), new NamedIdentifier(Citations.GEOTOOLKIT, "Krovak Oblique Conformal Conic"), new NamedIdentifier(Citations.GEOTOOLKIT, "Krovak Oblique Conic Conformal"), // Legacy EPSG new NamedIdentifier(Citations.EPSG, "Krovak"), // Starting from EPSG version 7.6 new IdentifierCode (Citations.EPSG, 9819), }, new ParameterDescriptor[] { SEMI_MAJOR, SEMI_MINOR, ROLL_LONGITUDE, LATITUDE_OF_CENTRE, LONGITUDE_OF_CENTRE, AZIMUTH, PSEUDO_STANDARD_PARALLEL, SCALE_FACTOR, X_SCALE, Y_SCALE, XY_PLANE_ROTATION, FALSE_EASTING, FALSE_NORTHING }); /** * Constructs a new provider. */ public Krovak() { super(PARAMETERS); } /** * Returns the operation type for this map projection. */ @Override public Class getOperationType() { return ConicProjection.class; } /** * {@inheritDoc} */ @Override protected MathTransform2D createMathTransform(ParameterValueGroup values) { return org.geotoolkit.referencing.operation.projection.Krovak.create(getParameters(), values); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy