/*
* GeoTools - The Open Source Java GIS Toolkit
* http://geotools.org
*
* (C) 2011, Open Source Geospatial Foundation (OSGeo)
* (C) 2003-2005, Open Geospatial Consortium Inc.
*
* All Rights Reserved. http://www.opengis.org/legal/
*/
package org.opengis.referencing.operation;
import org.opengis.annotation.Extension;
/**
* A {@linkplain org.opengis.referencing.operation.Conversion conversion} transforming
* (<var>longitude</var>,<var>latitude</var>) coordinates to cartesian coordinates
* (<var>x</var>,<var>y</var>). Although some map projections can be represented as a
* geometric process, in general a map projection is a set of formulae that converts geodetic
* latitude and longitude to plane (map) coordinates. Height plays no role in this process,
* which is entirely two-dimensional. The same map projection can be applied to many
* {@linkplain org.opengis.referencing.crs.GeographicCRS geographic CRSs}, resulting in many
* {@linkplain org.opengis.referencing.crs.ProjectedCRS projected CRSs} each of which is related
* to the same {@linkplain org.opengis.referencing.datum.GeodeticDatum geodetic datum} as the
* geographic CRS on which it was based.
* <P>
* An unofficial list of projections and their parameters can
* be found <A HREF="http://www.remotesensing.org/geotiff/proj_list/">there</A>.
* Most projections expect the following parameters:
* <code>"semi_major"</code> (mandatory),
* <code>"semi_minor"</code> (mandatory),
* <code>"central_meridian"</code> (default to 0),
* <code>"latitude_of_origin"</code> (default to 0),
* <code>"scale_factor"</code> (default to 1),
* <code>"false_easting"</code> (default to 0) and
* <code>"false_northing"</code> (default to 0).
*
* @author Martin Desruisseaux (IRD)
* @since GeoAPI 1.0
*
* @see org.opengis.referencing.crs.ProjectedCRS
* @see <A HREF="http://mathworld.wolfram.com/MapProjection.html">Map projections on MathWorld</A>
*
* @source $URL: http://svn.osgeo.org/geotools/branches/2.7.x/modules/library/opengis/src/main/java/org/opengis/referencing/operation/Projection.java $
*/
@Extension
public interface Projection extends Conversion {
}