OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimAzimEquDistProjection.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 Equidistant Cylinder projection code.
10 //*******************************************************************
11 // $Id: ossimAzimEquDistProjection.h 17815 2010-08-03 13:23:14Z dburken $
12 
13 #ifndef ossimAzimEquDistProjection_HEADER
14 #define ossimAzimEquDistProjection_HEADER
15 
17 
19 {
20 public:
22  const ossimGpt& origin = ossimGpt());
23 
25  const ossimGpt& origin,
26  double falseEasting,
27  double falseNorthing);
28 
30  {
31  *this = rhs;
32  }
33  virtual ossimObject *dup()const
34  {
35  return new ossimAzimEquDistProjection(*this);
36  }
37 
38  virtual ossimGpt inverse(const ossimDpt &eastingNorthing)const;
39  virtual ossimDpt forward(const ossimGpt &latLon)const;
40  virtual void update();
41 
42  double getFalseEasting()const{return Azeq_False_Easting;}
43  double getFalseNorthing()const{return Azeq_False_Northing;}
44 
49  void setFalseEasting(double falseEasting);
50 
55  void setFalseNorthing(double falseNorthing);
56 
62  void setFalseEastingNorthing(double falseEasting, double falseNorthing);
63 
68  void setDefaults();
69 
74  virtual bool saveState(ossimKeywordlist& kwl,
75  const char* prefix=0)const;
76 
81  virtual bool loadState(const ossimKeywordlist& kwl,
82  const char* prefix=0);
83 
84 protected:
86 
87  mutable double abs_Azeq_Origin_Lat;
88  mutable double Azeq_a; /* Semi-major axis of ellipsoid in meters */
89  mutable double Azeq_f; /* Flattening of ellipsoid */
90  mutable double Ra; /* Spherical Radius */
91  mutable double Sin_Azeq_Origin_Lat;
92  mutable double Cos_Azeq_Origin_Lat;
93  mutable double Azeq_Origin_Lat; /* Latitude of origin in radians */
94  mutable double Azeq_Origin_Long; /* Longitude of origin in radians */
95  mutable double Azeq_False_Northing; /* False northing in meters */
96  mutable double Azeq_False_Easting; /* False easting in meters */
97 
98  mutable double Azeq_Delta_Northing;
99  mutable double Azeq_Delta_Easting;
117  long Set_Azimuthal_Equidistant_Parameters(double a,
118  double f,
119  double Origin_Latitude,
120  double Central_Meridian,
121  double False_Easting,
122  double False_Northing);
123 
139  void Get_Azimuthal_Equidistant_Parameters(double *a,
140  double *f,
141  double *Origin_Latitude,
142  double *Central_Meridian,
143  double *False_Easting,
144  double *False_Northing)const;
145 
146 
159  long Convert_Geodetic_To_Azimuthal_Equidistant (double Latitude,
160  double Longitude,
161  double *Easting,
162  double *Northing)const;
163 
176  long Convert_Azimuthal_Equidistant_To_Geodetic(double Easting,
177  double Northing,
178  double *Latitude,
179  double *Longitude)const;
180 
181 
182 TYPE_DATA
183 };
184 
185 #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.
ossimAzimEquDistProjection(const ossimAzimEquDistProjection &rhs)
#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).
virtual ossimObject * dup() const