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

org.geotoolkit.referencing.operation.provider.package-info Maven / Gradle / Ivy

/*
 *    Geotoolkit.org - An Open Source Java GIS Toolkit
 *    http://www.geotoolkit.org
 *
 *    (C) 2008-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.
 */

/**
 * {@linkplain org.geotoolkit.referencing.operation.MathTransformProvider Providers} of
 * {@linkplain org.geotoolkit.referencing.operation.transform transforms} and
 * {@linkplain org.geotoolkit.referencing.operation.projection projections} implementations.
 * This package is provided mostly for documentation purpose, since the javadoc of each provider
 * lists the operation names, identifiers (e.g. EPSG codes) and parameters. The preferred way to
 * get a provider is to use the {@link org.opengis.referencing.operation.MathTransformFactory} class.
 *
 * {@section Standard parameters}
 *
 * Each provider declares a single {@link org.opengis.parameter.ParameterDescriptorGroup} constant
 * named {@code PARAMETERS}. Each group describes all the parameters expected by an operation method.
 * The set of parameters varies for each projection, but the following can be considered typical:
 * 

*

    *
  • A semi-major and semi-minor axis length in metres.
  • *
  • A central meridian and latitude of origin in decimal degrees.
  • *
  • A scale factor, which default to 1.
  • *
  • A false easting and false northing in metres, which default to 0.
  • *
*

* Each descriptor has many aliases, and those aliases may vary between different projections. * For example the false easting parameter is usually called {@code "false_easting"} * by OGC, while EPSG uses various names like "False easting" or "Easting at * false origin". * * {@section Dynamic parameters} * * A few non-standard parameters are defined for compatibility reasons, * but delegates their work to standard parameters. Those dynamic parameters are not listed in the * {@linkplain org.opengis.referencing.parameter.ParameterValueGroup#values() parameter values}. * Dynamic parameters are: *

*

    *
  • {@code "earth_radius"}, which copy its value to the {@code "semi_major"} and * {@code "semi_minor"} parameter values.
  • *
  • {@code "inverse_flattening"}, which compute the {@code "semi_minor"} value from * the {@code "semi_major"} parameter value.
  • *
  • {@code "standard_parallel"} expecting an array of type {@code double[]}, which copy * its elements to the {@code "standard_parallel_1"} and {@code "standard_parallel_2"} * parameter scalar values.
  • *
*

* The main purpose of those dynamic parameters is to support some less commonly used conventions * without duplicating the most commonly used conventions. The alternative ways are used in NetCDF * files for example, which often use spherical models instead than ellipsoidal ones. * * {@section Mandatory and optional parameters} * * Parameters are flagged as either mandatory or optional. * A parameter may be mandatory and still have a default value. In the context of this package, "mandatory" * means that the parameter is an essential part of the projection defined by standards. Such * mandatory parameters will always appears in any Well Known Text (WKT) formatting, * even if not explicitly set by the user. For example the central meridian is typically a mandatory * parameter with a default value of 0° (the Greenwich meridian). *

* Optional parameters, on the other hand, are often non-standard extensions. They will appear * in WKT formatting only if the user defined explicitly a value which is different than the * default value. * * * {@section Geotoolkit.org extensions} * * Geotk defines a {@code "roll_longitude"} boolean parameter. * If this parameter is set to {@code TRUE}, then any longitude outside the * [-180 … 180)° range (upper value is exclusive) will be forced to that range by the * addition or subtraction of some multiple of 360°. This applies to both the input of * projections and the output of inverse projections. *

* If this parameter is not provided, then the default behavior is to roll longitudes only if * the central meridian is different than zero. * * * {@section ESRI extensions} * * In Geotk, axis flips are inferred from the {@linkplain org.opengis.referencing.is.AxisOrientation * axis orientation}. In Well Known Text (WKT), they are given by {@code AXIS} elements. * But ESRI ignores {@code AXIS} elements and uses instead some additional parameters: * {@code "X_Scale"}, {@code "Y_Scale"} and {@code "XY_Plane_Rotation"}. * Those parameters are not OGC standards, but are nevertheless provided in Geotk for better * inter-operability with ESRI definitions of coordinate reference systems. * * @author Martin Desruisseaux (Geomatys) * @author Rueben Schulz (UBC) * @version 3.20 * * @see Geotk coordinate operations matrix * @see Projections list on RemoteSensing.org * @see org.geotoolkit.referencing.operation.MathTransformProvider * * @since 3.00 * @level advanced * @module */ package org.geotoolkit.referencing.operation.provider;





© 2015 - 2025 Weber Informatics LLC | Privacy Policy