/usr/include/ossim/projection/ossimMgrs.h is in libossim-dev 2.2.2-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 | #ifndef MGRS_H
#define MGRS_H 1
/***************************************************************************/
/* RSC IDENTIFIER: MGRS
*
* ABSTRACT
*
* This component converts between geodetic coordinates (latitude and
* longitude) and Military Grid Reference System (MGRS) coordinates.
*
* ERROR HANDLING
*
* This component checks parameters for valid values. If an invalid value
* is found, the error code is combined with the current error code using
* the bitwise or. This combining allows multiple error codes to be
* returned. The possible error codes are:
*
* MGRS_NO_ERROR : No errors occurred in function
* MGRS_LAT_ERROR : Latitude outside of valid range
* (-90 to 90 degrees)
* MGRS_LON_ERROR : Longitude outside of valid range
* (-180 to 360 degrees)
* MGRS_STR_ERROR : An MGRS string error: string too long,
* too short, or badly formed
* MGRS_PRECISION_ERROR : The precision must be between 0 and 5
* inclusive.
* MGRS_A_ERROR : Semi-major axis less than or equal to zero
* MGRS_INV_F_ERROR : Inverse flattening outside of valid range
* (250 to 350)
* MGRS_EASTING_ERROR : Easting outside of valid range
* (100,000 to 900,000 meters for UTM)
* (0 to 4,000,000 meters for UPS)
* MGRS_NORTHING_ERROR : Northing outside of valid range
* (0 to 10,000,000 meters for UTM)
* (0 to 4,000,000 meters for UPS)
* MGRS_ZONE_ERROR : Zone outside of valid range (1 to 60)
* MGRS_HEMISPHERE_ERROR : Invalid hemisphere ('N' or 'S')
*
* REUSE NOTES
*
* MGRS is intended for reuse by any application that does conversions
* between geodetic coordinates and MGRS coordinates.
*
* REFERENCES
*
* Further information on MGRS can be found in the Reuse Manual.
*
* MGRS originated from : U.S. Army Topographic Engineering Center
* Geospatial Information Division
* 7701 Telegraph Road
* Alexandria, VA 22310-3864
*
* LICENSES
*
* None apply to this component.
*
* RESTRICTIONS
*
*
* ENVIRONMENT
*
* MGRS was tested and certified in the following environments:
*
* 1. Solaris 2.5 with GCC version 2.8.1
* 2. Windows 95 with MS Visual C++ version 6
*
* MODIFICATIONS
*
* Date Description
* ---- -----------
* 16-11-94 Original Code
* 15-09-99 Reengineered upper layers
*
*/
#include <ossim/base/ossimConstants.h> /* for OSSIM_DLL */
/***************************************************************************/
/*
* DEFINES
*/
#define OSSIM_MGRS_NO_ERROR 0x0000
#define OSSIM_MGRS_LAT_ERROR 0x0001
#define OSSIM_MGRS_LON_ERROR 0x0002
#define OSSIM_MGRS_STRING_ERROR 0x0004
#define OSSIM_MGRS_PRECISION_ERROR 0x0008
#define OSSIM_MGRS_A_ERROR 0x0010
#define OSSIM_MGRS_INV_F_ERROR 0x0020
#define OSSIM_MGRS_EASTING_ERROR 0x0040
#define OSSIM_MGRS_NORTHING_ERROR 0x0080
#define OSSIM_MGRS_ZONE_ERROR 0x0100
#define OSSIM_MGRS_HEMISPHERE_ERROR 0x0200
/***************************************************************************/
/*
* FUNCTION PROTOTYPES
*/
/* ensure proper linkage to c++ programs */
#ifdef __cplusplus
extern "C" {
#endif
OSSIM_DLL long Set_OSSIM_MGRS_Parameters(double a,
double f,
const char* Ellipsoid_Code);
/*
* The function Set_MGRS_Parameters receives the ellipsoid parameters and sets
* the corresponding state variables. If any errors occur, the error code(s)
* are returned by the function, otherwise MGRS_NO_ERROR is returned.
*
* a : Semi-major axis of ellipsoid in meters (input)
* f : Flattening of ellipsoid (input)
* Ellipsoid_Code : 2-letter code for ellipsoid (input)
*/
OSSIM_DLL void Get_OSSIM_MGRS_Parameters(double *a,
double *f,
char *Ellipsoid_Code);
/*
* The function Get_MGRS_Parameters returns the current ellipsoid
* parameters.
*
* a : Semi-major axis of ellipsoid, in meters (output)
* f : Flattening of ellipsoid (output)
* Ellipsoid_Code : 2-letter code for ellipsoid (output)
*/
OSSIM_DLL long Convert_Geodetic_To_OSSIM_MGRS (double Latitude,
double Longitude,
long Precision,
char *MGRS);
/*
* The function Convert_Geodetic_To_MGRS converts geodetic (latitude and
* longitude) coordinates to an MGRS coordinate string, according to the
* current ellipsoid parameters. If any errors occur, the error code(s)
* are returned by the function, otherwise MGRS_NO_ERROR is returned.
*
* Latitude : Latitude in radians (input)
* Longitude : Longitude in radians (input)
* Precision : Precision level of MGRS string (input)
* MGRS : MGRS coordinate string (output)
*
*/
OSSIM_DLL long Convert_OSSIM_MGRS_To_Geodetic (const char *MGRS,
double *Latitude,
double *Longitude);
/*
* This function converts an MGRS coordinate string to Geodetic (latitude
* and longitude in radians) coordinates. If any errors occur, the error
* code(s) are returned by the function, otherwise MGRS_NO_ERROR is returned.
*
* MGRS : MGRS coordinate string (input)
* Latitude : Latitude in radians (output)
* Longitude : Longitude in radians (output)
*
*/
OSSIM_DLL long Convert_UTM_To_OSSIM_MGRS (long Zone,
char Hemisphere,
double Easting,
double Northing,
long Precision,
char *MGRS);
/*
* The function Convert_UTM_To_MGRS converts UTM (zone, easting, and
* northing) coordinates to an MGRS coordinate string, according to the
* current ellipsoid parameters. If any errors occur, the error code(s)
* are returned by the function, otherwise MGRS_NO_ERROR is returned.
*
* Zone : UTM zone (input)
* Hemisphere : North or South hemisphere (input)
* Easting : Easting (X) in meters (input)
* Northing : Northing (Y) in meters (input)
* Precision : Precision level of MGRS string (input)
* MGRS : MGRS coordinate string (output)
*/
OSSIM_DLL long Convert_OSSIM_MGRS_To_UTM (const char *MGRS,
long *Zone,
char *Hemisphere,
double *Easting,
double *Northing);
/*
* The function Convert_MGRS_To_UTM converts an MGRS coordinate string
* to UTM projection (zone, hemisphere, easting and northing) coordinates
* according to the current ellipsoid parameters. If any errors occur,
* the error code(s) are returned by the function, otherwise UTM_NO_ERROR
* is returned.
*
* MGRS : MGRS coordinate string (input)
* Zone : UTM zone (output)
* Hemisphere : North or South hemisphere (output)
* Easting : Easting (X) in meters (output)
* Northing : Northing (Y) in meters (output)
*/
OSSIM_DLL long Convert_UPS_To_OSSIM_MGRS ( char Hemisphere,
double Easting,
double Northing,
long Precision,
char *MGRS);
/*
* The function Convert_UPS_To_MGRS converts UPS (hemisphere, easting,
* and northing) coordinates to an MGRS coordinate string according to
* the current ellipsoid parameters. If any errors occur, the error
* code(s) are returned by the function, otherwise UPS_NO_ERROR is
* returned.
*
* Hemisphere : Hemisphere either 'N' or 'S' (input)
* Easting : Easting/X in meters (input)
* Northing : Northing/Y in meters (input)
* Precision : Precision level of MGRS string (input)
* MGRS : MGRS coordinate string (output)
*/
OSSIM_DLL long Convert_OSSIM_MGRS_To_UPS ( const char *MGRS,
char *Hemisphere,
double *Easting,
double *Northing);
/*
* The function Convert_MGRS_To_UPS converts an MGRS coordinate string
* to UPS (hemisphere, easting, and northing) coordinates, according
* to the current ellipsoid parameters. If any errors occur, the error
* code(s) are returned by the function, otherwide UPS_NO_ERROR is returned.
*
* MGRS : MGRS coordinate string (input)
* Hemisphere : Hemisphere either 'N' or 'S' (output)
* Easting : Easting/X in meters (output)
* Northing : Northing/Y in meters (output)
*/
#ifdef __cplusplus
}
#endif
#endif /* MGRS_H */
|