18 #define PI_OVER_2 ( M_PI / 2.0) 19 #define ONE (1.0 * M_PI / 180.0) 21 #define AZEQ_NO_ERROR 0x0000 22 #define AZEQ_LAT_ERROR 0x0001 23 #define AZEQ_LON_ERROR 0x0002 24 #define AZEQ_EASTING_ERROR 0x0004 25 #define AZEQ_NORTHING_ERROR 0x0008 26 #define AZEQ_ORIGIN_LAT_ERROR 0x0010 27 #define AZEQ_CENT_MER_ERROR 0x0020 28 #define AZEQ_A_ERROR 0x0040 29 #define AZEQ_INV_F_ERROR 0x0080 30 #define AZEQ_PROJECTION_ERROR 0x0100 82 double northing = 0.0;
115 double falseNorthing)
155 double Origin_Latitude,
156 double Central_Meridian,
157 double False_Easting,
158 double False_Northing)
179 double es2, es4, es6;
181 double temp_Northing = 0.0;
208 Ra =
Azeq_a * (1.0 - es2 / 6.0 - 17.0 * es4 / 360.0 - 67.0 * es6 / 3024.0);
250 double *Origin_Latitude,
251 double *Central_Meridian,
252 double *False_Easting,
253 double *False_Northing)
const 285 double *Northing)
const 304 double slat = sin(Latitude);
305 double clat = cos(Latitude);
307 double sin_dlam, cos_dlam;
309 double Ra_PI_OVER_2_Lat;
332 sin_dlam = sin(dlam);
333 cos_dlam = cos(dlam);
351 cos_c = clat * cos_dlam;
352 if (fabs(fabs(cos_c) - 1.0) < 1.0e-14)
368 k_prime = c / sin(c);
369 Ra_kprime =
Ra * k_prime;
377 if (fabs(fabs(cos_c) - 1.0) < 1.0e-14)
393 k_prime = c / sin(c);
394 Ra_kprime =
Ra * k_prime;
407 double *Longitude)
const 425 double sin_c, cos_c, dy_sinc;
443 rho = sqrt(dx * dx + dy * dy);
444 if (fabs(rho) <= 1.0e-10)
454 dy_sinc = dy * sin_c;
477 if (*Longitude >
M_PI)
479 else if (*Longitude < -
M_PI)
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Method to the load (recreate) the state of an object from a keyword list.
Represents serializable keyword/value map.
const char * find(const char *key) const
long Convert_Geodetic_To_Azimuthal_Equidistant(double Latitude, double Longitude, double *Easting, double *Northing) const
virtual const ossimString & code() const
double Sin_Azeq_Origin_Lat
virtual ossimDpt forward(const ossimGpt &latLon) const
All map projections will convert the world coordinate to an easting northing (Meters).
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
static const char * TYPE_KW
void changeDatum(const ossimDatum *datum)
This will actually perform a shift.
#define STATIC_TYPE_NAME(T)
const ossimDatum * datum() const
datum().
void setFalseEasting(double falseEasting)
void setFalseEastingNorthing(double falseEasting, double falseNorthing)
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
double Azeq_Delta_Northing
const double & getA() const
double lonr() const
Returns the longitude in radian measure.
virtual ossimGpt inverse(const ossimDpt &eastingNorthing) const
Will take a point in meters and convert it to ground.
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Method to save the state of an object to a keyword list.
void Get_Azimuthal_Equidistant_Parameters(double *a, double *f, double *Origin_Latitude, double *Central_Meridian, double *False_Easting, double *False_Northing) const
double Cos_Azeq_Origin_Lat
double Azeq_Delta_Easting
#define AZEQ_PROJECTION_ERROR
double abs_Azeq_Origin_Lat
double Azeq_False_Easting
double Azeq_False_Northing
double latr() const
latr().
void setFalseNorthing(double falseNorthing)
const double & getFlattening() const
long Convert_Azimuthal_Equidistant_To_Geodetic(double Easting, double Northing, double *Latitude, double *Longitude) 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.
long Set_Azimuthal_Equidistant_Parameters(double a, double f, double Origin_Latitude, double Central_Meridian, double False_Easting, double False_Northing)
ossimAzimEquDistProjection(const ossimEllipsoid &ellipsoid=ossimEllipsoid(), const ossimGpt &origin=ossimGpt())
const ossimDatum * theDatum
This is only set if we want to have built in datum shifting.