OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimLambertConformalConicProjection.h
Go to the documentation of this file.
1 //*******************************************************************
2 //
3 // License: See top level LICENSE.txt file.
4 //
5 // Author: Garrett Potts
6 //
7 // Description:
8 //
9 // Calls Lamberts Conformal Conic projection code.
10 //*******************************************************************
11 // $Id: ossimLambertConformalConicProjection.h 17815 2010-08-03 13:23:14Z dburken $
12 
13 #ifndef ossimLambertConformalConicProjection_HEADER
14 #define ossimLambertConformalConicProjection_HEADER
15 
16 #include <iosfwd>
18 
20 {
21 public:
23  const ossimGpt& origin = ossimGpt());
24 
34  const ossimGpt& origin,
35  double stdParallel1,
36  double stdParallel2,
37  double falseEasting,
38  double falseNorthing);
39 
41 
42  virtual ossimObject *dup()const;
43 
44  virtual ossimGpt inverse(const ossimDpt &eastingNorthing)const;
45  virtual ossimDpt forward(const ossimGpt &latLon)const;
46  virtual void update();
47 
52  void setStandardParallel1(double degree);
53 
58  void setStandardParallel2(double degree);
59 
63  void setStandardParallels(double parallel1Degree,
64  double prallel2Degree);
65 
70  void setFalseEasting(double falseEasting);
71 
76  void setFalseNorthing(double falseNorthing);
77 
83  void setFalseEastingNorthing(double falseEasting, double falseNorthing);
84 
93  void setParameters(double parallel1,
94  double parallel2,
95  double falseEasting,
96  double falseNorthing);
97 
99  virtual double getStandardParallel1() const;
100 
102  virtual double getStandardParallel2() const;
103 
104  void setDefaults();
105 
110  virtual bool saveState(ossimKeywordlist& kwl,
111  const char* prefix=0)const;
112 
117  virtual bool loadState(const ossimKeywordlist& kwl,
118  const char* prefix=0);
119 
123  virtual std::ostream& print(std::ostream& out) const;
124 
126  virtual bool operator==(const ossimProjection& projection) const;
127 
128 private:
129 
130  //_______________GEOTRANS____________________
131  mutable double Lambert_a; /* Semi-major axis of ellipsoid, in meters */
132  mutable double Lambert_f; /* Flattening of ellipsoid */
133  mutable double es; /* Eccentricity of ellipsoid */
134  mutable double es2; /* Eccentricity squared */
135  mutable double es_OVER_2; /* Eccentricity / 2.0 */
136  mutable double n; /* Ratio of angle between meridians */
137  mutable double F; /* Flattening of ellipsoid */
138  mutable double rho0; /* Height above ellipsoid */
139  mutable double Lambert_aF; /* Lambert_a * F */
140 
141 /* Lambert_Conformal_Conic projection Parameters */
142  mutable double Lambert_Std_Parallel_1; /* Lower std. parallel, in radians */
143  mutable double Lambert_Std_Parallel_2; /* Upper std. parallel, in radians */
144  mutable double Lambert_Origin_Lat; /* Latitude of origin, in radians */
145  mutable double Lambert_Origin_Long; /* Longitude of origin, in radians */
146  mutable double Lambert_False_Northing; /* False northing, in meters */
147  mutable double Lambert_False_Easting; /* False easting, in meters */
148 
164  long Set_Lambert_Parameters(double a,
165  double f,
166  double Origin_Latitude,
167  double Central_Meridian,
168  double Std_Parallel_1,
169  double Std_Parallel_2,
170  double False_Easting,
171  double False_Northing);
172 
173 
174 
175 
189  void Get_Lambert_Parameters(double *a,
190  double *f,
191  double *Origin_Latitude,
192  double *Central_Meridian,
193  double *Std_Parallel_1,
194  double *Std_Parallel_2,
195  double *False_Easting,
196  double *False_Northing)const;
197 
211  long Convert_Geodetic_To_Lambert (double Latitude,
212  double Longitude,
213  double *Easting,
214  double *Northing)const;
215 
229  long Convert_Lambert_To_Geodetic (double Easting,
230  double Northing,
231  double *Latitude,
232  double *Longitude)const;
233 
234 
235 TYPE_DATA
236 };
237 
238 #endif
virtual ossimObject * dup() const =0
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Method to the load (recreate) the state of an object from a keyword list.
#define OSSIMDLLEXPORT
Represents serializable keyword/value map.
virtual double getStandardParallel2() const
Derived classes should implement as needed.
virtual ossimGpt inverse(const ossimDpt &projectedPoint) const =0
Will take a point in meters and convert it to ground.
virtual double getStandardParallel1() const
Derived classes should implement as needed.
virtual bool operator==(const ossimProjection &projection) const
Compares this to arg projection and returns TRUE if the same.
#define TYPE_DATA
Definition: ossimRtti.h:339
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Method to save the state of an object to a keyword list.
virtual ossimDpt forward(const ossimGpt &worldPoint) const =0
All map projections will convert the world coordinate to an easting northing (Meters).
virtual std::ostream & print(std::ostream &out) const
Prints data members to stream.
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23