OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimPolyconicProjection.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 Polyconic projection code.
10 //*******************************************************************
11 // $Id: ossimPolyconicProjection.h 17815 2010-08-03 13:23:14Z dburken $
12 
13 #ifndef ossimPolyconicProjection_HEADER
14 #define ossimPolyconicProjection_HEADER
15 
17 
19 {
20 public:
22  const ossimGpt& origin = ossimGpt());
24  const ossimGpt& origin,
25  const double falseEasting,
26  const double falseNorthing);
28  virtual ossimObject *dup()const
29  {
30  return new ossimPolyconicProjection(*this);
31  }
32 
33  virtual ossimGpt inverse(const ossimDpt &eastingNorthing)const;
34  virtual ossimDpt forward(const ossimGpt &latLon)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  void setDefaults();
57 
58  double getFalseEasting()const{return Poly_False_Easting;}
59  double getFalseNorthing()const{return Poly_False_Northing;}
60 
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 private:
75 
76  mutable double Poly_a; /* Semi-major axis of ellipsoid in meters */
77  mutable double Poly_f; /* Flattening of ellipsoid */
78  mutable double es2; /* Eccentricity (0.08181919084262188000) squared */
79  mutable double es4; /* es2 * es2 */
80  mutable double es6; /* es4 * es2 */
81  mutable double M0;
82  mutable double c0; /* 1 - es2 / 4.0 - 3.0 * es4 / 64.0 - 5.0 * es6 / 256.0 */
83  mutable double c1; /* 3.0 * es2 / 8.0 + 3.0 * es4 / 32.0 + 45.0 * es6 / 1024.0 */
84  mutable double c2; /* 15.0 * es4 / 256.0 + 45.0 * es6 / 1024.0 */
85  mutable double c3; /* 35.0 * es6 / 3072.0 */
86 
87 /* Polyconic projection Parameters */
88  mutable double Poly_Origin_Lat; /* Latitude of origin in radians */
89  mutable double Poly_Origin_Long; /* Longitude of origin in radians */
90  mutable double Poly_False_Northing; /* False northing in meters */
91  mutable double Poly_False_Easting; /* False easting in meters */
92 
93 /* Maximum variance for easting and northing values for WGS 84.
94  */
95  mutable double Poly_Max_Easting;
96  mutable double Poly_Max_Northing;
97  mutable double Poly_Min_Easting;
98  mutable double Poly_Min_Northing;
99 
118  long Set_Polyconic_Parameters(double a,
119  double f,
120  double Origin_Latitude,
121  double Central_Meridian,
122  double False_Easting,
123  double False_Northing);
124 
125 
126 
142  void Get_Polyconic_Parameters(double *a,
143  double *f,
144  double *Origin_Latitude,
145  double *Central_Meridian,
146  double *False_Easting,
147  double *False_Northing)const;
148 
149 
150 
163  long Convert_Geodetic_To_Polyconic (double Latitude,
164  double Longitude,
165  double *Easting,
166  double *Northing)const;
167 
168 
181  long Convert_Polyconic_To_Geodetic(double Easting,
182  double Northing,
183  double *Latitude,
184  double *Longitude)const;
185 
186 TYPE_DATA
187 };
188 
189 #endif
virtual ossimObject * dup() const
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 ossimDpt forward(const ossimGpt &worldPoint) const =0
All map projections will convert the world coordinate to an easting northing (Meters).