UNCLASSIFIED

GeographicTranslator
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Friends Macros
GEOREF.h
Go to the documentation of this file.
1 // CLASSIFICATION: UNCLASSIFIED
2 
3 #ifndef GEOREF_H
4 #define GEOREF_H
5 
6 /***************************************************************************/
7 /* RSC IDENTIFIER: GEOREF
8  *
9  * ABSTRACT
10  *
11  * This component provides conversions from Geodetic coordinates (latitude
12  * and longitude in radians) to a GEOREF coordinate string.
13  *
14  * ERROR HANDLING
15  *
16  * This component checks parameters for valid values. If an invalid value
17  * is found, the error code is combined with the current error code using
18  * the bitwise or. This combining allows multiple error codes to be
19  * returned. The possible error codes are:
20  *
21  * GEOREF_NO_ERROR : No errors occurred in function
22  * GEOREF_LAT_ERROR : Latitude outside of valid range
23  * (-90 to 90 degrees)
24  * GEOREF_LON_ERROR : Longitude outside of valid range
25  * (-180 to 360 degrees)
26  * GEOREF_STR_ERROR : A GEOREF string error: string too long,
27  * string too short, or string length
28  * not even.
29  * GEOREF_STR_LAT_ERROR : The latitude part of the GEOREF string
30  * (second or fourth character) is invalid.
31  * GEOREF_STR_LON_ERROR : The longitude part of the GEOREF string
32  * (first or third character) is invalid.
33  * GEOREF_STR_LAT_MIN_ERROR : The latitude minute part of the GEOREF
34  * string is greater than 60.
35  * GEOREF_STR_LON_MIN_ERROR : The longitude minute part of the GEOREF
36  * string is greater than 60.
37  * GEOREF_PRECISION_ERROR : The precision must be between 0 and 5
38  * inclusive.
39  *
40  *
41  * REUSE NOTES
42  *
43  * GEOREF is intended for reuse by any application that performs a
44  * conversion between Geodetic and GEOREF coordinates.
45  *
46  * REFERENCES
47  *
48  * Further information on GEOREF can be found in the Reuse Manual.
49  *
50  * GEOREF originated from : U.S. Army Topographic Engineering Center
51  * Geospatial Information Division
52  * 7701 Telegraph Road
53  * Alexandria, VA 22310-3864
54  *
55  * LICENSES
56  *
57  * None apply to this component.
58  *
59  * RESTRICTIONS
60  *
61  * GEOREF has no restrictions.
62  *
63  * ENVIRONMENT
64  *
65  * GEOREF was tested and certified in the following environments:
66  *
67  * 1. Solaris 2.5 with GCC version 2.8.1
68  * 2. Windows 95 with MS Visual C++ version 6
69  *
70  * MODIFICATIONS
71  *
72  * Date Description
73  * ---- -----------
74  * 02-20-97 Original Code
75  * 03-02-07 Original C++ Code
76  */
77 
78 
79 #include "CoordinateSystem.h"
80 
81 
82 namespace MSP
83 {
84  namespace CCS
85  {
86  class GEOREFCoordinates;
87  class GeodeticCoordinates;
88 
89 
90  /***************************************************************************/
91  /*
92  * DEFINES
93  */
94 
95  const long GEOREF_STR_LAT_MIN_ERROR = 0x0020;
96  const long GEOREF_STR_LON_MIN_ERROR = 0x0040;
97 
98 
99  class GEOREF : public CoordinateSystem
100  {
101  public:
102 
103  GEOREF();
104 
105 
106  GEOREF( const GEOREF &g );
107 
108 
109  ~GEOREF( void );
110 
111 
112  GEOREF& operator=( const GEOREF &g );
113 
114 
115  /*
116  * The function convertFromGeodetic converts Geodetic (latitude and longitude in radians)
117  * coordinates to a GEOREF coordinate string. Precision specifies the
118  * number of digits in the GEOREF string for latitude and longitude:
119  * 0 for nearest degree
120  * 1 for nearest ten minutes
121  * 2 for nearest minute
122  * 3 for nearest tenth of a minute
123  * 4 for nearest hundredth of a minute
124  * 5 for nearest thousandth of a minute
125  *
126  * longitude : Longitude in radians. (input)
127  * latitude : Latitude in radians. (input)
128  * precision : Precision specified by the user. (input)
129  * GEOREFString : GEOREF coordinate string. (output)
130  *
131  */
132 
133  MSP::CCS::GEOREFCoordinates* convertFromGeodetic( MSP::CCS::GeodeticCoordinates* geodeticCoordinates, long precision );
134 
135 
136  /*
137  * The function convertToGeodetic converts a GEOREF coordinate string to Geodetic (latitude
138  * and longitude in radians) coordinates.
139  *
140  * GEOREFString : GEOREF coordinate string. (input)
141  * longitude : Longitude in radians. (output)
142  * latitude : Latitude in radians. (output)
143  *
144  */
145 
147 
148  private:
149 
150  };
151  }
152 }
153 
154 #endif
155 
156 
157 // CLASSIFICATION: UNCLASSIFIED