001 //$HeadURL: svn+ssh://rbezema@svn.wald.intevation.org/deegree/base/branches/2.2_testing/src/org/deegree/ogcwebservices/wms/capabilities/ScaleHint.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 package org.deegree.ogcwebservices.wms.capabilities;
045
046
047
048 /**
049 * Layers may include a <ScaleHint> element that suggests minimum and maximum
050 * scales for which it is appropriate to display this layer. Because WMS output
051 * is destined for output devices of arbitrary size and resolution, the usual
052 * definition of scale as the ratio of map size to real-world size is not
053 * appropriate here. The following definition of Scale Hint is recommended.
054 * Consider a hypothetical map with a given Bounding Box, width and height.
055 * The central pixel of that map (or the pixel just to the northwest of center)
056 * will have some size, which can be expressed as the ground distance in meters
057 * of the southwest to northeast diagonal of that pixel. The two values in
058 * ScaleHint are the minimum and maximum recommended values of that diagonal. It
059 * is recognized that this definition is not geodetically precise, but at the
060 * same time the hope is that by including it conventions will develop that can
061 * be later specified more clearly.
062 * <p>----------------------------------------------------------------------</p>
063 *
064 * @author <a href="mailto:k.lupp@web.de">Andreas Poth</a>
065 * @author <a href="mailto:mschneider@lat-lon.de">Markus Schneider</a>
066 * @version $Revision: 9345 $
067 */
068 public class ScaleHint {
069 private double max = Double.MAX_VALUE;
070 private double min = 0;
071
072 /**
073 * constructor initializing the class with the <ScaleHint>
074 * @param min
075 * @param max
076 */
077 public ScaleHint( double min, double max ) {
078 setMin( min );
079 setMax( max );
080 }
081
082 /**
083 * @return the minimum scale for which a layer is defined
084 */
085 public double getMin() {
086 return min;
087 }
088
089 /**
090 * sets the minimum scale for which a layer is defined
091 * @param min
092 */
093 public void setMin( double min ) {
094 this.min = min;
095 }
096
097 /**
098 * @return the maximum scale for which a layer is defined
099 */
100 public double getMax() {
101 return max;
102 }
103
104 /**
105 * sets the maximum scale for which a layer is defined
106 * @param max
107 */
108 public void setMax( double max ) {
109 this.max = max;
110 }
111
112 @Override
113 public String toString() {
114 String ret = null;
115 ret = "min = " + min + "\n";
116 ret += ( "max = " + max + "\n" );
117 return ret;
118 }
119
120 }