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

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

/*
 *    Geotoolkit.org - An Open Source Java GIS Toolkit
 *    http://www.geotoolkit.org
 *
 *    (C) 2005-2012, Open Source Geospatial Foundation (OSGeo)
 *    (C) 2009-2012, 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.metadata.citation.Citation;
import org.opengis.parameter.ParameterValueGroup;
import org.opengis.parameter.ParameterDescriptor;
import org.opengis.parameter.ParameterDescriptorGroup;
import org.opengis.referencing.operation.MathTransform2D;
import org.opengis.referencing.ReferenceIdentifier;

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


/**
 * The provider for "New Zealand Map Grid" (EPSG:9811).
 * This projection is used with the International 1924 ellipsoid.
 * The math transform implementations instantiated by this provider may be any of the following classes:
 * 

*

    *
  • {@link org.geotoolkit.referencing.operation.projection.NewZealandMapGrid}
  • *
* * *

The following table summarizes the parameters recognized by this provider. * For a more detailed parameter list, see the {@link #PARAMETERS} constant.

*

Operation name: {@code New_Zealand_Map_Grid} *
Area of use: (union of CRS domains of validity in EPSG database)

*
* * *
in latitudes:47°24.0′Sto34°00.0′S
in longitudes:166°19.8′Eto178°36.0′E
* * * * * * * * * *
Parameter nameDefault value
{@code semi_major}6378388 metres
{@code semi_minor}6356911.9461279465 metres
{@code roll_longitude}false
{@code latitude_of_origin}-41°
{@code central_meridian}173°
{@code false_easting}2510000 metres
{@code false_northing}6023150 metres
* * * @author Justin Deoliveira (Refractions) * @author Martin Desruisseaux (IRD, Geomatys) * @version 3.20 * * @see New Zealand Map Grid on RemoteSensing.org * @see Geotk coordinate operations matrix * * @since 2.2 * @module */ @Immutable public class NewZealandMapGrid extends MapProjection { /** * For compatibility with different versions during deserialization. */ private static final long serialVersionUID = -7716733400419275656L; /** * The operation parameter descriptor for the {@linkplain * org.geotoolkit.referencing.operation.projection.UnitaryProjection.Parameters#semiMajor * semi major} parameter value. * * This parameter is mandatory. * Valid values range is (0 … ∞) and default value is 6378388 metres. * * @deprecated Invoke {@linkplain #PARAMETERS}.{@linkplain ParameterDescriptorGroup#descriptor(String) * descriptor(String)} instead. */ @Deprecated public static final ParameterDescriptor SEMI_MAJOR; /** * The operation parameter descriptor for the {@linkplain * org.geotoolkit.referencing.operation.projection.UnitaryProjection.Parameters#semiMinor * semi minor} parameter value. * * This parameter is mandatory. * Valid values range is (0 … ∞) and default value is approximatively * 6356911.95 metres. * * @deprecated Invoke {@linkplain #PARAMETERS}.{@linkplain ParameterDescriptorGroup#descriptor(String) * descriptor(String)} instead. */ @Deprecated public static final ParameterDescriptor SEMI_MINOR; /** * 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 173°. * * @deprecated Invoke {@linkplain #PARAMETERS}.{@linkplain ParameterDescriptorGroup#descriptor(String) * descriptor(String)} instead. */ @Deprecated public static final ParameterDescriptor CENTRAL_MERIDIAN; /** * 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 -41°. * * @deprecated Invoke {@linkplain #PARAMETERS}.{@linkplain ParameterDescriptorGroup#descriptor(String) * descriptor(String)} instead. */ @Deprecated public static final ParameterDescriptor LATITUDE_OF_ORIGIN; /** * The operation parameter descriptor for the {@linkplain * org.geotoolkit.referencing.operation.projection.UnitaryProjection.Parameters#falseEasting * false easting} parameter value. Valid values range is unrestricted. * * This parameter is mandatory. * Valid values range is unrestricted and default value is 2510000 metre. * * @deprecated Invoke {@linkplain #PARAMETERS}.{@linkplain ParameterDescriptorGroup#descriptor(String) * descriptor(String)} instead. */ @Deprecated public static final ParameterDescriptor FALSE_EASTING; /** * The operation parameter descriptor for the {@linkplain * org.geotoolkit.referencing.operation.projection.UnitaryProjection.Parameters#falseNorthing * false northing} parameter value. Valid values range is unrestricted. * * This parameter is mandatory. * Valid values range is unrestricted and default value is 6023150 metre. * * @deprecated Invoke {@linkplain #PARAMETERS}.{@linkplain ParameterDescriptorGroup#descriptor(String) * descriptor(String)} instead. */ @Deprecated public static final ParameterDescriptor FALSE_NORTHING; /** * Parameters creation, which must be done before to initialize the {@link #PARAMETERS} field. */ static { final Citation[] excludes = new Citation[] {Citations.ESRI, Citations.NETCDF}; SEMI_MAJOR = UniversalParameters.SEMI_MAJOR.select(true, 6378388.0, excludes, null); SEMI_MINOR = UniversalParameters.SEMI_MINOR.select(true, 6378388.0*(1-1/297.0), excludes, null); CENTRAL_MERIDIAN = UniversalParameters.CENTRAL_MERIDIAN.select(true, 173.0, excludes, null, "Longitude of natural origin", // EPSG "central_meridian", // OGC "NatOriginLong"); // GeoTIFF LATITUDE_OF_ORIGIN = UniversalParameters.LATITUDE_OF_ORIGIN.select(true, -41.0, excludes, null, "Latitude of natural origin", // EPSG "latitude_of_origin", // OGC "NatOriginLat"); // GeoTIFF FALSE_EASTING = UniversalParameters.FALSE_EASTING.select(true, 2510000.0, excludes, null, "False easting", // EPSG "FalseEasting"); // GeoTIFF FALSE_NORTHING = UniversalParameters.FALSE_NORTHING.select(true, 6023150.0, excludes, null, "False northing", // EPSG "FalseNorthing"); // GeoTIFF } /** * The group of all parameters expected by this coordinate operation. * The following table lists the operation names and the parameters recognized by Geotk: *

* *

* * * * * * * * *
* * * * * * * *
Name:OGC:New_Zealand_Map_Grid
Alias:EPSG:New Zealand Map Grid
GeoTIFF:CT_NewZealandMapGrid
PROJ4:nzmg
Identifier:EPSG:9811
GeoTIFF:26
*
* * * * * *
Name:OGC:semi_major
Alias:EPSG:Semi-major axis
GeoTIFF:SemiMajor
PROJ4:a
*
* * * * * *
Type:{@code Double}
Obligation:mandatory
Value range:[0…∞) metres
Default value:6378388 metres
*
* * * * * *
Name:OGC:semi_minor
Alias:EPSG:Semi-minor axis
GeoTIFF:SemiMinor
PROJ4:b
*
* * * * * *
Type:{@code Double}
Obligation:mandatory
Value range:[0…∞) metres
Default value:6356911.9461279465 metres
*
* * *
Name:Geotk:roll_longitude
*
* * * * *
Type:{@code Boolean}
Obligation:optional
Default value:false
*
* * * * * *
Name:OGC:latitude_of_origin
Alias:EPSG:Latitude of natural origin
GeoTIFF:NatOriginLat
PROJ4:lat_0
*
* * * * * *
Type:{@code Double}
Obligation:mandatory
Value range:[-90 … 90]°
Default value:-41°
*
* * * * * *
Name:OGC:central_meridian
Alias:EPSG:Longitude of natural origin
GeoTIFF:NatOriginLong
PROJ4:lon_0
*
* * * * * *
Type:{@code Double}
Obligation:mandatory
Value range:[-180 … 180]°
Default value:173°
*
* * * * * *
Name:OGC:false_easting
Alias:EPSG:False easting
GeoTIFF:FalseEasting
PROJ4:x_0
*
* * * * * *
Type:{@code Double}
Obligation:mandatory
Value range:(-∞ … ∞) metres
Default value:2510000 metres
*
* * * * * *
Name:OGC:false_northing
Alias:EPSG:False northing
GeoTIFF:FalseNorthing
PROJ4:y_0
*
* * * * * *
Type:{@code Double}
Obligation:mandatory
Value range:(-∞ … ∞) metres
Default value:6023150 metres
*
*/ public static final ParameterDescriptorGroup PARAMETERS = UniversalParameters.createDescriptorGroup( new ReferenceIdentifier[] { new NamedIdentifier(Citations.OGC, "New_Zealand_Map_Grid"), new NamedIdentifier(Citations.EPSG, "New Zealand Map Grid"), new IdentifierCode (Citations.EPSG, 9811), new NamedIdentifier(Citations.GEOTIFF, "CT_NewZealandMapGrid"), new IdentifierCode (Citations.GEOTIFF, 26), new NamedIdentifier(Citations.PROJ4, "nzmg") }, null, new ParameterDescriptor[] { SEMI_MAJOR, SEMI_MINOR, ROLL_LONGITUDE, LATITUDE_OF_ORIGIN, CENTRAL_MERIDIAN, FALSE_EASTING, FALSE_NORTHING }, MapProjectionDescriptor.ADD_EARTH_RADIUS); /** * Constructs a new provider. */ public NewZealandMapGrid() { super(PARAMETERS); } /** * {@inheritDoc} */ @Override protected MathTransform2D createMathTransform(ParameterValueGroup values) { return org.geotoolkit.referencing.operation.projection.NewZealandMapGrid.create(getParameters(), values); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy