OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimCylEquAreaProjection.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 Geotrans Cylinder Equal Area projection code.
10 //*******************************************************************
11 // $Id: ossimCylEquAreaProjection.h 17815 2010-08-03 13:23:14Z dburken $
12 
13 #ifndef ossimCylEquAreaProjection_HEADER
14 #define ossimCylEquAreaProjection_HEADER
15 
17 
19 {
20 public:
22  const ossimGpt& origin = ossimGpt());
24  const ossimGpt& origin,
25  double falseEasting,
26  double falseNorthing);
28  virtual ossimObject *dup()const
29  {
30  return new ossimCylEquAreaProjection(*this);
31  }
32 
33  virtual ossimDpt forward(const ossimGpt &worldPoint) const;
34  virtual ossimGpt inverse(const ossimDpt &projectedPoint)const;
35  virtual void update();
36 
41  void setFalseEasting(double falseEasting);
42 
47  void setFalseNorthing(double falseNorthing);
48 
54  void setFalseEastingNorthing(double falseEasting, double falseNorthing);
55 
56  double getFalseEasting()const{return Cyeq_False_Easting;}
57  double getFalseNorthing()const{return Cyeq_False_Northing;}
58 
63  void setDefaults();
64 
69  virtual bool saveState(ossimKeywordlist& kwl,
70  const char* prefix=0)const;
71 
76  virtual bool loadState(const ossimKeywordlist& kwl,
77  const char* prefix=0);
78 
79 private:
80 
81 
82 /* Ellipsoid Parameters, default to WGS 84 */
83  mutable double Cyeq_a; /* Semi-major axis of ellipsoid in meters */
84  mutable double Cyeq_f; /* Flattening of ellipsoid */
85  mutable double es2; /* Eccentricity (0.08181919084262188000) squared */
86  mutable double es; /* Sqrt(es2) */
87  mutable double es4; /* es2 * es2 */
88  mutable double es6; /* es4 * es2 */
89  mutable double k0;
90  mutable double Cyeq_a_k0; /* Cyeq_a * k0 */
91  mutable double two_k0; /* 2.0 * k0 */
92  mutable double c0; /* es2 / 3.0 + 31.0 * es4 / 180.0 + 517.0 * es6 / 5040.0 */
93  mutable double c1; /* 23.0 es4 / 360.0 + 251.0 * es6 / 3780.0 */
94  mutable double c2; /* 761.0 * es6 / 45360.0 */
95 
96 /* Cylindrical Equal Area projection Parameters */
97  mutable double Cyeq_Origin_Lat; /* Latitude of origin in radians */
98  mutable double Cyeq_Origin_Long; /* Longitude of origin in radians */
99  mutable double Cyeq_False_Northing; /* False northing in meters */
100  mutable double Cyeq_False_Easting; /* False easting in meters */
101 
102 /* Maximum variance for easting and northing values for WGS 84.
103  */
104  mutable double Cyeq_Max_Easting;
105  mutable double Cyeq_Min_Easting;
106  mutable double Cyeq_Delta_Northing;
107 
125  long Set_Cyl_Eq_Area_Parameters(double a,
126  double f,
127  double Origin_Latitude,
128  double Central_Meridian,
129  double False_Easting,
130  double False_Northing);
131 
132  void Get_Cyl_Eq_Area_Parameters(double *a,
148  double *f,
149  double *Origin_Latitude,
150  double *Central_Meridian,
151  double *False_Easting,
152  double *False_Northing)const;
153 
154 
155 
168  long Convert_Geodetic_To_Cyl_Eq_Area (double Latitude,
169  double Longitude,
170  double *Easting,
171  double *Northing)const;
172 
173 
186  long Convert_Cyl_Eq_Area_To_Geodetic(double Easting,
187  double Northing,
188  double *Latitude,
189  double *Longitude)const;
190 
194 TYPE_DATA
195 };
196 
197 #endif
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 ossimGpt inverse(const ossimDpt &projectedPoint) const =0
Will take a point in meters and convert it to ground.
#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 ossimObject * dup() const
virtual ossimDpt forward(const ossimGpt &worldPoint) const =0
All map projections will convert the world coordinate to an easting northing (Meters).