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