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 Belgium Projection.
035: *
036: * @see <A HREF="http://www.remotesensing.org/geotiff/proj_list/lambert_conic_conformal_2sp_belgium.html">lambert_conic_conformal_2sp_belgium</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/LambertConformalBelgium.java $
040: * @version $Id: LambertConformalBelgium.java 24384 2007-02-14 00:23:05Z desruisseaux $
041: * @author Rueben Schulz
042: * @author Martin Desruisseaux
043: */
044: public class LambertConformalBelgium 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 LambertConformalBelgium(
052: final ParameterValueGroup parameters)
053: throws ParameterNotFoundException {
054: super (parameters, true);
055: }
056:
057: /**
058: * {@inheritDoc}
059: */
060: public ParameterDescriptorGroup getParameterDescriptors() {
061: return Provider.PARAMETERS;
062: }
063:
064: //////////////////////////////////////////////////////////////////////////////////////////
065: //////////////////////////////////////////////////////////////////////////////////////////
066: //////// ////////
067: //////// PROVIDERS ////////
068: //////// ////////
069: //////////////////////////////////////////////////////////////////////////////////////////
070: //////////////////////////////////////////////////////////////////////////////////////////
071:
072: /**
073: * The {@linkplain org.geotools.referencing.operation.MathTransformProvider math transform
074: * provider} for a {@linkplain LambertConformalBelgium Lambert Conformal 2SP Belgium}
075: * projection (EPSG code 9803).
076: *
077: * @since 2.2
078: * @version $Id: LambertConformalBelgium.java 24384 2007-02-14 00:23:05Z desruisseaux $
079: * @author Rueben Schulz
080: *
081: * @see org.geotools.referencing.operation.DefaultMathTransformFactory
082: */
083: public static final 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_Belgium"),
091: new NamedIdentifier(Citations.EPSG,
092: "Lambert Conic Conformal (2SP Belgium)"),
093: new NamedIdentifier(Citations.EPSG, "9803"),
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: STANDARD_PARALLEL_1, STANDARD_PARALLEL_2,
101: FALSE_EASTING, FALSE_NORTHING });
102:
103: /**
104: * Constructs a new provider.
105: */
106: public Provider() {
107: super (PARAMETERS);
108: }
109:
110: /**
111: * Returns the operation type for this map projection.
112: */
113: public Class getOperationType() {
114: return ConicProjection.class;
115: }
116:
117: /**
118: * Creates a transform from the specified group of parameter values.
119: *
120: * @param parameters The group of parameter values.
121: * @return The created math transform.
122: * @throws ParameterNotFoundException if a required parameter was not found.
123: */
124: protected MathTransform createMathTransform(
125: final ParameterValueGroup parameters)
126: throws ParameterNotFoundException {
127: return new LambertConformalBelgium(parameters);
128: }
129: }
130: }
|