OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimEckert4Projection.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 Eckert4 projection code.
10 //*******************************************************************
11 // $Id: ossimEckert4Projection.h 17815 2010-08-03 13:23:14Z dburken $
12 #ifndef ossimEcker4Projection_HEADER
13 #define ossimEcker4Projection_HEADER
15 
17 {
18 public:
19 
21  const ossimGpt& origin = ossimGpt());
22  ossimEckert4Projection(const ossimEllipsoid& ellipsoid,
23  const ossimGpt& origin,
24  double falseEasting,
25  double falseNorthing);
27  virtual ossimObject *dup()const
28  {
29  return new ossimEckert4Projection(*this);
30  }
31 
32  virtual ossimDpt forward(const ossimGpt &worldPoint) const;
33  virtual ossimGpt inverse(const ossimDpt &projectedPoint) const;
34  virtual void update();
39  void setFalseEasting(double falseEasting);
40 
45  void setFalseNorthing(double falseNorthing);
46 
52  void setFalseEastingNorthing(double falseEasting, double falseNorthing);
53 
54  double getFalseEasting()const{return Eck4_False_Easting;}
55  double getFalseNorthing()const{return Eck4_False_Northing;}
56 
61  void setDefaults();
62 
67  virtual bool saveState(ossimKeywordlist& kwl,
68  const char* prefix=0)const;
69 
74  virtual bool loadState(const ossimKeywordlist& kwl,
75  const char* prefix=0);
76 
77 private:
78 /* Ellipsoid Parameters, default to WGS 84 */
79  mutable double Eck4_a; /* Semi-major axis of ellipsoid in meters */
80  mutable double Eck4_f; /* Flattening of ellipsoid */
81  mutable double es2; /* Eccentricity (0.08181919084262188000) squared */
82  mutable double es4; /* es2 * es2 */
83  mutable double es6; /* es4 * es2 */
84 
85  mutable double Ra0; /* 0.4222382 * Sperical Radius (6371007.1810824) */
86  mutable double Ra1; /* 1.3265004 * Sperical Radius (6371007.1810824) */
87 
88 /* Eckert4 projection Parameters */
89  mutable double Eck4_Origin_Long; /* Longitude of origin in radians */
90  mutable double Eck4_False_Easting;
91  mutable double Eck4_False_Northing;
92  mutable double Eck4_Delta_Northing;
93  mutable double Eck4_Max_Easting;
94  mutable double Eck4_Min_Easting;
95 
111  long Set_Eckert4_Parameters(double a,
112  double f,
113  double Central_Meridian,
114  double False_Easting,
115  double False_Northing);
116 
117 
131  void Get_Eckert4_Parameters(double *a,
132  double *f,
133  double *Central_Meridian,
134  double *False_Easting,
135  double *False_Northing)const;
136 
137 
150  long Convert_Geodetic_To_Eckert4 (double Latitude,
151  double Longitude,
152  double *Easting,
153  double *Northing)const;
154 
155 
168  long Convert_Eckert4_To_Geodetic(double Easting,
169  double Northing,
170  double *Latitude,
171  double *Longitude)const;
172 
176 TYPE_DATA
177 };
178 
179 #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 ossimObject * dup() const
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 ossimDpt forward(const ossimGpt &worldPoint) const =0
All map projections will convert the world coordinate to an easting northing (Meters).