C# Class MapAround.CoordinateSystems.Transformations.GeocentricTransform

Implements a geocentric transformation.

Latitude, Longitude and ellipsoidal height in terms of a 3-dimensional geographic system may by expressed in terms of a geocentric (earth centered) Cartesian coordinate reference system X, Y, Z with the Z axis corresponding to the earth's rotation axis positive northwards, the X axis through the intersection of the prime meridian and equator, and the Y axis through the intersection of the equator with longitude 90 degrees east. The geographic and geocentric systems are based on the same geodetic datum.

Geocentric coordinate reference systems are conventionally taken to be defined with the X axis through the intersection of the Greenwich meridian and equator. This requires that the equivalent geographic coordinate reference systems based on a non-Greenwich prime meridian should first be transformed to their Greenwich equivalent. Geocentric coordinates X, Y and Z take their units from the units of the ellipsoid axes (a and b). As it is conventional for X, Y and Z to be in metres, if the ellipsoid axis dimensions are given in another linear unit they should first be converted to metres.

Inheritance: MathTransform
Show file Open project: gkrsu/maparound.core

Protected Properties

Property Type Description
_inverse MathTransform
_isInverse bool
_parameters List

Public Methods

Method Description
GeocentricTransform ( List parameters, bool isInverse ) : System

Initializes a new instance of the MapAround.CoordinateSystems.Transformations.GeocentricTransform.

Inverse ( ) : IMathTransform

Creates the inverse transform of this object.

This method may fail if the transform is not one to one.

Invert ( ) : void

Inverts this transform.

Transform ( double point ) : double[]

Transforms a coordinate point.

The passed parameter point should not be modified.

TransformList ( List points ) : List

Transforms a list of coordinate point ordinal values.

Private Methods

Method Description
DegreesToMeters ( double lonlat ) : double[]

Converts coordinates in decimal degrees to projected meters.

GeocentricTransform ( List parameters ) : System

Initializes a new instance of the MapAround.CoordinateSystems.Transformations.GeocentricTransform.

MetersToDegrees ( double pnt ) : double[]

Converts coordinates in projected meters to decimal degrees.

Method Details

GeocentricTransform() public method

Initializes a new instance of the MapAround.CoordinateSystems.Transformations.GeocentricTransform.
public GeocentricTransform ( List parameters, bool isInverse ) : System
parameters List List of parameters to initialize the projection
isInverse bool Indicates whether the projection forward (meters to degrees or degrees to meters)
return System

Inverse() public method

Creates the inverse transform of this object.
This method may fail if the transform is not one to one.
public Inverse ( ) : IMathTransform
return IMathTransform

Invert() public method

Inverts this transform.
public Invert ( ) : void
return void

Transform() public method

Transforms a coordinate point.
The passed parameter point should not be modified.
public Transform ( double point ) : double[]
point double An array containing the point coordinates to transform
return double[]

TransformList() public method

Transforms a list of coordinate point ordinal values.
public TransformList ( List points ) : List
points List Packed ordinates of points to transform
return List

Property Details

_inverse protected property

protected MathTransform,MapAround.CoordinateSystems.Transformations _inverse
return MathTransform

_isInverse protected property

protected bool _isInverse
return bool

_parameters protected property

protected List _parameters
return List