001: //$HeadURL: $
002: /*---------------- FILE HEADER ------------------------------------------
003: This file is part of deegree.
004: Copyright (C) 2001-2008 by:
005: Department of Geography, University of Bonn
006: http://www.giub.uni-bonn.de/deegree/
007: lat/lon GmbH
008: http://www.lat-lon.de
009:
010: This library is free software; you can redistribute it and/or
011: modify it under the terms of the GNU Lesser General Public
012: License as published by the Free Software Foundation; either
013: version 2.1 of the License, or (at your option) any later version.
014: This library is distributed in the hope that it will be useful,
015: but WITHOUT ANY WARRANTY; without even the implied warranty of
016: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
017: Lesser General Public License for more details.
018: You should have received a copy of the GNU Lesser General Public
019: License along with this library; if not, write to the Free Software
020: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
021: Contact:
022:
023: Andreas Poth
024: lat/lon GmbH
025: Aennchenstr. 19
026: 53177 Bonn
027: Germany
028: E-Mail: poth@lat-lon.de
029:
030: Prof. Dr. Klaus Greve
031: Department of Geography
032: University of Bonn
033: Meckenheimer Allee 166
034: 53115 Bonn
035: Germany
036: E-Mail: greve@giub.uni-bonn.de
037: ---------------------------------------------------------------------------*/
038:
039: package org.deegree.crs.coordinatesystems;
040:
041: import org.deegree.crs.Identifiable;
042: import org.deegree.crs.components.Axis;
043: import org.deegree.crs.components.GeodeticDatum;
044:
045: /**
046: * A <code>GeocentricCRS</code> is a coordinatesystem having three axis and a mass point defined to be equivalent to
047: * earths center.
048: *
049: * @author <a href="mailto:bezema@lat-lon.de">Rutger Bezema</a>
050: *
051: * @author last edited by: $Author:$
052: *
053: * @version $Revision:$, $Date:$
054: *
055: */
056:
057: public class GeocentricCRS extends CoordinateSystem {
058:
059: /**
060: * The default geocentric coordinate system. Geocentric datum is WGS84 and linear units are metre. The <var>X</var>
061: * axis points towards the prime meridian (e.g. front). The <var>Y</var> axis points East. The <var>Z</var> axis
062: * points North.
063: */
064: public static final GeocentricCRS WGS84 = new GeocentricCRS(
065: GeodeticDatum.WGS84, "GC_WGS84", "Geocentric WGS84");
066:
067: /**
068: * @param datum
069: * @param axisOrder
070: * @param identity
071: */
072: public GeocentricCRS(GeodeticDatum datum, Axis[] axisOrder,
073: Identifiable identity) {
074: super (datum, axisOrder, identity);
075: }
076:
077: /**
078: * @param datum
079: * @param axisOrder
080: * @param identifiers
081: * @param names
082: * @param versions
083: * @param descriptions
084: * @param areasOfUse
085: */
086: public GeocentricCRS(GeodeticDatum datum, Axis[] axisOrder,
087: String[] identifiers, String[] names, String[] versions,
088: String[] descriptions, String[] areasOfUse) {
089: super (datum, axisOrder, identifiers, names, versions,
090: descriptions, areasOfUse);
091: }
092:
093: /**
094: * @param datum
095: * @param axisOrder
096: * @param identifier
097: * @param name
098: * @param version
099: * @param description
100: * @param areaOfUse
101: */
102: public GeocentricCRS(GeodeticDatum datum, Axis[] axisOrder,
103: String identifier, String name, String version,
104: String description, String areaOfUse) {
105: this (datum, axisOrder, new String[] { identifier },
106: new String[] { name }, new String[] { version },
107: new String[] { description },
108: new String[] { areaOfUse });
109: }
110:
111: /**
112: * @param datum
113: * @param axisOrder
114: * @param identifier
115: */
116: public GeocentricCRS(GeodeticDatum datum, Axis[] axisOrder,
117: String identifier) {
118: this (datum, axisOrder, new String[] { identifier }, null, null,
119: null, null);
120: }
121:
122: /**
123: * Geocentric crs with it's axis pointing to x=front, y=east, z=north.
124: *
125: * @param datum
126: * @param identifier
127: * @param name
128: */
129: public GeocentricCRS(GeodeticDatum datum, String identifier,
130: String name) {
131: this (datum, new Axis[] { new Axis("X", Axis.AO_FRONT),
132: new Axis("Y", Axis.AO_EAST),
133: new Axis("Z", Axis.AO_NORTH) },
134: new String[] { identifier }, new String[] { name },
135: null, null, null);
136: }
137:
138: @Override
139: public int getType() {
140: return CoordinateSystem.GEOCENTRIC_CRS;
141: }
142:
143: @Override
144: public int getDimension() {
145: return 3;
146: }
147: }
|