Provides methods that are required to handle all map projection definitions and georeferencing of satellite images.
More...
Public Member Functions |
| | TeProjection (const string &name, const TeDatum &datum, double lon0=0., double lat0=0., double offx=0., double offy=0., double stlat1=0., double stlat2=0., const string units="Meters", double scale=1., TeHemisphere hem=TeSOUTH_HEM, int epsgcode=-1) |
| | Normal constructor.
|
| | TeProjection () |
| | TeProjection (const TeProjection &) |
| | Copy Constructor.
|
| TeProjection & | operator= (const TeProjection &) |
| | Operator =.
|
| virtual | ~TeProjection () |
| | Destructor.
|
| string & | name () |
| | Returns the projection name;.
|
| const string & | name () const |
| | Returns the projection name;.
|
| TeDatum | datum () |
| | Returns the projection datum.
|
| const TeDatum & | datum () const |
| | Returns the projection datum.
|
| void | setDatum (const TeDatum &datum) |
| | Sets the datum associated to the projection.
|
| string & | units () |
| | Return the projection units.
|
| double | lon0 () |
| | Return the longitude of origin ( in rad)
|
| double | lat0 () |
| | Return the Latitude of origin (rad)
|
| double | offX () |
| | Return X (projection coordinate) offset (m)
|
| double | offY () |
| | Return Y (projection coordinate) offset (m)
|
| double | stLat1 () |
| | Return First standard parallel (rad)
|
| double | stLat2 () |
| | Return the second standard parallel (rad)
|
| double | scale () |
| | Return the scale (used for UTM)
|
| int | epsgCode () |
| void | epsgCode (int code) |
| const TeHemisphere & | hemisphere () const |
| | Return the Hemisphere.
|
| virtual TeProjectionParams | params () const |
| bool | operator== (const TeProjection &proj) |
| virtual TeCoord2D | LL2PC (const TeCoord2D &p)=0 |
| | Pure virtual method that transforms geodetic into projection coordinates.
|
| virtual void | LL2PC (ostream &) const |
| virtual TeCoord2D | PC2LL (const TeCoord2D &p)=0 |
| | Pure virtual method that transforms projection into geodetic coordinates.
|
| virtual void | LL2PC (double, double, double &, double &) const |
| virtual void | PC2LL (double, double, double &, double &) |
| void | setDestinationProjection (TeProjection *proj) |
| | Sets the projection to which a Latitude/Longitude value will be generated by the current projection by calling changeLL in PC2LL method.
|
| void | print (FILE *file_) |
| | Concrete method that prints information about a projection.
|
| string | describe () |
| | Concrete method that prints information about a projection in a string.
|
| int | id () |
| | Get projection unique id in the database.
|
| void | id (int i) |
| | Set projection unique id in the database.
|
Protected Member Functions |
| void | ChangeLL (double &x, double &y) |
| | Changes planimetic datum.
|
Protected Attributes |
| string | GPname |
| TeDatum | GPdatum |
| double | GPlon0 |
| double | GPlat0 |
| double | GPoffx |
| double | GPoffy |
| double | GPstlat1 |
| double | GPstlat2 |
| string | GPunits |
| double | GPscale |
| TeHemisphere | GPhemisphere |
| TeProjection * | GPdestination |
| int | GPid |
| int | GPepsgCode |
| TeUnits | GPunitsEnum |
Provides methods that are required to handle all map projection definitions and georeferencing of satellite images.
Specifies earth and projection parameters that represent a common ground in terms of defining conventional map projections, navigating on low-resolution images of geostationary satellites.
- Examples:
-
copyLayer.cpp, createLayer.cpp, createTheme.cpp, and importGridData.cpp.
| void TeProjection::ChangeLL |
( |
double & |
x, |
|
|
double & |
y |
|
) |
| [protected] |
Changes planimetic datum.
Computes changes in geodetic coordinates due to planimetric datum changes. First, the method finds geocentric cartesian coordinates on the initial datum, then applies datum shifts, and finally computes the new geodetic coordinates on the final datum. The new geodetic latitude is computed iteractively, the old geodetic latitude being used as initial guess.
- Parameters:
-
| x | Initial longitude (rad); |
| y | Initial latitude (rad). |
- Returns:
- x Final longitude (rad);
-
y Final latitude (rad).
- Note:
- x must be a valid longitude ([0,pi] or [0,-pi]) and y must be a valid latitude ([0,pi/2] or [0,-pi/2]).
Pure virtual method that transforms geodetic into projection coordinates.
This method is implemented for each available projection class and represents the so-called direct formulas, which compute projection coordinates from geodetic coordinates.
- Parameters:
-
| p | Geodetic coordinates (radian). |
- Returns:
- p Projection coordinates (m).
- Note:
- Geodetic coordinates must be a valid latitude ([0,pi/2] or [0,-pi/2]) and a valid longitude ([0,pi] or [0,-pi]).
Implemented in TeUtm, TeLambertConformal, TeMercator, TePolyconic, TeLatLong, TeAlbers, TeMiller, TeSinusoidal, TeCylindricalEquidistant, TePolarStereographic, TeSatelliteProjection, TeNoProjection, and TeVirtualEarthMercator.
Pure virtual method that transforms projection into geodetic coordinates.
This method is implemented for each available projection class and represents the so-called inverse formulas, which compute geodetic coordinates from projection coordinates.
- Parameters:
-
| p | Projection coordinates (m). |
- Returns:
- p Geodetic coordinates (rad).
- Note:
- X and Y projection coordinates must be both valid, within the typical range of each projection class.
Implemented in TeUtm, TeLambertConformal, TeMercator, TePolyconic, TeLatLong, TeAlbers, TeMiller, TeSinusoidal, TeCylindricalEquidistant, TePolarStereographic, TeSatelliteProjection, TeNoProjection, and TeVirtualEarthMercator.