OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimUtmProjection.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 Utm projection code.
10 //*******************************************************************
11 // $Id: ossimUtmProjection.h 17815 2010-08-03 13:23:14Z dburken $
12 #ifndef ossimUtmProjection_HEADER
13 #define ossimUtmProjection_HEADER
15 
17 {
18 public:
20  const ossimGpt& origin = ossimGpt());
21 
22  ossimUtmProjection(const ossimEllipsoid& ellipsoid,
23  const ossimGpt& origin,
24  ossim_int32 zone,
25  char hemisphere);
28 
29  virtual ossimObject* dup()const;
30 
31  virtual ossimGpt inverse(const ossimDpt &eastingNorthing)const;
32  virtual ossimDpt forward(const ossimGpt &latLon)const;
33  virtual void update();
34 
41  virtual void setOrigin(const ossimGpt& origin);
42 
43  void setZone(const ossimGpt& ground);
44  void setZone(ossim_int32 zone);
45  void setHemisphere(const ossimGpt& ground);
46  void setHemisphere(char hemisphere);
47  static ossim_int32 computeZone(const ossimGpt& gpt);
48 
52  static double computeZoneMeridian(ossim_int32 zone);
53 
54  ossim_int32 getZone()const;
55 
56  char getHemisphere()const;
57 
62  virtual bool saveState(ossimKeywordlist& kwl,
63  const char* prefix=0)const;
64 
69  virtual bool loadState(const ossimKeywordlist& kwl,
70  const char* prefix=0);
71 
75  virtual std::ostream& print(std::ostream& out) const;
76 
80  virtual double getFalseEasting() const;
81 
85  virtual double getFalseNorthing() const;
86 
88  virtual bool operator==(const ossimProjection& projection) const;
89 
98  virtual ossim_uint32 getPcsCode() const;
99 
100 private:
101 
102  /*_____________GEOTRANS_______________*/
103 
122  double f,
123  double Origin_Latitude,
124  double Central_Meridian,
125  double False_Easting,
126  double False_Northing,
127  double Scale_Factor);
142  void Get_Transverse_Mercator_Parameters(double *a,
143  double *f,
144  double *Origin_Latitude,
145  double *Central_Meridian,
146  double *False_Easting,
147  double *False_Northing,
148  double *Scale_Factor)const;
149 
150 
165  double Longitude,
166  double *Easting,
167  double *Northing)const;
168 
169 
184  double Northing,
185  double *Latitude,
186  double *Longitude)const;
187 
188  double theTranMerc_a; /* Semi-major axis of ellipsoid i meters */
189  double theTranMerc_f; /* Flattening of ellipsoid */
190 
191  /* Eccentricity (0.08181919084262188000) squared */
193 
194  double theTranMerc_ebs; /* Second Eccentricity squared */
195 
196  /* Transverse_Mercator projection Parameters */
197 
198  double theTranMerc_Origin_Lat; /* Latitude of origin in radians */
199  double theTranMerc_Origin_Long; /* Longitude of origin in radians */
200  double theTranMerc_False_Northing; /* False northing in meters */
201  double theTranMerc_False_Easting; /* False easting in meters */
202  double theTranMerc_Scale_Factor; /* Scale factor */
203 
204  /* Isometeric to geodetic latitude parameters, default to WGS 84 */
210 
211  /* Maximum variance for easting and northing values for WGS 84. */
214 
219 
224 
225 TYPE_DATA
226 };
227 
228 #endif
virtual ossimObject * dup() const =0
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Method to the load (recreate) the state of an object from a keyword list.
long Set_Transverse_Mercator_Parameters(double a, double f, double Origin_Latitude, double Central_Meridian, double False_Easting, double False_Northing, double Scale_Factor)
#define OSSIMDLLEXPORT
virtual double getFalseNorthing() const
Represents serializable keyword/value map.
virtual ossim_uint32 getPcsCode() const
Returns the EPSG PCS code or 32767 if the projection is a custom (non-EPSG) projection.
virtual void setOrigin(const ossimGpt &origin)
Sets theOrigin to origin.
void Get_Transverse_Mercator_Parameters(double *a, double *f, double *Origin_Latitude, double *Central_Meridian, double *False_Easting, double *False_Northing, double *Scale_Factor)
virtual ossimGpt inverse(const ossimDpt &projectedPoint) const =0
Will take a point in meters and convert it to ground.
virtual bool operator==(const ossimProjection &projection) const
Compares this to arg projection and returns TRUE if the same.
#define TYPE_DATA
Definition: ossimRtti.h:339
unsigned int ossim_uint32
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Method to save the state of an object to a keyword list.
ossim_int32 theZone
zone can be from 1 through 60 (0 == NOT SET)
virtual ossimDpt forward(const ossimGpt &worldPoint) const =0
All map projections will convert the world coordinate to an easting northing (Meters).
virtual double getFalseEasting() const
long Convert_Transverse_Mercator_To_Geodetic(double Easting, double Northing, double *Latitude, double *Longitude)
char theHemisphere
can be N or S.
virtual std::ostream & print(std::ostream &out) const
Prints data members to stream.
long Convert_Geodetic_To_Transverse_Mercator(double Latitude, double Longitude, double *Easting, double *Northing)
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23
int ossim_int32