24 # define PI_OVER_2 ( M_PI / 2.0) 27 # define TWO_PI (2.0 * M_PI) 29 #define MAX_LAT ( (M_PI * 90.0) / 180.0 ) 31 #define MOLL_NO_ERROR 0x0000 32 #define MOLL_LAT_ERROR 0x0001 33 #define MOLL_LON_ERROR 0x0002 34 #define MOLL_EASTING_ERROR 0x0004 35 #define MOLL_NORTHING_ERROR 0x0008 36 #define MOLL_CENT_MER_ERROR 0x0020 37 #define MOLL_A_ERROR 0x0040 38 #define MOLL_B_ERROR 0x0080 39 #define MOLL_A_LESS_B_ERROR 0x0100 102 double falseNorthing)
131 double easting = 0.0;
132 double northing = 0.0;
183 double Central_Meridian,
184 double False_Easting,
185 double False_Northing)
227 Ra =
Moll_a * (1.0 -
es2 / 6.0 - 17.0 *
es4 / 360.0 - 67.0 *
es6 / 3024.0);
259 double *Central_Meridian,
260 double *False_Easting,
261 double *False_Northing)
const 290 double *Northing)
const 306 double PI_Sin_Latitude =
M_PI * sin(Latitude);
309 double theta_primed = Latitude;
310 double delta_theta_primed = 0.1745329;
311 double dtp_tolerance = 4.85e-10;
335 while (fabs(delta_theta_primed) > dtp_tolerance)
337 delta_theta_primed = -(theta_primed + sin(theta_primed) -
338 PI_Sin_Latitude) / (1.0 + cos(theta_primed));
339 theta_primed += delta_theta_primed;
341 theta = theta_primed / 2.0;
355 double *Longitude)
const 403 two_theta = 2.0 * theta;
404 *Latitude = asin((two_theta + sin(two_theta)) /
M_PI);
412 if (fabs(fabs(*Latitude) -
MAX_LAT) < 1.0e-10)
439 if (!ossimMapProjection::operator==(proj))
443 if (!p)
return false;
double Moll_Delta_Northing
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Method to the load (recreate) the state of an object from a keyword list.
void setCentralMeridian(double centralMeridian)
long Set_Mollweide_Parameters(double a, double f, double Central_Meridian, double False_Easting, double False_Northing)
Represents serializable keyword/value map.
const char * find(const char *key) const
bool almostEqual(T x, T y, T tolerance=FLT_EPSILON)
void setFalseEastingNorthing(double falseEasting, double falseNorthing)
virtual const ossimString & code() const
virtual bool operator==(const ossimProjection &projection) const
Returns TRUE if principal parameters are within epsilon tolerance.
void setFalseEasting(double falseEasting)
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
static const char * TYPE_KW
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
void changeDatum(const ossimDatum *datum)
This will actually perform a shift.
long Convert_Geodetic_To_Mollweide(double Latitude, double Longitude, double *Easting, double *Northing) const
#define STATIC_TYPE_NAME(T)
const ossimDatum * datum() const
datum().
ossimMollweidProjection(const ossimEllipsoid &ellipsoid=ossimEllipsoid(), const ossimGpt &origin=ossimGpt())
long Convert_Mollweide_To_Geodetic(double Easting, double Northing, double *Latitude, double *Longitude) const
virtual ossimDpt forward(const ossimGpt &latLon) const
All map projections will convert the world coordinate to an easting northing (Meters).
void setFalseNorthing(double falseNorthing)
const double & getA() const
double lonr() const
Returns the longitude in radian measure.
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Method to save the state of an object to a keyword list.
void Get_Mollweide_Parameters(double *a, double *f, double *Central_Meridian, double *False_Easting, double *False_Northing) const
double Moll_False_Northing
virtual ossimGpt inverse(const ossimDpt &eastingNorthing) const
Will take a point in meters and convert it to ground.
double latr() const
latr().
const double & getFlattening() const
ossimEllipsoid theEllipsoid
This method verifies that the projection parameters match the current pcs code.
#define RTTI_DEF1(cls, name, b1)
ossimDpt theFalseEastingNorthing
Hold the false easting northing.
double Moll_False_Easting
const ossimDatum * theDatum
This is only set if we want to have built in datum shifting.