Views
Maps Package API Reference Guide
Product Documentation:
Views Documentation Home
List of all members | Public Member Functions | Protected Member Functions
IlvConicProjection Class Reference

This abstract class is the base class for all the conic projections in the library. More...

#include <ilviews/maps/projection/conic.h>

Inheritance diagram for IlvConicProjection:
IlvProjection IlvAlbersEqualAreaProjection IlvLambertConformalConicProjection IlvLambertEqualAreaConicProjection IlvFrenchLambertProjection

Public Member Functions

virtual IlvProjectionClassInfogetClassInfo () 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 IlvCoordinategetSecantLatitudes () 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 IlvProjectioncopy () 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 IlvHorizontalDatumgetDatum (void) const
 Returns the horizontal datum used for the projection. More...
 
const IlvEllipsoidgetEllipsoid () 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...
 
IlvProjectionInterfacegetInterface ()
 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 IlvUnitConvertergetUnitConverter () 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 IlvProjectionClassInfoClassInfo ()
 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 IlvProjectionLoad (IlvInputFile &inputFile)
 Loads a projection from the specified file. More...
 
static IlvProjectionPROJ4ToIlvProjection (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.
 

Detailed Description

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.

Note
The cylindrical (secant.x = -_secant.y_) or azimuthal (secant.x = secant.y = 90 degrees) limiting forms of a conic projection should not be used.

Constructor & Destructor Documentation

◆ IlvConicProjection()

IlvConicProjection::IlvConicProjection ( IlBoolean  ellipsoidEnabled,
IlBoolean  inverseEnabled,
IlvProjectionGeometricProperty  property 
)
protected

Initializes a new IlvConicProjection instance.

Parameters
ellipsoidEnabledSet to IlTrue if non-spherical ellipsoids can be used for the projection. Projections supporting non-spherical ellipsoids should implement the eForward() member function.
inverseEnabledSet 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.
propertySpecifies the geometric property of the projection. This argument can take one of the following values:
  • IlvNoneProjectionGeometricProperty
  • IlvConformalProjectionGeometricProperty
  • IlvEqualAreaProjectionGeometricProperty

Member Function Documentation

◆ getClassInfo()

virtual IlvProjectionClassInfo* IlvConicProjection::getClassInfo ( ) const
virtual

Returns the class information for the projection.

Returns
The class information for the projection.

Reimplemented from IlvProjection.

Reimplemented in IlvFrenchLambertProjection.

◆ getSecantLatitude1()

IlDouble IlvConicProjection::getSecantLatitude1 ( void  ) const

Gets the first secant latitude.

Returns
The first secant latitude.
See also
IlvConicProjection::getSecantLatitudes.

◆ getSecantLatitude2()

IlDouble IlvConicProjection::getSecantLatitude2 ( void  ) const

Gets the second secant latitude.

Returns
The second secant latitude.
See also
IlvConicProjection::getSecantLatitudes.

◆ getSecantLatitudes()

const IlvCoordinate& IlvConicProjection::getSecantLatitudes ( ) const

Returns the secant latitudes of the projection in an IlvCoordinate.

Returns
The secant latitudes.

◆ setSecantLatitude1()

IlvMapsError IlvConicProjection::setSecantLatitude1 ( IlDouble  v)

Sets the first secant latitude.

Parameters
vThe first secant latitude.
Returns
An error status if the latitudes specify a limiting form.
See also
IlvConicProjection::setSecantLatitudes.

◆ setSecantLatitude2()

IlvMapsError IlvConicProjection::setSecantLatitude2 ( IlDouble  v)

Sets the second secant latitude.

Parameters
vThe second secant latitude.
Returns
An error status if the latitudes specify a limiting form.
See also
IlvConicProjection::setSecantLatitudes.

◆ setSecantLatitudes()

virtual IlvMapsError IlvConicProjection::setSecantLatitudes ( const IlvCoordinate secant)
virtual

Sets the latitudes at which the cone of the projection intersects with the earth.

Parameters
secantA 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.
Returns
An error status if the latitudes specify a limiting form, that is, if secant_.x_ = -secant_.y_ or secant_.x_ = secant_.y_ = PI/2.

Reimplemented in IlvLambertEqualAreaConicProjection, IlvLambertConformalConicProjection, IlvFrenchLambertProjection, and IlvAlbersEqualAreaProjection.

◆ write()

virtual void IlvConicProjection::write ( IlvOutputFile outputFile) const
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.

Parameters
outputFileThe file to write the projection parameters to.

Reimplemented from IlvProjection.

Reimplemented in IlvLambertConformalConicProjection, IlvLambertEqualAreaConicProjection, IlvFrenchLambertProjection, and IlvAlbersEqualAreaProjection.