001: // $HeadURL: https://svn.wald.intevation.org/svn/deegree/base/trunk/src/org/deegree/ogcwebservices/LonLatEnvelope.java $
002: /*---------------- FILE HEADER ------------------------------------------
003:
004: This file is part of deegree.
005: Copyright (C) 2001-2008 by:
006: EXSE, Department of Geography, University of Bonn
007: http://www.giub.uni-bonn.de/deegree/
008: lat/lon GmbH
009: http://www.lat-lon.de
010:
011: This library is free software; you can redistribute it and/or
012: modify it under the terms of the GNU Lesser General Public
013: License as published by the Free Software Foundation; either
014: version 2.1 of the License, or (at your option) any later version.
015:
016: This library is distributed in the hope that it will be useful,
017: but WITHOUT ANY WARRANTY; without even the implied warranty of
018: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
019: Lesser General Public License for more details.
020:
021: You should have received a copy of the GNU Lesser General Public
022: License along with this library; if not, write to the Free Software
023: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
024:
025: Contact:
026:
027: Andreas Poth
028: lat/lon GmbH
029: Aennchenstr. 19
030: 53115 Bonn
031: Germany
032: E-Mail: poth@lat-lon.de
033:
034: Prof. Dr. Klaus Greve
035: Department of Geography
036: University of Bonn
037: Meckenheimer Allee 166
038: 53115 Bonn
039: Germany
040: E-Mail: greve@giub.uni-bonn.de
041:
042:
043: ---------------------------------------------------------------------------*/
044:
045: package org.deegree.ogcwebservices;
046:
047: import java.io.Serializable;
048:
049: import org.deegree.datatypes.time.TimePosition;
050: import org.deegree.framework.util.StringTools;
051: import org.deegree.model.spatialschema.Envelope;
052: import org.deegree.model.spatialschema.GeometryFactory;
053: import org.deegree.model.spatialschema.Point;
054:
055: /**
056: * @version $Revision: 9345 $
057: * @author <a href="mailto:poth@lat-lon.de">Andreas Poth</a>
058: * @author last edited by: $Author: apoth $
059: *
060: * @version 1.0. $Revision: 9345 $, $Date: 2007-12-27 08:22:25 -0800 (Thu, 27 Dec 2007) $
061: *
062: * @since 2.0
063: */
064:
065: public class LonLatEnvelope implements Cloneable, Serializable {
066:
067: private static final long serialVersionUID = 6225897903182806919L;
068:
069: private Point min = null;
070:
071: private Point max = null;
072:
073: private TimePosition[] timePositions = new TimePosition[0];
074:
075: private String srs = "WGS84(DD)";
076:
077: /**
078: * @param min
079: * @param max
080: */
081: public LonLatEnvelope(Point min, Point max) {
082: this .min = min;
083: this .max = max;
084: }
085:
086: /**
087: * @param min
088: * @param max
089: * @param srs
090: */
091: public LonLatEnvelope(Point min, Point max, String srs) {
092: this .min = min;
093: this .max = max;
094: this .srs = srs;
095: }
096:
097: /**
098: * @param min
099: * @param max
100: * @param timePositions
101: * @param srs
102: */
103: public LonLatEnvelope(Point min, Point max,
104: TimePosition[] timePositions, String srs) {
105: this .min = min;
106: this .max = max;
107: this .timePositions = timePositions;
108: this .srs = srs;
109: }
110:
111: /**
112: * @param minx
113: * @param miny
114: * @param maxx
115: * @param maxy
116: */
117: public LonLatEnvelope(double minx, double miny, double maxx,
118: double maxy) {
119: this .min = GeometryFactory.createPoint(minx, miny, null);
120: this .max = GeometryFactory.createPoint(maxx, maxy, null);
121: }
122:
123: /**
124: * @param envelope
125: */
126: public LonLatEnvelope(Envelope envelope) {
127: this .min = GeometryFactory.createPoint(
128: envelope.getMin().getX(), envelope.getMin().getY(),
129: null);
130: this .max = GeometryFactory.createPoint(
131: envelope.getMax().getX(), envelope.getMax().getY(),
132: null);
133: }
134:
135: /**
136: * @return Returns the max.
137: */
138: public Point getMax() {
139: return max;
140: }
141:
142: /**
143: * @param max
144: * The max to set.
145: */
146: public void setMax(Point max) {
147: this .max = max;
148: }
149:
150: /**
151: * @return Returns the min.
152: */
153: public Point getMin() {
154: return min;
155: }
156:
157: /**
158: * @param min
159: * The min to set.
160: */
161: public void setMin(Point min) {
162: this .min = min;
163: }
164:
165: /**
166: * @return Returns the srs.
167: */
168: public String getSrs() {
169: return srs;
170: }
171:
172: /**
173: * @param srs
174: * The srs to set.
175: */
176: public void setSrs(String srs) {
177: this .srs = srs;
178: }
179:
180: /**
181: * @return Returns the timePositions.
182: */
183: public TimePosition[] getTimePositions() {
184: return timePositions;
185: }
186:
187: /**
188: * @param timePositions
189: * The timePositions to set.
190: */
191: public void setTimePositions(TimePosition[] timePositions) {
192: if (timePositions == null) {
193: timePositions = new TimePosition[0];
194: }
195: this .timePositions = timePositions;
196: }
197:
198: public Object clone() {
199: TimePosition[] timePositions_ = new TimePosition[timePositions.length];
200: for (int i = 0; i < timePositions_.length; i++) {
201: timePositions_[i] = (TimePosition) timePositions[i].clone();
202: }
203:
204: return new LonLatEnvelope(min, max, timePositions_, new String(
205: srs));
206: }
207:
208: public String toString() {
209: return StringTools.concat(200, "min: ", min, " max: ", max);
210: }
211: }
|