OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimPolarStereoProjection.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 Polar Stereographic projection code.
10 //*******************************************************************
11 // $Id: ossimPolarStereoProjection.h 17815 2010-08-03 13:23:14Z dburken $
12 
13 #ifndef ossimPolarStereoProjection_HEADER
14 #define ossimPolarStereoProjection_HEADER
15 
17 
19 {
20 public:
22  const ossimGpt& origin = ossimGpt());
24  const ossimGpt& origin,
25  const double falseEasting,
26  const double falseNorthing);
28 
29  virtual ossimObject *dup()const{return new ossimPolarStereoProjection(*this);}
30 
31  virtual ossimGpt inverse(const ossimDpt &eastingNorthing)const;
32  virtual ossimDpt forward(const ossimGpt &latLon)const;
33  virtual void update();
34 
39  void setFalseEasting(double falseEasting);
40 
45  void setFalseNorthing(double falseNorthing);
46 
52  void setFalseEastingNorthing(double falseEasting, double falseNorthing);
53 
54  void setDefaults();
55 
56  double getFalseEasting()const{return Polar_False_Easting;}
57  double getFalseNorthing()const{return Polar_False_Northing;}
58 
63  virtual bool saveState(ossimKeywordlist& kwl,
64  const char* prefix=0)const;
65 
70  virtual bool loadState(const ossimKeywordlist& kwl,
71  const char* prefix=0);
72 
73 private:
74 
75  mutable double Polar_a; /* Semi-major axis of ellipsoid in meters */
76  mutable double Polar_f; /* Flattening of ellipsoid */
77  mutable double es; /* Eccentricity of ellipsoid */
78  mutable double es_OVER_2; /* es / 2.0 */
79  mutable double Southern_Hemisphere; /* Flag variable */
80  mutable double mc;
81  mutable double tc;
82  mutable double e4;
83  mutable double Polar_a_mc; /* Polar_a * mc */
84  mutable double two_Polar_a; /* 2.0 * Polar_a */
85 
86 /* Polar Stereographic projection Parameters */
87  mutable double Polar_Origin_Lat; /* Latitude of origin in radians */
88  mutable double Polar_Origin_Long; /* Longitude of origin in radians */
89  mutable double Polar_False_Easting; /* False easting in meters */
90  mutable double Polar_False_Northing; /* False northing in meters */
91 
92 /* Maximum variance for easting and northing values for WGS 84. */
93  mutable double Polar_Delta_Easting;
94  mutable double Polar_Delta_Northing;
95 
109  long Set_Polar_Stereographic_Parameters (double a,
110  double f,
111  double Latitude_of_True_Scale,
112  double Longitude_Down_from_Pole,
113  double False_Easting,
114  double False_Northing);
115 
116 
128  void Get_Polar_Stereographic_Parameters (double *a,
129  double *f,
130  double *Latitude_of_True_Scale,
131  double *Longitude_Down_from_Pole,
132  double *False_Easting,
133  double *False_Northing)const;
134 
135 
148  long Convert_Geodetic_To_Polar_Stereographic (double Latitude,
149  double Longitude,
150  double *Easting,
151  double *Northing)const;
152 
153 
154 
169  long Convert_Polar_Stereographic_To_Geodetic (double Easting,
170  double Northing,
171  double *Latitude,
172  double *Longitude)const;
173 
174 
175 TYPE_DATA
176 };
177 
178 #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
virtual ossimObject * dup() const
Represents serializable keyword/value map.
long Set_Polar_Stereographic_Parameters(double a, double f, double Latitude_of_True_Scale, double Longitude_Down_from_Pole, double False_Easting, double False_Northing)
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).
long Convert_Geodetic_To_Polar_Stereographic(double Latitude, double Longitude, double *Easting, double *Northing)
void Get_Polar_Stereographic_Parameters(double *a, double *f, double *Latitude_of_True_Scale, double *Longitude_Down_from_Pole, double *False_Easting, double *False_Northing)
long Convert_Polar_Stereographic_To_Geodetic(double Easting, double Northing, double *Latitude, double *Longitude)