This abstract class is the base class for all the conic projections in the library. More...
#include <ilviews/maps/projection/conic.h>
Public Member Functions | |
virtual IlvProjectionClassInfo * | getClassInfo () const |
Returns the class information for the projection. More... | |
IlDouble | getSecantLatitude1 (void) const |
Gets the first secant latitude. More... | |
IlDouble | getSecantLatitude2 (void) const |
Gets the second secant latitude. More... | |
const IlvCoordinate & | getSecantLatitudes () const |
Returns the secant latitudes of the projection in an IlvCoordinate . More... | |
IlvMapsError | setSecantLatitude1 (IlDouble v) |
Sets the first secant latitude. More... | |
IlvMapsError | setSecantLatitude2 (IlDouble v) |
Sets the second secant latitude. More... | |
virtual IlvMapsError | setSecantLatitudes (const IlvCoordinate &secant) |
Sets the latitudes at which the cone of the projection intersects with the earth. More... | |
virtual void | write (IlvOutputFile &) const |
Saves the parameters of a projection to the specified output file. More... | |
Public Member Functions inherited from IlvProjection | |
virtual IlvProjection * | copy () const =0 |
Returns a copy of the projection. More... | |
virtual IlvMapsError | forward (const IlvCoordinate &llIn, IlvCoordinate &xyOut) const |
Converts a latitude and a longitude to Cartesian coordinates (x, y). More... | |
virtual IlvMapsError | forward (IlvCoordinate &coords) const |
Projects a latitude and a longitude pair to Cartesian coordinates. More... | |
IlDouble | getCentralMeridian () const |
Returns the central meridian of the projection. More... | |
IlDouble | getCentralParallel () const |
Returns the central parallel of the projection. More... | |
const IlvHorizontalDatum * | getDatum (void) const |
Returns the horizontal datum used for the projection. More... | |
const IlvEllipsoid * | getEllipsoid () const |
Returns the ellipsoid used for the projection. More... | |
IlvMapsError | getError () const |
Returns the status of the projection. More... | |
IlDouble | getFalseEasting () const |
Returns the false easting of the projection. More... | |
IlDouble | getFalseNorthing () const |
Returns the false northing of the projection. More... | |
IlvProjectionInterface * | getInterface () |
Returns the interface of the projection. More... | |
IlvCoordinate | getLLCenter (void) const |
Returns the central meridian and the central parallel associated with the projection (0-0 by default). More... | |
IlvProjectionGeometricProperty | getProperty () const |
Returns the geometric property of the projection. More... | |
const IlvUnitConverter * | getUnitConverter () const |
Returns the unit converter. More... | |
IlvCoordinate | getXYOffset () const |
Returns the false easting and the false northing of the projection. More... | |
virtual IlvMapsError | inverse (const IlvCoordinate &xyIn, IlvCoordinate &llOut) const |
Converts the specified coordinate to a latitude and a longitude. More... | |
virtual IlvMapsError | inverse (IlvCoordinate &coords) const |
Invserse-projects Cartesian coordinates to a latitude and a longitude. More... | |
IlBoolean | isBad () const |
Checks for an inconsistent state of the projection. More... | |
IlBoolean | isEllipsoidEnabled () const |
Indicates if non spherical ellipsoids can be used for the projection. More... | |
IlBoolean | isGeocentric () const |
Checks if the projection uses geocentric latitudes. More... | |
IlBoolean | isInverseEnabled () const |
Indicates if the inverse function is supported by the projection. More... | |
IlBoolean | isShared () const |
Indicates that the projection is shared. More... | |
IlBoolean | isUsingLongitudeReduction () const |
Returns IlTrue if the projection uses range reduction for longitudes. More... | |
void | lock () |
Locks the projection. | |
virtual std::ostream & | printPROJ4Descriptor (std::ostream &ostr, IlvMapsError *status=0) const |
This virtual member function converts the projection to a string in the PROJ4 format. More... | |
void | save (IlvOutputFile &outputFile) const |
Saves an instance of a subclass of IlvProjection to the specified output file. More... | |
void | setCentralMeridian (IlDouble lon) |
Sets the central meridian of the projection. More... | |
void | setCentralParallel (IlDouble lat) |
Sets the central parallel of the projection. More... | |
virtual IlvMapsError | setDatum (const IlvHorizontalDatum *datum) |
Sets the datum used for the projection. More... | |
virtual IlvMapsError | setEllipsoid (const IlvEllipsoid &ellipsoid) |
Sets the ellipsoid used for the projection. More... | |
void | setFalseEasting (IlDouble falseEasting) |
Sets the false easting of the projection. More... | |
void | setFalseNorthing (IlDouble falseNorthing) |
Sets the false northing of the projection. More... | |
void | setGeocentric (IlBoolean geoc) |
Specifies whether the projection uses geocentric or geodetic latitudes. More... | |
virtual void | setLLCenter (IlDouble lon, IlDouble lat) |
Specifies the central meridian and the central parallel (in radian) associated with the projection. More... | |
void | setShared () |
Specifies that the projection will be shared. More... | |
void | setUnitConverter (const IlvUnitConverter &converter) |
Sets the unit converter of the projection. More... | |
void | setUsingLongitudeReduction (IlBoolean use) |
Specifies whether the projection uses longitude reduction. More... | |
virtual void | setXYOffset (IlDouble x0, IlDouble y0) |
Specifies the false easting and the false northing. More... | |
void | unLock () |
Unlocks the object. More... | |
Protected Member Functions | |
IlvConicProjection (IlBoolean ellipsoidEnabled, IlBoolean inverseEnabled, IlvProjectionGeometricProperty property) | |
Initializes a new IlvConicProjection instance. More... | |
Protected Member Functions inherited from IlvProjection | |
IlvProjection (IlBoolean ellipsoidEnabled, IlBoolean inverseEnabled, IlvProjectionGeometricProperty property) | |
Initializes a new IlvProjection instance. More... | |
void | addError (IlvMapsError error) |
Used by the constructors of subclasses if an error occurs during an object initialization. More... | |
virtual IlvMapsError | eForward (IlvCoordinate &ll) const |
Must be redefined in subclasses to implement the projection for a non spherical ellipsoid. More... | |
virtual IlvMapsError | eInverse (IlvCoordinate &xy) const |
Implements the inverse projection for a non spherical ellipsoid. More... | |
virtual bool | isUsingProj4 () const |
Are we using proj4 implementation. More... | |
void | setError (IlvMapsError error) |
Sets the status of this projection. More... | |
virtual IlvMapsError | sForward (IlvCoordinate &ll) const =0 |
Must be redefined in subclasses to implement the projection for a sphere. More... | |
virtual IlvMapsError | sInverse (IlvCoordinate &xy) const |
Must be redefined in subclasses to implement the inverse projection for a sphere. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from IlvProjection | |
static IlvProjectionClassInfo * | ClassInfo () |
Returns the class information of the class. More... | |
static IlvClassInfo ** | ClassInfoRef () |
Returns the address of the class information of the class. More... | |
static IlvMapsError | InputError () |
Indicates that the coordinates passed to the forward function are not in a valid range for radian angles. | |
static IlvMapsError | InvalidEllipsoidError () |
Indicates that you attempt to set a non spherical ellipsoid to a projection that does not support non spherical ellipsoids. | |
static IlvProjection * | Load (IlvInputFile &inputFile) |
Loads a projection from the specified file. More... | |
static IlvProjection * | PROJ4ToIlvProjection (const char *proj4Descriptor, IlvMapsError *status=0) |
Creates the projection from a PROJ4 descriptor. More... | |
static IlvMapsError | ToleranceConditionError () |
Indicates that an internal projection computation failed. More... | |
static IlvMapsError | UnsupportedFeatureError () |
Indicates that an unsupported projection feature is requested, like inverse projection for a projection that does not support inverse projection. | |
This abstract class is the base class for all the conic projections in the library.
Library: ilvmaps
A conic projection transfers the image of the globe to a cone, either secant or tangent to the surface of the earth. The latitudes at which the cone intersects with the globe can be specified with the function setSecantLatitudes(IlvCoordinate)
. The secant parameter is a vector that contains two values:
When the cone is tangent to the earth, secant.x equals secant.y.
|
protected |
Initializes a new IlvConicProjection
instance.
ellipsoidEnabled | Set to IlTrue if non-spherical ellipsoids can be used for the projection. Projections supporting non-spherical ellipsoids should implement the eForward() member function. |
inverseEnabled | Set to IlTrue if the projection implements an inverse function. This type of projection should implement the sInverse() and eInverse() member functions if ellipsoids are supported. |
property | Specifies the geometric property of the projection. This argument can take one of the following values:
|
|
virtual |
Returns the class information for the projection.
Reimplemented from IlvProjection.
Reimplemented in IlvFrenchLambertProjection.
IlDouble IlvConicProjection::getSecantLatitude1 | ( | void | ) | const |
Gets the first secant latitude.
IlDouble IlvConicProjection::getSecantLatitude2 | ( | void | ) | const |
Gets the second secant latitude.
const IlvCoordinate& IlvConicProjection::getSecantLatitudes | ( | ) | const |
Returns the secant latitudes of the projection in an IlvCoordinate
.
IlvMapsError IlvConicProjection::setSecantLatitude1 | ( | IlDouble | v | ) |
Sets the first secant latitude.
v | The first secant latitude. |
IlvMapsError IlvConicProjection::setSecantLatitude2 | ( | IlDouble | v | ) |
Sets the second secant latitude.
v | The second secant latitude. |
|
virtual |
Sets the latitudes at which the cone of the projection intersects with the earth.
secant | A vector that contains two values: secant_.x_ represents the first latitude at which the cone intersects with the earth. secant_.y_ represents the second latitude at which the cone intersects with the earth. Both values are expressed in radian. |
Reimplemented in IlvLambertEqualAreaConicProjection, IlvLambertConformalConicProjection, IlvFrenchLambertProjection, and IlvAlbersEqualAreaProjection.
|
virtual |
Saves the parameters of a projection to the specified output file.
It must be overridden by subclasses of IlvProjection
that need to save additional parameters.
This function should not be directly called; use the save()
function instead.
outputFile | The file to write the projection parameters to. |
Reimplemented from IlvProjection.
Reimplemented in IlvLambertConformalConicProjection, IlvLambertEqualAreaConicProjection, IlvFrenchLambertProjection, and IlvAlbersEqualAreaProjection.