OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimBngProjection.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 //*******************************************************************
8 // $Id: ossimBngProjection.h 9968 2006-11-29 14:01:53Z gpotts $
10 
12 {
13 public:
15 
16  virtual ossimObject* dup()const
17  {
18  return new ossimBngProjection(*this);
19  }
20 
21  virtual ossimGpt inverse(const ossimDpt &eastingNorthing)const;
22  virtual ossimDpt forward(const ossimGpt &latLon)const;
23  virtual void update();
28  virtual bool saveState(ossimKeywordlist& kwl,
29  const char* prefix=0)const;
30 
35  virtual bool loadState(const ossimKeywordlist& kwl,
36  const char* prefix=0);
37 
38 protected:
39 
40 /* Ellipsoid Parameters, must be Airy */
41  double BNG_a; /* Semi-major axis of ellipsoid, in meters */
42  double BNG_f; /* Flattening of ellipsoid */
43 
44 /* BNG projection Parameters */
45  double BNG_Origin_Lat; /* Latitude of origin, in radians */
46  double BNG_Origin_Long; /* Longitude of origin, in radians */
47  double BNG_False_Northing; /* False northing, in meters */
48  double BNG_False_Easting; /* False easting, in meters */
49  double BNG_Scale_Factor; /* Scale factor */
50  mutable long string_Broken;
51 
52  long Find_Index (char letter,
53  const char* letter_Array,
54  long *index)const;
55 
56  long Round_BNG (double value)const;
57 
58  long Make_BNG_String (char ltrnum[4],
59  long Easting,
60  long Northing,
61  char* BNG,
62  long Precision)const;
63 
64  long Break_BNG_String (char* BNG,
65  char Letters[3],
66  double* Easting,
67  double* Northing,
68  long* Precision)const;
69 
70  long Check_Out_Of_Area(char BNG500,
71  char BNG100)const;
72 
73  long Set_BNG_Parameters(char *Ellipsoid_Code);
74  void Get_BNG_Parameters(char *Ellipsoid_Code);
75 
88  long Convert_Geodetic_To_BNG (double Latitude,
89  double Longitude,
90  long Precision,
91  char* BNG)const;
92 
93 
94 
106  long Convert_BNG_To_Geodetic (char *BNG,
107  double *Latitude,
108  double *Longitude)const;
109 
110 
122  long Convert_Transverse_Mercator_To_BNG(double Easting,
123  double Northing,
124  long Precision,
125  char *BNG)const;
126 
127 
128 
140  long Convert_BNG_To_Transverse_Mercator(char *BNG,
141  double *Easting,
142  double *Northing)const;
143 
144 TYPE_DATA
145 };
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 ossimObject * dup() const
virtual ossimDpt forward(const ossimGpt &worldPoint) const =0
All map projections will convert the world coordinate to an easting northing (Meters).