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

This class defines Universal Transverse Mercator projections, also known as UTM projections. More...

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

Inheritance diagram for IlvUniversalTransverseMercatorProjection:
IlvTransverseMercatorProjection IlvProjection

Public Member Functions

 IlvUniversalTransverseMercatorProjection (IlDouble lon)
 Initializes a new IlvUniversalTransverseMercatorProjection instance and specifies the central meridian. More...
 
 IlvUniversalTransverseMercatorProjection (IlUShort zone=30)
 Initializes a new IlvUniversalTransverseMercatorProjection instance and specifies the UTM zone. More...
 
IlUShort getZone () const
 Returns the UTM zone to which the projection applies. More...
 
virtual IlBoolean isSouth () const
 Checks if projection is for applications portraying the southern hemisphere. More...
 
virtual void setLLCenter (IlDouble, IlDouble)
 Specifies the central meridian and the central parallel (in radian) associated with the projection. More...
 
virtual void setScaleFactor (IlDouble)
 Sets the scale factor applied to the central meridian. More...
 
void setSouth (IlBoolean south)
 Sets a false northing for applications portraying the southern hemisphere. More...
 
IlBoolean setZone (IlUShort zone)
 Sets the UTM zone to which the projection applies. More...
 
virtual void write (IlvOutputFile &) const
 Saves the parameters of a projection to the specified output file. More...
 
- Public Member Functions inherited from IlvTransverseMercatorProjection
 IlvTransverseMercatorProjection (IlDouble latitudeOfTrueScale=0.)
 This constructor initializes a new IlvTransverseMercatorProjection instance and sets the latitude of the true scale. 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 (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 getScaleFactor () const
 Returns the scale factor applied to the central meridian. 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...
 
virtual IlvMapsError setEllipsoid (const IlvEllipsoid &)
 Sets the ellipsoid used for the projection. More...
 
virtual void setXYOffset (IlDouble x0, IlDouble y0)
 Specifies the false easting and the false northing. More...
 
- Public Member Functions inherited from IlvProjection
virtual IlvProjectioncopy () 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 IlvProjectionClassInfogetClassInfo () const
 Returns the class information for 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 (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...
 
void unLock ()
 Unlocks the object. 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.
 
- Protected Member Functions inherited from IlvTransverseMercatorProjection
virtual IlvMapsError eForward (IlvCoordinate &) const
 Must be redefined in subclasses to implement the projection for a non spherical ellipsoid. More...
 
virtual IlvMapsError eInverse (IlvCoordinate &) 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 &) const
 Must be redefined in subclasses to implement the projection for a sphere. More...
 
virtual IlvMapsError sInverse (IlvCoordinate &) 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...
 

Detailed Description

This class defines Universal Transverse Mercator projections, also known as UTM projections.

Library: ilvmaps

A UTM projection is a preconfigured form of the Transverse Mercator projection. It is generally used with non-spherical ellipsoids. UTM projections usually apply to 6-degree longitudinal strips extending from 84S to 80N. These strips are called UTM zones, with Zone 1 starting at 180W and Zone 60 ending at 180E. The central meridian is constrained to 6-degree intervals starting at 3 degrees. The projection automatically adjusts to the value nearest to the user's entry. A false easting of 500,000 meters is automatically added.

Universal Transverse Mercator Projection

See also
IlvUniversalPolarStereographicProjection.

Constructor & Destructor Documentation

◆ IlvUniversalTransverseMercatorProjection() [1/2]

IlvUniversalTransverseMercatorProjection::IlvUniversalTransverseMercatorProjection ( IlUShort  zone = 30)

Initializes a new IlvUniversalTransverseMercatorProjection instance and specifies the UTM zone.

The ellipsoid is set to the WGS84 ellipsoid.

Parameters
zoneThe UTM zone.

◆ IlvUniversalTransverseMercatorProjection() [2/2]

IlvUniversalTransverseMercatorProjection::IlvUniversalTransverseMercatorProjection ( IlDouble  lon)

Initializes a new IlvUniversalTransverseMercatorProjection instance and specifies the central meridian.

The ellipsoid is set to the WGS84 ellipsoid. The zone specified by the lon parameter is adjusted to the nearest UTM zone at the specified longitude.

Parameters
lonThe longitude.

Member Function Documentation

◆ getZone()

IlUShort IlvUniversalTransverseMercatorProjection::getZone ( ) const

Returns the UTM zone to which the projection applies.

Returns
The UTM zone.

◆ isSouth()

virtual IlBoolean IlvUniversalTransverseMercatorProjection::isSouth ( ) const
virtual

Checks if projection is for applications portraying the southern hemisphere.

This member function returns IlTrue if the projection is set for applications portraying the southern hemisphere.

Returns
IlTrue if the projection is set for applications portraying the southern hemisphere IlFalse otherwise.

◆ setLLCenter()

virtual void IlvUniversalTransverseMercatorProjection::setLLCenter ( IlDouble  lon,
IlDouble  lat 
)
virtual

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.

Parameters
lonThe central meridian in radian.
latThe central parallel in radian.

Reimplemented from IlvTransverseMercatorProjection.

◆ setScaleFactor()

virtual void IlvUniversalTransverseMercatorProjection::setScaleFactor ( IlDouble  k0)
virtual

Sets the scale factor applied to the central meridian.

By default, the scale factor is 1.

Parameters
k0The scale factor applied to the central meridian.

Reimplemented from IlvTransverseMercatorProjection.

◆ setSouth()

void IlvUniversalTransverseMercatorProjection::setSouth ( IlBoolean  south)

Sets a false northing for applications portraying the southern hemisphere.

In applications portraying the southern hemisphere, this member function should be called with the Boolean argument south set to IlTrue, in which case a false northing of 10,000,000 meters is added.

Parameters
southSpecifies if a false northing is to be set.

◆ setZone()

IlBoolean IlvUniversalTransverseMercatorProjection::setZone ( IlUShort  zone)

Sets the UTM zone to which the projection applies.

The zone index must be included in the range 1 to 60 because there are 60 UTM zones extending from west to east. Zone 1 extends from 180W to 174W. Zone 60 extends from 174E to 180E.
The function returns IlFalse if an invalid UTM zone is specified, and leaves the projection unchanged.

Returns
IlFalse if the UTM zone is invalid, IlTrue otherwise.

◆ write()

virtual void IlvUniversalTransverseMercatorProjection::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 IlvTransverseMercatorProjection.