GeoRegistry
Description
- Derived from
-
SerializableBase abstract
IGeoRegistry
The GeoRegistry stores geo-referencing metadata and provide lookup mechanism.
The following figure illustrates the geo registry object model:
+---------------+
| UnitOfMeasure | Units of measure for length, angle, scale
+---------------+
|
| +----------------+ Well-known geodetic datum, with defined
| | GeodeticDatum | ellipsoid and prime meridian
| +----------------+
| ^ |
| +-----------+ | | Ellipsoid parameters, with a length unit
+---> | Ellipsoid | ----+ | for the semi-major and semi-minor axes
| +-----------+ | |
| | |
| +-----------+ | | Prime meridian, with an angular unit for
+---> | Meridian | ----+ | the base longitude, relative to Greenwich
| +-----------+ |
| V
| +-------------------------------+ A geographic coordinate system with
+---> | CoordinateSystem (geographic) | longitude and latitude, specified in an
| +-------------------------------+ angular unit.
| source target
| | |
| V V
| +----------------+ Transformation between two geographic
| | DatumOperation | coordinate system with different datums
| +----------------+
|
| +---------------------+ Transformation between geographic
| | CoordinateOperation | coordinates (latitude, longitude) and map
| +---------------------+ coordinates (easting, northing)
| |
| V
| +-------------------------------+ A projected coordinate system with easting
+---> | CoordinateSystem (projected) | and northing, specified in a length unit
| +-------------------------------+
|
| +----------------+ A well-known vertical datum, for example
| | VerticalDatum | ellipsoidal or gravity-related height
| +----------------+
| |
| V
| +------------------------------+ A vertical coordinate system, typically
+---> | CoordinateSystem (vertical) | in combination with a geographic
+------------------------------+ coordinate system.
Public / Constructors
Load
2 overloads
Loads a geo registry from a file.
- IOException
-
If an I/O error has occurred.
- LicenceException
-
If LicenceDomain.Tinman is still locked.
Loads a geo registry from a stream.
- IOException
-
If an I/O error has occurred.
- LicenceException
-
If LicenceDomain.Tinman is still locked.
Public / Methods
Put
3 overloads
Puts all geo objects of the given other in geo registry into this one.
When a geo object is registered for the first time, the given code will become its primary code. Only primary codes are returned for reverse lookups. Registering the same geo object with more codes will only add aliases for the primary code.
Puts the given geo object into the registry, overwriting already existing mappings.
When a geo object is registered for the first time, the given code will become its primary code. Only primary codes are returned for reverse lookups. Registering the same geo object with more codes will only add aliases for the primary code.
Puts the given geo object into the registry, overwriting already existing mappings.
When a geo object is registered for the first time, the given code will become its primary code. Only primary codes are returned for reverse lookups. Registering the same geo object with more codes will only add aliases for the primary code.
Save
2 overloads
Saves this geo registry to a file.
- IOException
-
If an I/O error has occurred.
Saves this geo registry to a stream.
- IOException
-
If an I/O error has occurred.
Public / Attributes
BuiltIn
The built-in geo registry (a subset of the EPSG Geodetic dataset, see https://epsg.org).
This registry contains the following built-in geo objects (notation: EPSG code(alias,…) : link to geo object):
-
UnitOfMeasure (EPSG Units)
-
EPSG 1028: UnitOfMeasure.PartsPerBillion -
EPSG 9001: UnitOfMeasure.Metre -
EPSG 9002: UnitOfMeasure.Foot -
EPSG 9036: UnitOfMeasure.Kilometre -
EPSG 9101: UnitOfMeasure.Radian -
EPSG 9102: UnitOfMeasure.Degree -
EPSG 9103: UnitOfMeasure.ArcMinute -
EPSG 9104: UnitOfMeasure.ArcSecond -
EPSG 9105: UnitOfMeasure.Grad -
EPSG 9201: UnitOfMeasure.Unity -
EPSG 9202: UnitOfMeasure.PartsPerMillion
-
-
Ellipsoid (EPSG Ellipsoids)
-
EPSG 1024: Ellipsoid.CGCS2000 -
EPSG 1025: Ellipsoid.GSK_2011 -
EPSG 1026: Ellipsoid.Zach_1812 -
EPSG 7001: Ellipsoid.Airy_1830 -
EPSG 7002: Ellipsoid.Airy_Modified_1849 -
EPSG 7003: Ellipsoid.Australian_National_Spheroid -
EPSG 7004: Ellipsoid.Bessel_1841 -
EPSG 7005: Ellipsoid.Bessel_Modified -
EPSG 7008: Ellipsoid.Clarke_1866 -
EPSG 7010: Ellipsoid.Clarke_1880_Benoit -
EPSG 7011: Ellipsoid.Clarke_1880_IGN -
EPSG 7012: Ellipsoid.Clarke_1880_RGS -
EPSG 7013: Ellipsoid.Clarke_1880_Arc -
EPSG 7014: Ellipsoid.Clarke_1880_SGA_1922 -
EPSG 7015: Ellipsoid.Everest_1830_1937_Adjustment -
EPSG 7016: Ellipsoid.Everest_1830_1967_Definition -
EPSG 7018: Ellipsoid.Everest_1830_Modified -
EPSG 7019: Ellipsoid.GRS_1980 -
EPSG 7020: Ellipsoid.Helmert_1906 -
EPSG 7021: Ellipsoid.Indonesian_National_Spheroid -
EPSG 7022: Ellipsoid.International_1924 -
EPSG 7024: Ellipsoid.Krassowsky_1940 -
EPSG 7025: Ellipsoid.NWL_9D -
EPSG 7027: Ellipsoid.Plessis_1817 -
EPSG 7028: Ellipsoid.Struve_1860 -
EPSG 7029: Ellipsoid.War_Office -
EPSG 7030: Ellipsoid.WGS_84 -
EPSG 7031: Ellipsoid.GEM_10C -
EPSG 7032: Ellipsoid.OSU86F -
EPSG 7033: Ellipsoid.OSU91A -
EPSG 7036: Ellipsoid.GRS_1967 -
EPSG 7041: Ellipsoid.Average_Terrestrial_System_1977 -
EPSG 7043: Ellipsoid.WGS_72 -
EPSG 7044: Ellipsoid.Everest_1830_1962_Definition -
EPSG 7045: Ellipsoid.Everest_1830_1975_Definition -
EPSG 7048: Ellipsoid.GRS_1980_Authalic_Sphere -
EPSG 7049: Ellipsoid.IAG_1975 -
EPSG 7050: Ellipsoid.GRS_1967_Modified -
EPSG 7051: Ellipsoid.Danish_1876 -
EPSG 7052: Ellipsoid.Clarke_1866_Authalic_Sphere -
EPSG 7053: Ellipsoid.Hough_1960 -
EPSG 7054: Ellipsoid.PZ_90 -
EPSG 7055: Ellipsoid.Clarke_1880_international_foot -
EPSG 7056: Ellipsoid.Everest_1830_RSO_1969 -
EPSG 7057: Ellipsoid.International_1924_Authalic_Sphere -
EPSG 7058: Ellipsoid.Hughes_1980
-
-
PrimeMeridian (EPSG Prime Meridians)
-
EPSG 1026: PrimeMeridian.Copenhagen -
EPSG 8901: PrimeMeridian.Greenwich -
EPSG 8902: PrimeMeridian.Lisbon -
EPSG 8903: PrimeMeridian.Paris -
EPSG 8904: PrimeMeridian.Bogota -
EPSG 8905: PrimeMeridian.Madrid -
EPSG 8906: PrimeMeridian.Rome -
EPSG 8907: PrimeMeridian.Bern -
EPSG 8908: PrimeMeridian.Jakarta -
EPSG 8909: PrimeMeridian.Ferro -
EPSG 8910: PrimeMeridian.Brussels -
EPSG 8911: PrimeMeridian.Stockholm -
EPSG 8912: PrimeMeridian.Athens -
EPSG 8913: PrimeMeridian.Oslo -
EPSG 8914: PrimeMeridian.Paris_RGS
-
-
GeodeticDatum (EPSG Datums)
-
EPSG 6258: GeodeticDatum.ETRS89 -
EPSG 6326: GeodeticDatum.WGS84
-
-
VerticalDatum (EPSG Datums)
-
EPSG 9903: VerticalDatum.Ellipsoidal -
EPSG 9915: VerticalDatum.Unspecified
-
-
CoordinateSystem (EPSG Coordinate Reference Systems)
-
EPSG 3857: CoordinateSystem.PopularMercator -
EPSG 4258: CoordinateSystem.ETRS89 -
EPSG 4937: CoordinateSystem.ETRS89_3D -
EPSG 4326: CoordinateSystem.WGS84 -
EPSG 4979: CoordinateSystem.WGS84_3D
-
-
CoordinateOperation (EPSG Conversions)
-
EPSG 3856: CoordinateOperation.PopularMercator
-
-
CoordinateOperationMethod (EPSG Coordinate Operation Methods)
-
EPSG 1024: CoordinateOperationMethod.PopularMercator -
EPSG 1028 (1029): CoordinateOperationMethod.Equirectangular -
EPSG 9801 (9802, 9826, 1102): CoordinateOperationMethod.LambertConic -
EPSG 9803: CoordinateOperationMethod.LambertConic_Belgium -
EPSG 1051: CoordinateOperationMethod.LambertConic_Michigan -
EPSG 9817: CoordinateOperationMethod.LambertConic_NearConformal -
EPSG 9804 (9805, 1026): CoordinateOperationMethod.Mercator -
EPSG 9806: CoordinateOperationMethod.Cassini -
EPSG 9807 (9808, 1111): CoordinateOperationMethod.TransverseMercator -
EPSG 9809: CoordinateOperationMethod.ObliqueStereographic -
EPSG 9810: CoordinateOperationMethod.PolarStereographic -
EPSG 9812: CoordinateOperationMethod.ObliqueMercatorA -
EPSG 9815: CoordinateOperationMethod.ObliqueMercatorB -
EPSG 9820 (1027): CoordinateOperationMethod.LambertAzimuthal -
EPSG 9822: CoordinateOperationMethod.Albers -
EPSG 9829: CoordinateOperationMethod.PolarStereographic -
EPSG 9835 (9834): CoordinateOperationMethod.LambertCylindrical
-
Current
Returns the active geo registry for the calling thread.
The active geo registry is found by the following logic:
-
The registry that has been specified for the thread-local scope, by the innermost call pair to IGeoRegistry.CurrentLocalPush and CurrentLocalPop.
-
The registry that has been specified for the global scope, by the innermost call pair to IGeoRegistry.CurrentGlobalPush and CurrentGlobalPop.
-
The built-in registry, see BuiltIn.
- See also
CurrentInherit
Wraps the active registry of the calling thread, for being inherited by other threads.
This method returns a IBeginEnd object that calls IGeoRegistry.CurrentLocalPush and CurrentLocalPop for IBeginEnd.Begin and IBeginEnd.End, using the active registry of the calling thread, obtained via Current.