24 # define PI_OVER_2 ( M_PI / 2.0) 27 # define TWO_PI (2.0 * M_PI) 29 #define MAX_LAT ( (M_PI * 90) / 180.0 ) 32 #define ORTH_NO_ERROR 0x0000 33 #define ORTH_LAT_ERROR 0x0001 34 #define ORTH_LON_ERROR 0x0002 35 #define ORTH_EASTING_ERROR 0x0004 36 #define ORTH_NORTHING_ERROR 0x0008 37 #define ORTH_ORIGIN_LAT_ERROR 0x0010 38 #define ORTH_CENT_MER_ERROR 0x0020 39 #define ORTH_A_ERROR 0x0040 40 #define ORTH_B_ERROR 0x0080 41 #define ORTH_A_LESS_B_ERROR 0x0100 42 #define ORTH_RADIUS_ERROR 0x0200 155 double easting = 0.0;
156 double northing = 0.0;
173 result =
ossimDpt(easting, northing);
215 double Origin_Latitude,
216 double Central_Meridian,
217 double False_Easting,
218 double False_Northing)
253 if ((Central_Meridian < -
M_PI) || (Central_Meridian >
TWO_PI))
282 double *Origin_Latitude,
283 double *Central_Meridian,
284 double *False_Easting,
285 double *False_Northing)
const 317 double *Northing)
const 333 double slat = sin(Latitude);
334 double clat = cos(Latitude);
345 if ((Longitude < -
M_PI) || (Longitude >
TWO_PI))
350 clat_cdlam = clat * cos(dlam);
380 double *Longitude)
const 396 double cos_cc, sin_cc;
399 double atan_dx_over_dy;
416 double temp = sqrt(Easting * Easting + Northing * Northing);
429 atan_dx_over_dy = atan(dx / dy);
430 rho = sqrt(dx * dx + dy * dy);
438 rho_OVER_Ra = rho /
Ra;
440 if (rho_OVER_Ra > 1.0)
442 else if (rho_OVER_Ra < -1.0)
445 cc = asin(rho_OVER_Ra);
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Method to the load (recreate) the state of an object from a keyword list.
#define ORTH_NORTHING_ERROR
void Get_Orthographic_Parameters(double *a, double *f, double *Origin_Latitude, double *Origin_Longitude, double *False_Easting, double *False_Northing) const
double lond() const
Will convert the radian measure to degrees.
Represents serializable keyword/value map.
const char * find(const char *key) const
virtual ossimGpt inverse(const ossimDpt &eastingNorthing) const
Will take a point in meters and convert it to ground.
void setFalseEasting(double falseEasting)
virtual const ossimString & code() const
long Convert_Geodetic_To_Orthographic(double Latitude, double Longitude, double *Easting, double *Northing) const
void setFalseNorthing(double falseNorthing)
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
double latd() const
Will convert the radian measure to degrees.
virtual ossimDpt forward(const ossimGpt &latLon) const
All map projections will convert the world coordinate to an easting northing (Meters).
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().
const double & getA() const
long Convert_Orthographic_To_Geodetic(double Easting, double Northing, double *Latitude, double *Longitude) const
double lonr() const
Returns the longitude in radian measure.
double Orth_False_Easting
#define ORTH_RADIUS_ERROR
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Method to save the state of an object to a keyword list.
double Orth_False_Northing
#define ORTH_ORIGIN_LAT_ERROR
double Cos_Orth_Origin_Lat
ossimOrthoGraphicProjection(const ossimEllipsoid &ellipsoid=ossimEllipsoid(), const ossimGpt &origin=ossimGpt())
void addPoint(const ossimGpt &pt)
#define ORTH_CENT_MER_ERROR
double Sin_Orth_Origin_Lat
double latr() const
latr().
const double & getFlattening() const
#define ORTH_EASTING_ERROR
void setFalseEastingNorthing(double falseEasting, double falseNorthing)
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_Orthographic_Parameters(double a, double f, double Origin_Latitude, double Central_Meridian, double False_Easting, double False_Northing)
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
virtual void getGroundClipPoints(ossimGeoPolygon &gpts) const
const ossimDatum * theDatum
This is only set if we want to have built in datum shifting.