UNCLASSIFIED
GeographicTranslator
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Enumerations
Enumerator
Friends
Macros
master
geotrans3.7
CCS
src
dtcc
CoordinateSystems
neys
Neys.h
Go to the documentation of this file.
1
// CLASSIFICATION: UNCLASSIFIED
2
3
#ifndef Neys_H
4
#define Neys_H
5
6
/***************************************************************************/
7
/* RSC IDENTIFIER: NEYS
8
*
9
* ABSTRACT
10
*
11
* This component provides conversions between Geodetic coordinates
12
* (latitude and longitude in radians) and Ney's (Modified Lambert
13
* Conformal Conic) projection coordinates (easting and northing in meters).
14
*
15
* ERROR HANDLING
16
*
17
* This component checks parameters for valid values. If an invalid value
18
* is found the error code is combined with the current error code using
19
* the bitwise or. This combining allows multiple error codes to be
20
* returned. The possible error codes are:
21
*
22
* NEYS_NO_ERROR : No errors occurred in function
23
* NEYS_LAT_ERROR : Latitude outside of valid range
24
* (-90 to 90 degrees)
25
* NEYS_LON_ERROR : Longitude outside of valid range
26
* (-180 to 360 degrees)
27
* NEYS_EASTING_ERROR : Easting outside of valid range
28
* (depends on ellipsoid and projection
29
* parameters)
30
* NEYS_NORTHING_ERROR : Northing outside of valid range
31
* (depends on ellipsoid and projection
32
* parameters)
33
* NEYS_FIRST_STDP_ERROR : First standard parallel outside of valid
34
* range (71 or 74 degrees)
35
* NEYS_ORIGIN_LAT_ERROR : Origin latitude outside of valid range
36
* (-89 59 59.0 to 89 59 59.0 degrees)
37
* NEYS_CENT_MER_ERROR : Central meridian outside of valid range
38
* (-180 to 360 degrees)
39
* NEYS_A_ERROR : Semi-major axis less than or equal to zero
40
* NEYS_INV_F_ERROR : Inverse flattening outside of valid range
41
* (250 to 350)
42
*
43
*
44
* REUSE NOTES
45
*
46
* NEYS is intended for reuse by any application that performs a Ney's (Modified
47
* Lambert Conformal Conic) projection or its inverse.
48
*
49
* REFERENCES
50
*
51
* Further information on NEYS can be found in the Reuse Manual.
52
*
53
* NEYS originated from:
54
* U.S. Army Topographic Engineering Center
55
* Geospatial Information Division
56
* 7701 Telegraph Road
57
* Alexandria, VA 22310-3864
58
*
59
* LICENSES
60
*
61
* None apply to this component.
62
*
63
* RESTRICTIONS
64
*
65
* NEYS has no restrictions.
66
*
67
* ENVIRONMENT
68
*
69
* NEYS was tested and certified in the following environments:
70
*
71
* 1. Solaris 2.5 with GCC, version 2.8.1
72
* 2. Windows 95 with MS Visual C++, version 6
73
*
74
* MODIFICATIONS
75
*
76
* Date Description
77
* ---- -----------
78
* 8-4-00 Original Code
79
* 3-2-07 Original C++ Code
80
*
81
*
82
*
83
*/
84
85
86
#include "
CoordinateSystem.h
"
87
88
89
namespace
MSP
90
{
91
namespace
CCS
92
{
93
class
NeysParameters;
94
class
LambertConformalConic;
95
class
MapProjectionCoordinates;
96
class
GeodeticCoordinates;
97
98
99
/***************************************************************************/
100
/*
101
* DEFINES
102
*/
103
104
class
Neys
:
public
CoordinateSystem
105
{
106
public
:
107
108
/*
109
* The constructor receives the ellipsoid parameters and
110
* Ney's (Modified Lambert Conformal Conic) projection parameters as inputs, and sets the
111
* corresponding state variables. If any errors occur, an exception is thrown with a description
112
* of the error.
113
*
114
* ellipsoidSemiMajorAxis : Semi-major axis of ellipsoid, in meters (input)
115
* ellipsoidFlattening : Flattening of ellipsoid (input)
116
* centralMeridian : Longitude of origin, in radians (input)
117
* originLatitude : Latitude of origin, in radians (input)
118
* standardParallel : First standard parallel, in radians (input)
119
* falseEasting : False easting, in meters (input)
120
* falseNorthing : False northing, in meters (input)
121
*/
122
123
Neys
(
double
ellipsoidSemiMajorAxis,
double
ellipsoidFlattening,
double
centralMeridian,
double
originLatitude,
double
standardParallel,
double
falseEasting,
double
falseNorthing );
124
125
126
Neys
(
const
Neys
&n );
127
128
129
~Neys
(
void
);
130
131
132
Neys
&
operator=
(
const
Neys
&n );
133
134
135
/*
136
* The function getParameters returns the current ellipsoid
137
* parameters and Ney's (Modified Lambert Conformal Conic) projection parameters.
138
*
139
* ellipsoidSemiMajorAxis : Semi-major axis of ellipsoid, in meters (output)
140
* ellipsoidFlattening : Flattening of ellipsoid (output)
141
* centralMeridian : Longitude of origin, in radians (output)
142
* originLatitude : Latitude of origin, in radians (output)
143
* standardParallel : First standard parallel, in radians (output)
144
* falseEasting : False easting, in meters (output)
145
* falseNorthing : False northing, in meters (output)
146
*/
147
148
NeysParameters
*
getParameters
()
const
;
149
150
151
/*
152
* The function convertFromGeodetic converts Geodetic (latitude and
153
* longitude) coordinates to Ney's (Modified Lambert Conformal Conic) projection
154
* (easting and northing) coordinates, according to the current ellipsoid and
155
* Ney's (Modified Lambert Conformal Conic) projection parameters. If any errors occur, an exception
156
* is thrown with a description of the error.
157
*
158
* longitude : Longitude, in radians (input)
159
* latitude : Latitude, in radians (input)
160
* easting : Easting (X), in meters (output)
161
* northing : Northing (Y), in meters (output)
162
*/
163
164
MSP::CCS::MapProjectionCoordinates
*
convertFromGeodetic
(
MSP::CCS::GeodeticCoordinates
* geodeticCoordinates );
165
166
167
/*
168
* The function convertToGeodetic converts Ney's (Modified Lambert Conformal
169
* Conic) projection (easting and northing) coordinates to Geodetic (latitude)
170
* and longitude) coordinates, according to the current ellipsoid and Ney's
171
* (Modified Lambert Conformal Conic) projection parameters. If any errors occur,
172
* an exception is thrown with a description f the error.
173
*
174
* easting : Easting (X), in meters (input)
175
* northing : Northing (Y), in meters (input)
176
* longitude : Longitude, in radians (output)
177
* latitude : Latitude, in radians (output)
178
*/
179
180
MSP::CCS::GeodeticCoordinates
*
convertToGeodetic
(
MSP::CCS::MapProjectionCoordinates
* mapProjectionCoordinates );
181
182
private
:
183
184
LambertConformalConic
* lambertConformalConic2;
185
186
/* Ney's projection Parameters */
187
double
Neys_Std_Parallel_1;
/* Lower std. parallel, in radians */
188
double
Neys_Std_Parallel_2;
/* Upper std. parallel, in radians */
189
double
Neys_Origin_Lat;
/* Latitude of origin, in radians */
190
double
Neys_Origin_Long;
/* Longitude of origin, in radians */
191
double
Neys_False_Northing;
/* False northing, in meters */
192
double
Neys_False_Easting;
/* False easting, in meters */
193
194
/* Maximum variance for easting and northing values for WGS 84. */
195
double
Neys_Delta_Easting;
196
double
Neys_Delta_Northing;
197
};
198
}
199
}
200
201
#endif
202
203
204
// CLASSIFICATION: UNCLASSIFIED
Generated on Tue Feb 16 2016 14:54:02 for GeographicTranslator by doxygen 1.8.2