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
mollweid
Mollweide.h
Go to the documentation of this file.
1
// CLASSIFICATION: UNCLASSIFIED
2
3
#ifndef Mollweide_H
4
#define Mollweide_H
5
6
/***************************************************************************/
7
/* RSC IDENTIFIER: MOLLWEIDE
8
*
9
* ABSTRACT
10
*
11
* This component provides conversions between Geodetic coordinates
12
* (latitude and longitude in radians) and Mollweide projection coordinates
13
* (easting and northing in meters). The Mollweide Pseudocylindrical
14
* projection employs a spherical Earth model. The Spherical Radius
15
* used is the the radius of the sphere having the same area as the
16
* ellipsoid.
17
*
18
* ERROR HANDLING
19
*
20
* This component checks parameters for valid values. If an invalid value
21
* is found, the error code is combined with the current error code using
22
* the bitwise or. This combining allows multiple error codes to be
23
* returned. The possible error codes are:
24
*
25
* MOLL_NO_ERROR : No errors occurred in function
26
* MOLL_LAT_ERROR : Latitude outside of valid range
27
* (-90 to 90 degrees)
28
* MOLL_LON_ERROR : Longitude outside of valid range
29
* (-180 to 360 degrees)
30
* MOLL_EASTING_ERROR : Easting outside of valid range
31
* (False_Easting +/- ~18,000,000 m,
32
* depending on ellipsoid parameters)
33
* MOLL_NORTHING_ERROR : Northing outside of valid range
34
* (False_Northing +/- ~9,000,000 m,
35
* depending on ellipsoid parameters)
36
* MOLL_ORIGIN_LON_ERROR : Origin longitude outside of valid range
37
* (-180 to 360 degrees)
38
* MOLL_A_ERROR : Semi-major axis less than or equal to zero
39
* MOLL_INV_F_ERROR : Inverse flattening outside of valid range
40
* (250 to 350)
41
*
42
* REUSE NOTES
43
*
44
* MOLLWEID is intended for reuse by any application that performs a
45
* Mollweide projection or its inverse.
46
*
47
* REFERENCES
48
*
49
* Further information on MOLLWEID can be found in the Reuse Manual.
50
*
51
* MOLLWEID originated from : U.S. Army Topographic Engineering Center
52
* Geospatial Information Division
53
* 7701 Telegraph Road
54
* Alexandria, VA 22310-3864
55
*
56
* LICENSES
57
*
58
* None apply to this component.
59
*
60
* RESTRICTIONS
61
*
62
* MOLLWEID has no restrictions.
63
*
64
* ENVIRONMENT
65
*
66
* MOLLWEID was tested and certified in the following environments:
67
*
68
* 1. Solaris 2.5 with GCC 2.8.1
69
* 2. Windows 95 with MS Visual C++ 6
70
*
71
* MODIFICATIONS
72
*
73
* Date Description
74
* ---- -----------
75
* 04-16-99 Original Code
76
* 03-05-07 Original C++ Code
77
*
78
*/
79
80
81
#include "
CoordinateSystem.h
"
82
83
84
namespace
MSP
85
{
86
namespace
CCS
87
{
88
class
MapProjection3Parameters;
89
class
MapProjectionCoordinates;
90
class
GeodeticCoordinates;
91
92
93
/***************************************************************************/
94
/*
95
* DEFINES
96
*/
97
98
class
Mollweide
:
public
CoordinateSystem
99
{
100
public
:
101
102
/*
103
* The constructor receives the ellipsoid parameters and
104
* Mollweide projcetion parameters as inputs, and sets the corresponding state
105
* variables. If any errors occur, an exception is thrown with a description
106
* of the error.
107
*
108
* ellipsoidSemiMajorAxis : Semi-major axis of ellipsoid, in meters (input)
109
* ellipsoidFlattening : Flattening of ellipsoid (input)
110
* centralMeridian : Longitude in radians at the center of (input)
111
* the projection
112
* falseEasting : A coordinate value in meters assigned to the
113
* central meridian of the projection. (input)
114
* falseNorthing : A coordinate value in meters assigned to the
115
* origin latitude of the projection (input)
116
*/
117
118
Mollweide
(
double
ellipsoidSemiMajorAxis,
double
ellipsoidFlattening,
double
centralMeridian,
double
falseEasting,
double
falseNorthing );
119
120
121
Mollweide
(
const
Mollweide
&m );
122
123
124
~Mollweide
(
void
);
125
126
127
Mollweide
&
operator=
(
const
Mollweide
&m );
128
129
130
/*
131
* The function getParameters returns the current ellipsoid
132
* parameters and Mollweide projection parameters.
133
*
134
* ellipsoidSemiMajorAxis : Semi-major axis of ellipsoid, in meters (output)
135
* ellipsoidFlattening : Flattening of ellipsoid (output)
136
* centralMeridian : Longitude in radians at the center of (output)
137
* the projection
138
* falseEasting : A coordinate value in meters assigned to the
139
* central meridian of the projection. (output)
140
* falseNorthing : A coordinate value in meters assigned to the
141
* origin latitude of the projection (output)
142
*/
143
144
MapProjection3Parameters
*
getParameters
()
const
;
145
146
147
/*
148
* The function convertFromGeodetic converts geodetic (latitude and
149
* longitude) coordinates to Mollweide projection (easting and northing)
150
* coordinates, according to the current ellipsoid and Mollweide projection
151
* parameters. If any errors occur, an exception is thrown with a description
152
* of the error.
153
*
154
* longitude : Longitude (lambda) in radians (input)
155
* latitude : Latitude (phi) in radians (input)
156
* easting : Easting (X) in meters (output)
157
* northing : Northing (Y) in meters (output)
158
*/
159
160
MSP::CCS::MapProjectionCoordinates
*
convertFromGeodetic
(
MSP::CCS::GeodeticCoordinates
* geodeticCoordinates );
161
162
163
/*
164
* The function convertToGeodetic converts Mollweide projection
165
* (easting and northing) coordinates to geodetic (latitude and longitude)
166
* coordinates, according to the current ellipsoid and Mollweide projection
167
* coordinates. If any errors occur, an exception is thrown with a description
168
* of the error.
169
*
170
* easting : Easting (X) in meters (input)
171
* northing : Northing (Y) in meters (input)
172
* longitude : Longitude (lambda) in radians (output)
173
* latitude : Latitude (phi) in radians (output)
174
*/
175
176
MSP::CCS::GeodeticCoordinates
*
convertToGeodetic
(
MSP::CCS::MapProjectionCoordinates
* mapProjectionCoordinates );
177
178
private
:
179
180
/* Ellipsoid Parameters, default to WGS 84 */
181
double
es2;
/* Eccentricity (0.08181919084262188000) squared */
182
double
es4;
/* es2 * es2 */
183
double
es6;
/* es4 * es2 */
184
double
Sqrt2_Ra;
/* sqrt(2.0) * Spherical Radius(6371007.1810824) */
185
double
Sqrt8_Ra;
/* sqrt(8.0) * Spherical Radius(6371007.1810824) */
186
187
/* Mollweide projection Parameters */
188
double
Moll_Origin_Long;
/* Longitude of origin in radians */
189
double
Moll_False_Easting;
190
double
Moll_False_Northing;
191
double
Moll_Delta_Northing;
192
double
Moll_Max_Easting;
193
double
Moll_Min_Easting;
194
195
};
196
}
197
}
198
199
#endif
200
201
202
// CLASSIFICATION: UNCLASSIFIED
Generated on Tue Feb 16 2016 14:54:02 for GeographicTranslator by doxygen 1.8.2