001: /*
002: * GeoTools - OpenSource mapping toolkit
003: * http://geotools.org
004: *
005: * (C) 2005-2006, Geotools Project Managment Committee (PMC)
006: *
007: * This library is free software; you can redistribute it and/or
008: * modify it under the terms of the GNU Lesser General Public
009: * License as published by the Free Software Foundation;
010: * version 2.1 of the License.
011: *
012: * This library is distributed in the hope that it will be useful,
013: * but WITHOUT ANY WARRANTY; without even the implied warranty of
014: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015: * Lesser General Public License for more details.
016: */
017: package org.geotools.referencing.operation.projection;
018:
019: // OpenGIS dependencies
020: import org.opengis.parameter.ParameterDescriptor;
021: import org.opengis.parameter.ParameterDescriptorGroup;
022: import org.opengis.parameter.ParameterNotFoundException;
023: import org.opengis.parameter.ParameterValueGroup;
024: import org.opengis.referencing.operation.ConicProjection;
025: import org.opengis.referencing.operation.MathTransform;
026:
027: // Geotools dependencies
028: import org.geotools.metadata.iso.citation.Citations;
029: import org.geotools.referencing.NamedIdentifier;
030: import org.geotools.resources.i18n.VocabularyKeys;
031: import org.geotools.resources.i18n.Vocabulary;
032:
033: /**
034: * Lambert Conical Conformal 2SP Projection.
035: *
036: * @see <A HREF="http://www.remotesensing.org/geotiff/proj_list/lambert_conic_conformal_2sp.html">lambert_conic_conformal_2sp</A>
037: *
038: * @since 2.2
039: * @source $URL: http://svn.geotools.org/geotools/tags/2.4.1/modules/library/referencing/src/main/java/org/geotools/referencing/operation/projection/LambertConformal2SP.java $
040: * @version $Id: LambertConformal2SP.java 24384 2007-02-14 00:23:05Z desruisseaux $
041: * @author Martin Desruisseaux
042: * @author Rueben Schulz
043: */
044: public class LambertConformal2SP extends LambertConformal {
045: /**
046: * Constructs a new map projection from the supplied parameters.
047: *
048: * @param parameters The parameter values in standard units.
049: * @throws ParameterNotFoundException if a mandatory parameter is missing.
050: */
051: protected LambertConformal2SP(final ParameterValueGroup parameters)
052: throws ParameterNotFoundException {
053: super (parameters);
054: }
055:
056: /**
057: * {@inheritDoc}
058: */
059: public ParameterDescriptorGroup getParameterDescriptors() {
060: return Provider.PARAMETERS;
061: }
062:
063: //////////////////////////////////////////////////////////////////////////////////////////
064: //////////////////////////////////////////////////////////////////////////////////////////
065: //////// ////////
066: //////// PROVIDERS ////////
067: //////// ////////
068: //////////////////////////////////////////////////////////////////////////////////////////
069: //////////////////////////////////////////////////////////////////////////////////////////
070:
071: /**
072: * The {@linkplain org.geotools.referencing.operation.MathTransformProvider math transform
073: * provider} for a {@linkplain LambertConformal2SP Lambert Conformal 2SP} projection (EPSG
074: * code 9802).
075: *
076: * @since 2.2
077: * @version $Id: LambertConformal2SP.java 24384 2007-02-14 00:23:05Z desruisseaux $
078: * @author Martin Desruisseaux
079: * @author Rueben Schulz
080: *
081: * @see org.geotools.referencing.operation.DefaultMathTransformFactory
082: */
083: public static class Provider extends AbstractProvider {
084: /**
085: * The parameters group.
086: */
087: static final ParameterDescriptorGroup PARAMETERS = createDescriptorGroup(
088: new NamedIdentifier[] {
089: new NamedIdentifier(Citations.OGC,
090: "Lambert_Conformal_Conic_2SP"),
091: new NamedIdentifier(Citations.EPSG,
092: "Lambert Conic Conformal (2SP)"),
093: new NamedIdentifier(Citations.EPSG, "9802"),
094: new NamedIdentifier(Citations.GEOTIFF,
095: "CT_LambertConfConic_2SP"),
096: new NamedIdentifier(Citations.GEOTIFF,
097: "CT_LambertConfConic"),
098: new NamedIdentifier(
099: Citations.GEOTOOLS,
100: Vocabulary
101: .formatInternational(VocabularyKeys.LAMBERT_CONFORMAL_PROJECTION)) },
102: new ParameterDescriptor[] { SEMI_MAJOR, SEMI_MINOR,
103: CENTRAL_MERIDIAN, LATITUDE_OF_ORIGIN,
104: STANDARD_PARALLEL_1, STANDARD_PARALLEL_2,
105: FALSE_EASTING, FALSE_NORTHING });
106:
107: /**
108: * Constructs a new provider.
109: */
110: public Provider() {
111: super (PARAMETERS);
112: }
113:
114: /**
115: * Returns the operation type for this map projection.
116: */
117: public Class getOperationType() {
118: return ConicProjection.class;
119: }
120:
121: /**
122: * Creates a transform from the specified group of parameter values.
123: *
124: * @param parameters The group of parameter values.
125: * @return The created math transform.
126: * @throws ParameterNotFoundException if a required parameter was not found.
127: */
128: protected MathTransform createMathTransform(
129: final ParameterValueGroup parameters)
130: throws ParameterNotFoundException {
131: return new LambertConformal2SP(parameters);
132: }
133: }
134: }
|