DotSpatial.Projections
Robinson
TransverseMercator is a class allowing the transverse mercator transform as transcribed
from the 4.6 version of the Proj4 library (pj_tmerc.c)
ITransform
Initializes the parameters from the projection info
The projection information used to control this transform
Transforms all the coordinates by cycling through them in a loop,
transforming each one. Only the 0 and 1 values of each coordinate will be
transformed, higher dimensional values will be copied.
Transforms all the coordinates by cycling through them in a loop,
transforming each one. Only the 0 and 1 values of each coordinate will be
transformed, higher dimensional values will be copied.
Special factor calculations for a factors calculation
Gets or sets the string name of this projection. This should uniquely define the projection,
and controls what appears in the .prj files. This name is required.
Gets or sets the string name of this projection as it is known to proj4, or should appear
in a proj4 string. This name is required to read and write to proj4 strings.
This is the list of alternate names to check besides the Proj4Name. This will not be used
for writing Proj4 strings, but may be helpful for reading them.
Pi/2
Math.Pi / 4
2 * Math.Pi
1E-10
Analytic Hk
Analytic Conv
Analytic Xl Yl
Analytic Xp Yp
Radians to Degrees
Degrees to Radians
The integer index representing lambda values in arrays representing geodetic coordinates
The integer index representing phi values in arrays representing geodetic coordinates
The integer index representing X values in arrays representing linear coordinates
The integer index representing Y values in arrays representing linear coordinates
The integer index representing real values in arrays representing complex numbers
The integer index representing immaginary values in arrays representing complex numbers
The major axis
1/a
1 - e^2;
1/OneEs
Eccentricity
True if the spheroid is flattened
Eccentricity Squared
Central Latitude
Central Longitude
False Easting
False Northing
Scaling Factor
Scaling to meter
Scaling from meter
The B parameter, which should be consisten with the semi-minor axis
Initializes the parameters from the projection info
The projection information used to control this transform
Uses an enumeration to generate a new instance of a known transform class
The member of the KnownTransforms to instantiate
A new ITransform interface representing the specific transform
Transforms all the coordinates by cycling through them in a loop,
transforming each one. Only the 0 and 1 values of each coordinate will be
transformed, higher dimensional values will be copied.
Transforms all the coordinates by cycling through them in a loop,
transforming each one. Only the 0 and 1 values of each coordinate will be
transformed, higher dimensional values will be copied.
Special factor calculations for a factors calculation
lambda-phi
The projection
The Factors
Allows for some custom code during a process method
lambda-phi
The projection coordinate system information
The Factors
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
Transforms cartesian x, y to geodetic lambda, phi
in -> the lambda, phi coordinates
out -> the cartesian x, y
The zero based starting point index. If this is 1, for instance, reading will skip the x and y of the first point and start at the second point.
The integer count of the pairs of xy values to consider.
The inverse transform from linear units to geodetic units
The double values for the input x and y values stored in an array
The double values for the output lambda and phi values stored in an array
The zero based starting point index. If this is 1, for instance, reading will skip the x and y of the first point and start at the second point.
The integer count of the pairs of xy values to consider
This allows for custom behavior to override the base behavior
Gets or sets the string name of this projection as it appears in .prj files and
ESRI wkt. This can also be several names separated by a semicolon.
Gets or sets the string name of this projection as it should appear in proj4 strings.
This can also be several names deliminated by a semicolon.
Gets or sets a list of optional aliases that can be used in the place of the Proj4Name.
This will only be used during reading, and will not be used during writing.
For transforms that distinguish between polar, oblique and equitorial modes
North Pole
South Pole
Equitorial
Oblique
Creates a new instance of Robinson
ObliqueStereographicAlternative
Creates a new instance of ObliqueStereographicAlternative
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
McBrydeThomasFlatPolarSine is a tweaked version of Qaurtic Authalic
QuarticAuthalic
Creates a new instance of QuarticAuthalic
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
Setup
Creates a new instance of McBrydeThomasFlatPolarSine
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
Loximuthal
Creates a new instance of Loximuthal
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
Krovak
NOTES: According to EPSG the full Krovak projection method should have
the following parameters. Within PROJ.4 the azimuth, and pseudo
standard parallel are hardcoded in the algorithm and can't be
altered from outside. The others all have defaults to match the
common usage with Krovak projection.
lat_0 = latitude of centre of the projection
lon_0 = longitude of centre of the projection
** = azimuth (true) of the centre line passing through the centre of the projection
** = latitude of pseudo standard parallel
k = scale factor on the pseudo standard parallel
x_0 = False Easting of the centre of the projection at the apex of the cone
y_0 = False Northing of the centre of the projection at the apex of the cone
Creates a new instance of Krovak
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
Eckert2
Creates a new instance of Eckert2
AlbersConicEqualArea
AlbersEqualArea
Creates a new instance of AlbersEqualArea
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
Internal code handling the setup operations for the transform
Gets or sets the Phi1 parameter
Gets or sets the Phi2 parameter
Creates a new instance of AlbersConicEqualArea
Not sure why we have all these county based Minnesota and Wisconsin projections
CoordinateSystem
Creates a new instance of CoordinateSystem
Retrieves the specified projection given the specified name.
The string name of the projection to obtain information for
Obtains all the members of this category, building a single
array of the projection info classes. This returns the
original classes, not a copy.
The array of projection info classes
Gets the list of names of all the members on this object
Creates a new instance of Minnesota
Africa
Creates a new instance of Africa
Europe
Creates a new instance of Europe
PropertyInfoEM
Gets the first member in the enumerable collection of property info with the specified name.
Determines whether there is a member with the specified name
Wagner6
Creates a new instance of Wagner6
Polygconic
Elliptical Transform supports a built in framework for assuming a
separate function occurs if the spheroid is elliptical
Calculates the forward transformation from geodetic lambda and phi coordinates to
linear xy coordinates for projections that have elliptical earth models.
The input interleaved lambda-phi coordinates where lambda is longitude in radians and phi is latitude in radians.
The resulting interleaved x-y coordinates
The zero based integer start index in terms of coordinate pairs
The integer number of xy pairs to evaluate.
Calculates the forward transformation from geodetic lambda and phi coordinates to
linear xy coordinates for projections that have spherical earth models.
The input interleaved lambda-phi coordinates where lambda is longitude in radians and phi is latitude in radians.
The resulting interleaved x-y coordinates
The zero based integer start index in terms of coordinate pairs
The integer number of xy pairs to evaluate.
Calculates the inverse transformation from linear xy coordinates to geodetic lambda and phi coordinates
for projections that have elliptical earth models.
The input interleaved x-y coordinates
The output interleaved lambda-phi coordinates where lambda is longitude in radians and phi is latitude in radians.
The zero based integer start index in terms of coordinate pairs
The integer number of xy pairs to evaluate.
Calculates the inverse transformation from linear xy coordinates to geodetic lambda and phi coordinates
for projections that have spherical earth models.
The input interleaved x-y coordinates
The output interleaved lambda-phi coordinates where lambda is longitude in radians and phi is latitude in radians.
The zero based integer start index in terms of coordinate pairs
The integer number of xy pairs to evaluate.
Creates a new instance of Polygconic
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
OrthogonalMercator
Creates a new instance of OrthogonalMercator
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
GoodeHomolosine
Creates a new instance of GoodeHomolosine
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
EquidistantCylindrical
Creates a new instance of EquidistantCylindrical
Eckert1
Creates a new instance of Eckert1
BipolarObliqueConformalConic
Creates a new instance of BipolarObliqueConformalConic
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
AzimuthalEquidistant
Creates a new instance of AzimuthalEquidistant
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
Aitoff
Creates a new instance of Aitoff
Parameters
Descriptors are simple classes that are used for storing symbology or other basic characteristics.
They are presumed to be made up of value types and other descriptors, and are expected to be serializable.
This being said, some basic capabilities are supported for randomizing, copying and comparing the
properties of descriptors.
CopyBase
Creates a new instance of CopyBase
Creates a duplicate of this descriptor using MemberwiseClone
A clone of this object as a duplicate
PropertyInfo returns overridden members as separate entries. We would rather work with each members
only one time.
All the properties, including duplicates created by overridden members
An Array of PropertyInfo members
This occurs during the Copy method and is overridable by sub-classes
The duplicate descriptor
IDescriptor
Matching is defined as being a different object, but having properties
that would make it indistinguishable from the comparision property.
This is an alternative to overriding the equals behavior in cases
where you might ALSO need to see if the object reference is the same.
Tests this object against the comparison object. If any of the
value type members are different, or if any of the properties
are IMatchable and do not match, then this returns false.
The other IMatcheable object of the same type
The list of property names that do not match
Boolean, true if the properties are comparably equal.
IRandomizable
This method will set the values for this class with random values that are
within acceptable parameters for this class.
An existing random number generator so that the random seed can be controlled
This copies the public descriptor properties from the specified object to
this object.
An object that has properties that match the public properties on this object.
Creates a new instance of MatchableObject
For each of the publicly accessible properties found on this object, this attempts
to copy a public property from the source object of the same name, if it can find it.
For each matching property name/type, it will attempt to copy the value.
The
Compares the properties of this object with the specified IMatchable other.
This does not test every property of other, but does test every property
of this item. As long as the other item has corresponding properties
for every property on this item, the items are said to match.
The IMatchable interface allows custom definitions of matching.
For collections to match, all of their sub-members must match.
The default behavior is to cycle through all the properties of this
object, and call Randomize on any that implement the IRandomizable interface.
The Random seed generator for controling how the random content is created
This occurs while copying properties from the specified source, and
is the default handling for subclasses
This gives sub-classes the chance to directly override, control or otherwise tamper
with the matching process. This is also where normal matching is performed,
so to replace it, simply don't call the base.OnMatch method. To tweak the results,
the base method should be performed first, and the results can then be modified.
This allows overrideable behavior that can replace or extend the basic behavior,
which is to call Randomize on any public properties that are listed as randomizeable.
This does nothing to normal properties or non public members and needs to be overriden
to provide the special case functionality for sub-classes.
The random number generator to be used during randomization
EsriString
Writes the value in the format that it would appear in within a prj file
The a nested portion of the total esri string.
This reads the string and attempts to parse the relavent values.
The string to read
Creates a new instance of Parameters
Creates a new projection and automaticalyl reads in the proj4 string
THe proj4String to read in while defining the projection
If this is a geographic coordinate system, this will show decimal degrees. Otherwise,
this will show the linear unit units.
Gets a boolean that is true if the proj4 string created by the projections matches.
There are multiple ways to write the same projection, but the output proj4 string
should be a good indicator of whether or not they are the same.
The other projection to compare with.
Boolean, true if the projections are the same.
Open a given prj filename
Exports this projection info by saving it to a *.prj file.
The prj file to save to
Gets the lambda 0, or central meridian, in radial coordinates
Gets the phi 0 or latitude of origin in radial coordinates
Gets the lat_1 parameter multiplied by radians
Gets the lat_2 parameter multiplied by radians
Gets the lon_1 parameter in radians
Gets the lon_2 parameter in radians
Obtains the double valued parameter if it is found and can be parsed to a double.
The name of the parameter to return as a double value.
The double valued parameter of the specified name, or zero.
Obtains the double valued parameter after converting from degrees to radians.
The name of the parameter to read
The double valued parameter in radians.
Obtains the integer valued parameter if it is found and can be parsed to an integer
The string name of the parameter to find
An integer value representing the parameter if it was found.
Sets the lambda 0, or central meridian in radial coordinates
The value of Lambda 0 in radians
Sets the phi 0 or latitude of origin in radial coordinates
Expresses the entire projection as the ESRI well known text format that can be found in .prj files
The generated string
Attempts to generate a new proj4 string based on the current projection parameters,
regardless of whether they were read from a proj4 file or from an esri projection file.
Attempts to parse known parameters from the set of proj4 parameters
Using the specified code, this will attempt to look up the related reference information
from the appropriate pcs code.
Parses the entire projection from an esri string. In some cases, this will have
default projection information since only geographic information is obtained.
The ESRI string to parse
Gets or sets the auxiliary sphere type.
Gets or sets the Reference Code
Gets or sets the athority, for example EPSG
Gets or sets the name of this projection information
The geographic information
The false easting for this coordinate system
The false northing for this coordinate system
The horizontal 0 point in geographic terms
The scale factor for this coordinate system
The zero point in geographic terms
The line of latitude where the scale information is preserved.
The unit being used for measurements.
Gets or sets a boolean indicating whether this projection applies to the
southern coordinate system or not.
Gets or sets the integer zone parameter if it is specified.
Gets or sets a boolean that indicates whether or not this
projection is geocentric.
True if this coordinate system is expressed only using geographic coordinates
Gets or sets the transform that converts between geodetic coordinates and projected coordinates.
Gets or sets a boolean indicating a geocentric latitude parameter
Gets or sets a boolean for the over-ranging flag
Gets or sets the parameters, including special parameters, stored by
the string names.
A boolean that indicates whether the proj4 parameter "nodefs" appears.
NationalGridsJapan
Creates a new instance of NationalGridsJapan
Meridian
Creates a new instance of Meridian
Generates a custom meridian given a name and a longitude
The longitude to use
The string name for this meridian
Creates a new meridian from one of the known, proj4 meridian locations.
Presumably the longitudes here correspond to various standard meridians
rather than some arbitrary longitudes of capital cities.
One of the enumerations listed
Creates a new meridian from one of the known, proj4 meridian locations.
The string name of the meridian to use
Reads the integer code (possibly only an internal GDAL code) for the Meridian.
The value can be from 8901 (Greenwich) to 8913 (Oslo). This will also alter
the name and longitude for this meridian.
The integer meridian code.
Changes the longitude to correspond with the specified standard meridian
Attempts to parse the parameters in order to read the meridian
Writes the longitude and prime meridian content to the esri string
A string that is formatted for an esri prj file
Reads content from an esri string, learning information about the prime meridian
Gets or sets the code. Setting this will not impact the longitude or name.
In order to read a standard code (8901-8913) use the ReadCode method.
Gets or sets the string name
Gets or sets the longitude where the prime meridian for this geographic coordinate occurs.
Australia
Creates a new instance of Australia
Wenzel, H.-G.(1985): Hochauflösende Kugelfunktionsmodelle für
das Gravitationspotential der Erde. Wiss. Arb. Univ. Hannover
Nr. 137, p. 130-131.
Creates a new instance of GeocentricGeodetic
Converts lon, lat, height to x, y, z where lon and lat are in radians and everything else is meters
Converts x, y, z to lon, lat, height
Converts geocentric x, y, z coords to geodetic lon, lat, h
Converts geocentric x, y, z coords to geodetic lon, lat, h
Wagner5
Mollweide also acts as the base for Wag4 and Wag5
Creates a new instance of Mollweide
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
Finalizes the setup based on the provided P paraemter
Gets or sets the x coefficient
Gets or sets the y coefficient value
Gets or sets the P coefficient
Creates a new instance of Wagner5
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
NewZealandMapGrid
Creates a new instance of NewZealandMapGrid
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
MillerCylindrical
Creates a new instance of MillerCylindrical
LongLat
Creates a new instance of LongLat
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
LambertAzimuthalEqualArea
Creates a new instance of LambertAzimuthalEqualArea
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
Projected
Creates a new instance of Projected
Given the string name, this will return the specified coordinate category
Gets an array of all the names of the coordinate system categories
in this collection of systems.
StatePlaneNad1983Harn
Creates a new instance of StatePlaneNad1983Harn
NationalGridsSweden
Creates a new instance of NationalGridsSweden
This interface defines how reprojection classes should be accessed
Reprojects the specified points. The first is the projection info to start from, while the destination
is the projection to end with.
Unit
Creates a new instance of Unit
Generates the Esri string from the values in this class
The resulting esri string
Reads an esri string to determine the angular unit
The esri string to read
Gets or sets the name of this
Gets or sets the constant to multiply against this unit to get radians.
Wagner4
Creates a new instance of Wagner4
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
SwissObliqueMercator
Creates a new instance of SwissObliqueMercator
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
Cassini
Creates a new instance of Cassini
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
Spheroid (Defaults to WGS84)
Creates a new instance of Spheroid
Creates a new spheroid using an the equatorial radius in meters and
a flattening coefficient that is the inverse flattening factor.
eg. for WGS84 (6378137.0, 298.257223563)
The semi-major axis
The inverse of the flattening factor
For perfect spheres, you just need to specify one radius, which will be
applied to both radii. You can then directly change the polar or
equatorial radius if necessary using the properties.
The radius of the sphere
The ellps parameter in a proj4 string will only work with certain
pre-defined spheroids, enumerated in the Proj4Ellipsoids enumeration.
Custom spheroids can be specified but will use the a and b parameters
when creating a proj4 parameter instead of using the ellps parameter.
Any of several predefined geographic ellipses
Given the proj4 code, this will set the radii correctly.
Assigns a known projection that is defined by a two character SEDRIS code,
using nothing but that code.
The two character SEDRIS code defining 22 distinct ellipsoids.
Given the enumeration of known ellipsoids, this will redefine this spheroid
so that it matches the A and B coefficients for the known ellipsoids.
The known Ellipse
Calculates the flattening factor, (a - b) / a.
Uses the current known ellipsoid to return a code name for the proj4 string if possible.
Otherwise, this returns the radial parameters a and b.
Calculates the eccentrity according to e = sqrt(2f - f^2) where f is the flattening factor.
Calculates the square of eccentricity according to es = (2f - f^2) where f is the flattening factor.
Calculates the inverse of the flattening factor, commonly saved to ESRI projections,
or else provided as the "rf" parameter for Proj4 strings. This is simply calculated
as a / (a - b) where a is the semi-major axis and b is the semi-minor axis.
Gets a boolean that is true if the spheroid has been flattened.
Boolean, true if the spheroid is oblate (or flattened)
Sets the value by using the current semi-major axis (Equatorial Radius) in order to
calculate the semi-minor axis (Polar Radius).
Converts the spheroid parameters into a valid esri expression that uses the semi-major axis
and the reciprocal flattening factor
Reads the ESRI string to define the spheroid, which controls how flattened the earth's radius is
Gets or sets the two character Synthetic Environment Data
Representation and Interchange Specification (SEDRIS) code
eg. AA represents Airy 1830. Setting this will not modify the values,
To read a SEDRIS Code use the constructor or AssignKnownEllipsoid overload.
Each of the enumerated known ellipsoids is encoded by an ellps parameter specified by
the corresponding string value. Ellipsoids that are not found here or are specified
as "Custom" in the enuemration will be replaced with an 'a' and a 'b' parameter instead.
Gets or sets the string name of the spheroid.
e.g.: WGS_1984
A spheroid is a pole flattened (oblate) sphere, with the radii of two axes being equal and longer
than the third. This is the radial measure of one of these major axes in meters.
e.g. 6,378,137 for WGS 84
A spheroid is a pole flattened (oblate) sphere, with the radii of two axes being equal and longer
than the third. This is the radial measure of the smaller polar axis in meters. One option is
to specify this directly, but it can also be calculated using the major axis and the flattening factor.
WorldSpheroid
Creates a new instance of WorldSpheroid
UtmNad1983
Creates a new instance of UtmNad1983
IndianSubcontinent
Creates a new instance of IndianSubcontinent
GaussKrugerPulkovo1942
Creates a new instance of GaussKrugerPulkovo1942
PhiLam has two double values and is used like a coordinate.
Geodetic Phi coordinate (latitude)
Geodetic Lambda coordinate (longitude)
Unit
Creates a new instance of Unit
Generates the part of the ESRI well known text for this linear unit
A string that contains the name and conversion factor to meters
Parses the UNIT member of ESRI well known text into a linear unit
Interprets a UOM code. For instance 9001 = meters.
These codes and ratios were from GDAL unit_of_measure.csv, and I'm not
sure if the numeric code is used outside of GDAL internal references.
Gets or sets the name of this
Gets or sets the constant to multiply with maps distances to get the distances in meters
Asia
Creates a new instance of Asia
Proj contains frequently used static helper methods for doing projection calculations
Effectively 1 but with a tolerance of 1E-14
1E-50
Tolerant Arcsin
Tolerant ArcCosine
Tollerant Sqrt
Tollerant Math.Atan method.
Calculates the hypotenuse of a triangle: Sqrt(x*x + y*y);
The length of one orthogonal leg of the triangle
The length of the other orthogonal leg of the triangle
The length of the diagonal.
Determines latitude from authalic latitude
Epsilon squared
The array of double values for the apa parameter
Obtains the authalic latitude
Obtains the EN parameters for the Meridional distance
Meridonal length function
Wisconsin
Creates a new instance of Wisconsin
Proj4Meridians
Greenwich, England
Lisbon, Portugal
Paris, France
Bogota, Colombia
Madrid, Spain
Rome, Italy
Berne, Switzerland
Jakarta, Indonesia
Brasil
Brussels, Belgiuum
Stockholm, Sweden
Athens, Greece
Oslo, Norway
SouthAmerica
Creates a new instance of SouthAmerica
VanderGrinten1
Creates a new instance of VanderGrinten1
LambertEqualAreaConic
Creates a new instance of LambertEqualAreaConic
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
LambertConformalConic
Creates a new instance of the Lambert Conformal Conic projection
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
Special factor calculations for a factors calculation
lambda-phi
The projection
The Factors
StatePlaneOther
Creates a new instance of StatePlaneOther
Nad1983IntlFeet
Creates a new instance of Nad1983IntlFeet
KrugerZian1980
Creates a new instance of KrugerZian1980
GaussKrugerPulkovo1995
Creates a new instance of GaussKrugerPulkovo1995
Proj4Datums
World Geodetic System 1984
Greek Geodetic Reference system 1987
North American Datum 1983
North American Datum 1927
Potsdam Rauenburg 1950 DHDN
Carthage 1934 Tunisia
Hermannskogel
Ireland 1965
New Zealand Grid
Airy 1830
Africa
Abidjan 1987
Creates a new instance of Africa
MatchableEM
This tests the public properties from the two objects. If any properties implement
the IMatchable interface, and do not match, this returns false. If any public
properties are value types, and they are not equal, then this returns false.
This matchable item
The other item to compare to this item
Boolean, true if there is a match
ProjectionErrorCodes
Creates a new projection exception with the appropriate message code
Creates a new projection exception with the specified message
Returns a string message given the correct numeric code.
Gets the error code that was used when this exception was created
World
Creates a new instance of World
SouthAmerica
Creates a new instance of SouthAmerica
NadRecord is a single entry from an lla file
Converts degree values into radians
I think this converts micro-seconds of arc to radians
The character based id for this record
The lower left coordinate
The delta lambda and delta phi for a single cell
The total count of coordinates in the lambda direction
The total count of coordinates in the phi direction
The set of conversion matrix coefficients for lambda
Creates a blank nad Table
This initializes a new table with the assumption that the offset is 0
The resource location
This initializes a new table with the assumption that the offset needs to be specified
because in gsb files, more than one table is listed, and this is a subtable.
The resource location
The offset marking the start of the header in the file
Given the resource setup, this causes the file to read the
Reads a double in BigEndian format (consistent with ntv1 and ntv2 formats.)
The binary reader
The double value parsed from the binary in big endian byte order.
Gets the double value from the specified position in the byte array
Using BigEndian format.
This method parses the extension of a resource location and
creates the new resource type.
Gets or sets the string name for this record
Gets or sets the lower left corner in radians
Gets or sets the angular cell size in radians
Gets or sets the integer count of phi coefficients
Gets or sets the integer count of lambda coefficients
These represent smaller, higher resolution subgrids that should fall within the extents
of the larger grid. If this list exists, and there is a fit here, it should be used
in preference to the low-resolution main grid.
Gets or sets the array of lambda coefficients organized
in a spatial Table (phi major)
Gets or sets a boolean indicating whether or not the values have been filled.
Gets or sets the location this table should look for source data.
Gets or sets the long integer data offset where the stream should skip to to begin reading data
Gets or sets the format being used.
World
Creates a new instance of World
Overrides the NadTable methods in the context of an lla resource file.
An LlaNadTable constructor
The Manifest Assembly resource location
Normally, cloning an object starts with MemberwiseClone, which
creates a shallow copy of the object. For any members that
derive from the Descriptor, however, any public properties
or fields that implement ICloneable are copied (deep copy behavior).
This is not always desirable, even if the member CAN be copied.
This attribute causes the deep copy behavior to skip over
properties marked with this attribute.
PutinsP1
Creates a new instance of PutinsP1
GeneralSinusoidal
Sinusoidal
Creates a new instance of Sinusoidal
Handles the original configuration of sinusoidal transforms
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
Gets or sets the double M value
Gets or sets the N value
Creates a new instance of GeneralSinusoidal
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
StatePlaneNad1983HarnFeet
Creates a new instance of StatePlaneNad1983HarnFeet
StatePlaneNad1983
Michigan Geo Ref 2008
Creates a new instance of StatePlaneNad1983
GaussKrugerOther
Creates a new instance of GaussKrugerOther
SolarSystem
Creates a new instance of SolarSystem
CountySystems
Creates a new instance of CountySystems
FieldInfo
Determines whether there is a member with the specified name
UniversalTransverseMercator
TransverseMercator
Creates a new instance of TransverseMercator
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
The forward transform in the special case where there is no flattening of the spherical model of the earth.
The input lambda and phi geodetic values organized in an array
The output x and y values organized in an array
The zero based integer start index
The integer count of the number of xy pairs in the lp and xy arrays
The forward transform where the spheroidal model of the earth has a flattening factor,
matching more closely with the oblique spheroid of the actual earth
The double values for geodetic lambda and phi organized into a one dimensional array
The double values for linear x and y organized into a one dimensional array
The zero based integer start index
The integer count of the number of xy pairs in the lp and xy arrays
Performs the inverse transform from a single coordinate of linear units to the same coordinate in geodetic lambda and
phi units in the special case where the shape of the earth is being approximated as a perfect sphere.
The double linear input x and y values organized into a 1 dimensional array
The double geodetic output lambda and phi values organized into a 1 dimensional array
The zero based integer start index
The integer count of the number of xy pairs in the lp and xy arrays
Performs the inverse transfrom from a single coordinate of linear units to the same coordinate in geodetic units
The double linear input x and y values organized into a 1 dimensional array
The double geodetic output lambda and phi values organized into a 1 dimensional array
The zero based integer start index
The integer count of the number of xy pairs in the lp and xy arrays
Creates a new instance of UniversalTransverseMercator. The only difference
for this one is that the proj4 name is a little different and when reading
from proj4, we have to parse the zone and south parameters in order to
create the transverse mercator projection.
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
Mercator
Creates a new instance of Mercator
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
Kavraisky6
Creates a new instance of Kavraisky6
GeostationarySatellite
Creates a new instance of GeostationarySatellite
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
Gauss Kruger is basically transverse mercator
Creates a new instance of GaussKruger
IProjectionCategory
Gets or sets the main category for this projection
Gets or sets the category for this projection
Gets or sets the string name
Gets or sets the proj4 string that defines this projection
Antarctica
Creates a new instance of Antarctica
Datum
Creates a new instance of Datum
uses a string name of a standard datum to create a new instance of the Datum class
The string name of the datum to use
Uses a Proj4Datums enumeration in order to specify a known datum to
define the spheroid and to WGS calculation method and parameters
The Proj4Datums enumeration specifying the known datum
Compares two datums to see if they are actually describing the same thing and
therefore don't need to be transformed.
The other datum to compare against
The boolean result of the operation.
Creates an esri well known text string for the datum part of the string
The datum portion of the esri well known text
parses the datum from the esri string
The string to parse values from
Reads the proj4 parameters and parses out the ones that control the
datum.
Originally ported from pj_datum_set.c
Gets or sets the name of the datum defining the spherical characteristics of the model of the earth
The spheroid of the earth, defining the maximal radius and the flattening factor
Gets or sets the set of double parameters, (this can either be 3 or 7 parameters)
used to transform this
Gets or sets the datum type, which clarifies how to perform transforms to WGS84
Gets or sets an english description for this datum
Gets or sets the array of string nadGrid
TransformManager
Creates a new instance of TransformManager
Given the proj4 string, returns the matching transform eg: tmerc.
The string name
The ITransform that has the matching proj4 name
Given the .prj name (ESRI wkt), returns the matching transform
The string name for the trnasform eg. Transverse_Mercator
The ITransform that has the matching ESRI wkt name
The entire list of transforms
Gets the default instance of the transform manager
ObliqueCylindricalEqualArea
Creates a new instance of ObliqueCylindricalEqualArea
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
GallStereographic
Creates a new instance of GallStereographic
Foucaut is a tweaked version of QuarticAuthalic that uses tan mode.
Creates a new instance of Foucaut
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
CylindricalEqualArea
Creates a new instance of CylindricalEqualArea
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
Bonne
Creates a new instance of Bonne
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
StateSystems
Creates a new instance of StateSystems
NatGridsAustralia
Creates a new instance of NatGridsAustralia
Orthographic
Creates a new instance of Orthographic
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
Kavraisky5 is just a tweaked version of Quartic Authalic
Creates a new instance of Kavraisky5
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
EquidistantConic
Creates a new instance of EquidistantConic
This exists in the case that we ever develop code to perform the special proj4 calculations
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
AnalyticCodes
Derivatives of lon analytic
Derivatives of lat analytic
h and k are analytic
convergence analytic
A strongly-typed resource class, for looking up localized strings, etc.
Returns the cached ResourceManager instance used by this class.
Overrides the current thread's CurrentUICulture property for all
resource lookups using this strongly typed resource class.
Looks up a localized string similar to The name %S was found for more than one lla Table in the Nad folder..
Looks up a localized string similar to No arguments in initialization list.
Looks up a localized string similar to The reciprocal flattening (1/f) = 0.
Looks up a localized string similar to The Latitude was greater than 90 or less than -90.
Looks up a localized string similar to The square of eccentricity cannot be a negative value..
Looks up a localized string similar to The given semi-major axis was 0 or not given..
Looks up a localized string similar to The Latitude or Longitude exceeded limits.
Looks up a localized string similar to The cartesian X or Y coordinate was invalid.
Looks up a localized string similar to The Degree Minute Second value is formed imporperly.
Looks up a localized string similar to The inverse meridinal distance was non-convergent.
Looks up a localized string similar to The inverse Phi2 value was non-converngent.
Looks up a localized string similar to The ArcCosign or ArcSign value was too large..
Looks up a localized string similar to No options found in 'init' file.
Looks up a localized string similar to Tolerance Condition Error.
Looks up a localized string similar to The conic lat_1 value cannot be its -lat_2.
Looks up a localized string similar to Latitude 1 cannot be greater than or equal to 90.
Looks up a localized string similar to Latitude 2 cannot be equal to 0.
Looks up a localized string similar to The lat_ts parameter cannot be greater than or equal to 90.
Looks up a localized string similar to There was no distance between the control points.
Looks up a localized string similar to Projection not selected to be rotated.
Looks up a localized string similar to W <= 0 or M <= 0.
Looks up a localized string similar to lsat not in 1-5 range.
Looks up a localized string similar to Path not in range.
Looks up a localized string similar to No colon in init= string.
Looks up a localized string similar to H was negative or 0.
Looks up a localized string similar to K was less than 0.
Looks up a localized string similar to The central latitude was 0 or 90 or alpha = 90.
Looks up a localized string similar to Lat_1 = lat_2 or lat_1 = 0 or lat_2 = 90.
Looks up a localized string similar to Elliptical Usage Required.
Looks up a localized string similar to The UTM zone parameter was invalid.
Looks up a localized string similar to The arguments were out of range for Tcheby eval.
Looks up a localized string similar to Failed to find projection to be rotated.
Looks up a localized string similar to Failed to load NAD27-83 correction file.
Looks up a localized string similar to Both n and m must be specified and > 0.
Looks up a localized string similar to Projection not named.
Looks up a localized string similar to N<= 0, n > 1 or not specified.
Looks up a localized string similar to lat_1 or lat_2 not specified.
Looks up a localized string similar to |lat_1| =|lat_2| .
Looks up a localized string similar to lat_0 is pi/2 from mean lat.
Looks up a localized string similar to Failed to parse coordinate system definition.
Looks up a localized string similar to Geocentric transformation missing z or ellips.
Looks up a localized string similar to Uknown prime meridian conversion ID.
Looks up a localized string similar to UnknownProjectionId.
Looks up a localized string similar to Effective eccentricity = 1.
Looks up a localized string similar to Unkown unit conversion ID.
Looks up a localized string similar to Invalid boolean parameter argument.
Looks up a localized string similar to The elliptical parameter ellps= was unkown.
Looks up a localized string similar to There was an index mismatch problem with the specified file..
Looks up a localized string similar to Inverse grid shift iteration faield, presumably at grid edge. Using first approximation..
Looks up a localized string similar to Inverse grid shift iterator failed to converge..
UtmNad1927
Creates a new instance of UtmNad1927
TransverseMercator
Creates a new instance of TransverseMercator
NationalGridsNewZealand
Creates a new instance of NationalGridsNewZealand
GeographicSystems
Creates a new instance of GeographicSystems
Given the string name, this will return the specified coordinate category
Gets an array of all the names of the coordinate system categories
in this collection of systems.
KnownTransforms
Aitoff
Albers Equal Area
Azimuthal Equidistant
Bipolar Oblique Conformal Conic
Bonne
Cassini
Craster Parabolic
Cylindrical Equal Area
Eckert 1
Eckert 2
Eckert 3
Eckert 4
Eckert 5
Eckert 6
Elliptical Transform
Equidistant Conic
Equidistant_Cylindrical
Foucaut
Gall Stereographic
General Sinusoidal
Geostationary Satellite
Gnomonic
Goode Homolosine
Hammer Aitoff
Kavraisky 5
Kavraisky 7
Krovak
Lambert Azimuthal Equal Area
Lambert Conformal Conic
Lambert Equal Area Conic
Latitude / Longitude
Loximuthal
McBryde Thomas Flat Polar Sine
Mercator
Miller Cylindrical
Mollweide
New Zealand Map Grid
Oblique Cylindrical Equal Area
Oblique Mercator
Oblique Stereographic Alternative
Orthographic
Polyconic
PutinsP1
Quartic Authalic
Robinson
Sinusoidal
Stereographic
Swiss Oblique Mercator
Transverse Mercator
Two Point Equidistant
Universal Polar Stereographic
Universal Transverse Mercator
Vander Grinten 1
Wagner 4
Wagner 5
Wagner 6
Winkel 1
Winkel 2
Winkel Tripel
HotineObliqueMercatorAzimuthalCenter - Used to properly direct the Swiss Oblique Mercator
when it appears as Hotine Oblique Mercator Azimuthal Center. At current, the Azimuth
parameter is ignored as I don't know how to send it into Proj4.
Creates a new instance of HotineObliqueMercatorAzimuthalCenter
HammerAitoff
Creates a new instance of HammerAitoff
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
GaussKrugerBeijing1954
Creates a new instance of GaussKrugerBeijing1954
NadTables
Creates a new instance of NadTables
Gets an array of the lla tables that have been added as a resource
MeridinalDistance
Formerly pj_enfn from Proj4
Formerly pj_mlfn
Given geodetic angular displacement phi, this calculates the equivalent meridional distance
The geodetic angular displacement
Formerly pj_inv_mlfn
Given the linear distance, this calculates the equivalent geodetic angular displacement
GridShift
Applies either a forward or backward gridshift based on the specified name
Checks the edges to make sure that we are not attempting to interpolate
from cells that don't exist.
The cell index in the phi direction
The cell index in the lambda direction
The Table with the values
A PhiLam that has the shift coefficeints.
CloneableEM
The type parameter T is optional, so the intended use would be like:
ObjectType copy = myObject.Copy();
The type of the object
The original object
A new object of the same type as the type being copied.
AuxiliarySphereTypes
This indicates that this parameter should not appear in the projection string.
Use semimajor axis or radius of the geographic coordinate system
Use semiminor axis or radius
Calculate and use authalic radius
Use authalic radius and convert geodetic latitudes to authalic latitudes
Winkel2
Creates a new instance of Winkel2
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
StereographicNorthPole
Stereographic
Creates a new instance of Stereographic
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
Creates a new instance of StereographicNorthPole
Gnomonic
Creates a new instance of Gnomonic
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
Factors
derivatives of x for lambda
derivatives of x for phi
derivatives of y for lambda
derivatives of y for phi
Meridinal scale
parallel scale
Angular distortion
theta prime
Convergence
Areal scale factor
max scale error
min scale error
Info as to analytics
Mercator
Creates a new instance of Mercator
n' is a calculation based on the eccentricity
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
UtmOther
Creates a new instance of UtmOther
StatePlaneNad1983Feet
Creates a new instance of StatePlaneNad1983Feet
SpheroidBased
Lambert 2 (Central France)
Lambert 2 (Étendu)
Creates a new instance of SpheroidBased
NationalGrids
Creates a new instance of NationalGrids
Europe
Creates a new instance of Europe
GridShiftTableFormats
The data format used by ntv1
The data format used by ntv2 and many others
The data format use by several other grid types
Handles the specific case of dat files like the ntv1 file format.
Creates a new instance of GsbNadTable
Winkel1
Creates a new instance of Winkel1
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
Gauss
Creates a new instance of Gauss
Eckert6
Creates a new instance of Eckert6
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
CrasterParabolic
Creates a new instance of CrasterParabolic
A strongly-typed resource class, for looking up localized strings, etc.
Returns the cached ResourceManager instance used by this class.
Overrides the current thread's CurrentUICulture property for all
resource lookups using this strongly typed resource class.
Looks up a localized string similar to Michigan GeoRef (2008).
Polar
Creates a new instance of Polar
NationalGridsCanada
Creates a new instance of NationalGridsCanada
Asia
Creates a new instance of Asia
Proj4Ellipsoids
Custom will use the a parameter for the major axis and the
rf parameter for the flattening divisor
MERIT 1983
Soviet Geodetic System 85
Geodetic Reference System 1980(IUGG, 1980)
International Astronomical Union 1976
Sir George Biddell Airy 1830 (Britain)
App. Physics. 1965
Naval Weapons Lab., 1965
Modified Airy
Andrae 1876 (Den., Iclnd.)
Austrailian National and South American 1969
Geodetic Reference System 67 (IUGG 1967)
Bessel 1841
Bessel 1841 (Namibia)
Clarke 1866
Clarke 1880 Modified
Comm. des Poids et Mesures 1799
Delambre 1810 (Belgium)
Engelis 1985
Everest 1830
Everest 1948
Everest 1956
Everest 1969
Everest (Sabah and Sarawak)
Everest (Pakistan)
Fischer (Mercury Datum) 1960
Modified Fischer 1960
Fischer 1968
Helmert 1906
Hough
Indonesian 1974
International 1909
Krassovsky 1942
Kaula 1961
Lerch 1979
Maupertius 1738
New International 1967
Plessis 1817 (France)
Southeast Asia
Walbekc (Germany)
World Geodetic System 1960
World Geodetic System 1966
World Geodetic System 1972
World Geodetic System 1984
Normal Sphere
KnownCoordinateSystems
Geographic systems operate in angular units, but can use different
spheroid definitions or angular offsets.
Projected systems are systems that use linear units like meters or feet
rather than angular units like degrees or radians
SpheroidBased
Creates a new instance of SpheroidBased
NorthAmerica
Creates a new instance of NorthAmerica
This is a special case of a NadTable and has specific reading techniques that need to be handled
Creates a new instance of GsbNadTable
This handles the creation of the
Gets the double value from the specified position in the byte array
Using BigEndian format.
WinkelTripel
Creates a new instance of WinkelTripel
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
TwoPointEquidistant
Creates a new instance of TwoPointEquidistant
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
Eckert5
Creates a new instance of Eckert5
StatePlaneNad1927
Creates a new instance of StatePlaneNad1927
NationalGridsNorway
Creates a new instance of NationalGridsNorway
UniversalPolarStereographic
Creates a new instance of UniversalPolarStereographic
Initializes the transform using the parameters from the specified coordinate system information
A ProjectionInfo class contains all the standard and custom parameters needed to initialize this transform
Eckert4
Creates a new instance of Eckert4
Reproject
The xy array should be in interleaved set of xy coordinates like [x1, y1, x2, y2, ... xn, yn]
The z array is the array of all the z values
UtmWgs1984
Creates a new instance of UtmWgs1984
NorthAmerica
Creates a new instance of NorthAmerica
GeographicInfo
Creates a new instance of GeographicInfo
Generates an esri string from the information in this geographic info class, including the name, datum, meridian, and unit.
Reads an esri string in order to parse the datum, meridian and unit as well as the name.
The string to parse
Reads in parameters from the proj4 string that control the datum and prime meridian
The dictionary of all the parameter names and values in string form
Gets or sets the datum
eg: D_WGS_1984
Gets or sets the prime meridian longitude of the 0 mark, relative to Greenwitch
Gets or sets the geographic coordinate system name
eg: GCS_WGS_1984
Gets or sets the units
Oceans
Creates a new instance of Oceans
Eckert3
Creates a new instance of Eckert3
UtmWgs1972
Creates a new instance of UtmWgs1972
DatumTypes
The datum type is not with a well defined ellips or grid-shift
The datum transform to WGS84 can be defined using 3 double parameters
The datum transform to WGS84 can be defined using 7 double parameters
The transform requires a special nad gridshift
The datum is already the WGS84 datum