OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimMillerProjection.h
Go to the documentation of this file.
1 //*******************************************************************
2 //
3 // License: See top level LICENSE.txt file.
4 //
5 // Author: Garrett Potts (gpotts@imagelinks.com)
6 //
7 // Description:
8 //
9 // Calls Geotrans Miller projection code.
10 //*******************************************************************
11 // $Id: ossimMillerProjection.h 17815 2010-08-03 13:23:14Z dburken $
12 
13 #ifndef ossimMillerProjection_HEADER
14 #define ossimMillerProjection_HEADER
15 
17 
19 {
20 public:
22  const ossimGpt& origin = ossimGpt());
23  ossimMillerProjection(const ossimEllipsoid& ellipsoid,
24  const ossimGpt& origin,
25  const double falseEasting,
26  const double falseNorthing);
27 
29 
30  virtual ossimObject *dup()const{return new ossimMillerProjection(*this);}
31 
32  virtual ossimGpt inverse(const ossimDpt &eastingNorthing)const;
33  virtual ossimDpt forward(const ossimGpt &latLon)const;
34  virtual void update();
35 
40  void setFalseEasting(double falseEasting);
41 
46  void setFalseNorthing(double falseNorthing);
47 
53  void setFalseEastingNorthing(double falseEasting, double falseNorthing);
54 
55  void setDefaults();
56 
57  void setCentralMeridian(double centralMeridian);
58 
59  double getFalseEasting()const{return Mill_False_Easting;}
60  double getFalseNorthing()const{return Mill_False_Northing;}
65  virtual bool saveState(ossimKeywordlist& kwl,
66  const char* prefix=0)const;
67 
72  virtual bool loadState(const ossimKeywordlist& kwl,
73  const char* prefix=0);
74 
75 private:
76 
77  //________________GEOTRANS STUFF___________________
78 
79  mutable double Mill_a; /* Semi-major axis of ellipsoid in meters */
80  mutable double Mill_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  mutable double Ra; /* Spherical Radius */
85 
86 /* Miller projection Parameters */
87  mutable double Mill_Origin_Long; /* Longitude of origin in radians */
88  mutable double Mill_False_Easting;
89  mutable double Mill_False_Northing;
90  mutable double Mill_Delta_Northing;
91  mutable double Mill_Max_Easting;
92  mutable double Mill_Min_Easting;
93 
109  long Set_Miller_Parameters(double a,
110  double f,
111  double Central_Meridian,
112  double False_Easting,
113  double False_Northing);
114 
115 
129  void Get_Miller_Parameters(double *a,
130  double *f,
131  double *Central_Meridian,
132  double *False_Easting,
133  double *False_Northing)const;
134 
135 
148  long Convert_Geodetic_To_Miller (double Latitude,
149  double Longitude,
150  double *Easting,
151  double *Northing)const;
152 
153 
166  long Convert_Miller_To_Geodetic(double Easting,
167  double Northing,
168  double *Latitude,
169  double *Longitude)const;
170 
171 TYPE_DATA
172 };
173 
174 #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 ossimObject * dup() const
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).