This class defines the Azimuthal Equidistant projection. More...
#include <ilviews/maps/projection/azeqdist.h>
Public Member Functions | |
IlvAzimuthalEquidistantProjection () | |
Initializes a new IlvAzimuthalEquidistantProjection instance. | |
virtual IlvMapsError | forward (const IlvCoordinate &llIn, IlvCoordinate &xyOut) const |
Converts a latitude and a longitude to Cartesian coordinates (x, y). 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... | |
virtual IlvMapsError | inverse (const IlvCoordinate &xyIn, IlvCoordinate &llOut) const |
Converts the specified coordinate to a latitude and a longitude. 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 | isGuam () const |
Inidicates if the Guam elliptical equation is used. More... | |
virtual IlvMapsError | setEllipsoid (const IlvEllipsoid &) |
Sets the ellipsoid used for the projection. More... | |
void | setGuam (IlBoolean guam) |
Sets the projection to use the Guam equation, which is an alternate form of the projection for an ellipsoid. More... | |
virtual void | setLLCenter (IlDouble, IlDouble) |
Specifies the central meridian and the central parallel (in radian) associated with the projection. 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 (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... | |
virtual IlvProjectionClassInfo * | getClassInfo () const |
Returns the class information for 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 (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... | |
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... | |
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 | |
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... | |
virtual IlvMapsError | sForward (IlvCoordinate &ll) const |
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... | |
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... | |
void | setError (IlvMapsError error) |
Sets the status of this projection. 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 class defines the Azimuthal Equidistant projection.
Library: ilvmaps
With Azimuthal projections, also called planar projections, the spherical globe is projected onto a flat surface. This type of projection is often used to represent the regions around the Poles. The plane surface is therefore generally placed above the North or the South Pole.
With Azimuthal Equidistant projections, distances from the center are true. These projections are used to show air-route distances, which appear as straight lines when drawn from the projection center.
CADGR files representing polar areas are projected with this projection.
This class applies both to spherical and nonspherical ellipsoids and implements an inverse function.
This projection is neither Conformal nor Equal Area.
|
protectedvirtual |
Must be redefined in subclasses to implement the projection for a non spherical ellipsoid.
The default implementation returns IlvProjection::UnsupportedFeatureError()
.
ll | Contains the longitude and latitude coordinates in radian (x = longitude, y = latitude). |
Reimplemented from IlvProjection.
|
protectedvirtual |
Implements the inverse projection for a non spherical ellipsoid.
The default implementation returns IlvProjection::UnsupportedFeatureError()
.
xy | Contains the Cartesian coordinates to inverse. |
Reimplemented from IlvProjection.
virtual IlvMapsError IlvProjection::forward |
Converts a latitude and a longitude to Cartesian coordinates (x, y).
The forward projection is computed either by the sForward()
or by the eForward()
method, depending on whether the ellipsoid is a sphere or not. The implementation of one of these methods depends on the projection. The result is then converted to the appropriate measurement unit.
This method returns IlvMaps::NoError()
if the conversion is successful. Otherwise, it returns an error status.
projection.forward(coords, coords)
. If an error status is returned, the coordinates returned are not correct. Therefore, it is strongly recommended to pay attention to the error flag status.llIn | In Represents the longitude and latitude expressed in radian. The longitude must be in the range [-PI; PI] and the latitude must be in the range [-PI/2; PI/2] . If required, the function converts the latitude to a geocentric latitude. Then it centers the longitude and adjusts it. |
xyOut | The resulting projected coordinates. |
IlvMapsError
different from IlvMaps::NoError()
if the conversion fails.
|
virtual |
Converts a latitude and a longitude to Cartesian coordinates (x, y).
The forward projection is computed either by the sForward()
or by the eForward()
method, depending on whether the ellipsoid is a sphere or not. The implementation of one of these methods depends on the projection. The result is then converted to the appropriate measurement unit.
This method returns IlvMaps::NoError()
if the conversion is successful. Otherwise, it returns an error status.
projection.forward(coords, coords)
. If an error status is returned, the coordinates returned are not correct. Therefore, it is strongly recommended to pay attention to the error flag status.llIn | In Represents the longitude and latitude expressed in radian. The longitude must be in the range [-PI; PI] and the latitude must be in the range [-PI/2; PI/2] . If required, the function converts the latitude to a geocentric latitude. Then it centers the longitude and adjusts it. |
xyOut | The resulting projected coordinates. |
IlvMapsError
different from IlvMaps::NoError()
if the conversion fails. Reimplemented from IlvProjection.
virtual IlvMapsError IlvProjection::forward |
Projects a latitude and a longitude pair to Cartesian coordinates.
This is equivalent to forward(coords, coords)
.
coords | The coordinates to be converted. |
IlvMapsError
different from IlvMaps::NoError()
if the conversion fails. IlvProjection::forward()
. virtual IlvMapsError IlvProjection::inverse |
Converts the specified coordinate to a latitude and a longitude.
This method converts the xyIn parameter, which represents Cartesian coordinates expressed in the measurement unit of the projection, to a latitude and a longitude.
This method returns IlvMaps::NoError()
if the conversion is successful. Otherwise, it returns an error status.
projection.inverse(coords, coords)
. xyIn | The coordinates to be converted. |
llOut | The converted coordinates. |
IlvMapsError
different from IlvMaps::NoError()
if the conversion fails.
|
virtual |
Converts the specified coordinate to a latitude and a longitude.
This method converts the xyIn parameter, which represents Cartesian coordinates expressed in the measurement unit of the projection, to a latitude and a longitude.
This method returns IlvMaps::NoError()
if the conversion is successful. Otherwise, it returns an error status.
projection.inverse(coords, coords)
. xyIn | The coordinates to be converted. |
llOut | The converted coordinates. |
IlvMapsError
different from IlvMaps::NoError()
if the conversion fails. Reimplemented from IlvProjection.
virtual IlvMapsError IlvProjection::inverse |
Invserse-projects Cartesian coordinates to a latitude and a longitude.
This is equivalent to inverse(coords, coords)
.
coords | The coordinates to be converted before the call and the result after the call. |
IlvMapsError
different from IlvMaps::NoError()
if the conversion fails. IlvProjection::inverse()
. IlBoolean IlvAzimuthalEquidistantProjection::isGuam | ( | ) | const |
Inidicates if the Guam elliptical equation is used.
IlTrue
if the Guam elliptical equation is used, IlFalse
otherwise.
|
protectedvirtual |
Are we using proj4 implementation.
Reimplemented from IlvProjection.
|
virtual |
Sets the ellipsoid used for the projection.
This virtual member function sets the ellipsoid used for the projection. Most of the projections are initialized with a spherical ellipsoid with a radius of 6,370,997 meters.
This function returns IlvMaps::NoError()
if the operation is successful or an error status if you specify a non spherical ellipsoid and your type does not support non spherical.
ellipsoid | The ellipsoid used for the projection. |
IlvMapsError
if the ellipsoid does not match the projection. Reimplemented from IlvProjection.
void IlvAzimuthalEquidistantProjection::setGuam | ( | IlBoolean | guam | ) |
Sets the projection to use the Guam equation, which is an alternate form of the projection for an ellipsoid.
If the Guam argument is set to IlTrue
, the Guam elliptical equation is used. By default, it is set to IlFalse
, which means that the Guam equation is not used.
guam | Specifies if the Guam equation is to be used. |
Specifies the central meridian and the central parallel (in radian) associated with the projection.
By default, theses values are set to 0
.
This function is virtual because it can be overridden by subclasses of IlvProjection
to update the internal parameters when the center is changed.
lon | The central meridian in radian. |
lat | The central parallel in radian. |
Reimplemented from IlvProjection.
|
protectedvirtual |
Must be redefined in subclasses to implement the projection for a sphere.
ll | Contains the longitude and latitude coordinates in radian. |
Implements IlvProjection.
|
protectedvirtual |
Must be redefined in subclasses to implement the inverse projection for a sphere.
The default implementation returns IlvProjection::UnsupportedFeatureError()
.
xy | Contains the Cartesian coordinates to inverse. |
Reimplemented from IlvProjection.
|
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.