Namespace containing classes for converting between various geographical coordinate systems

Classes

  ClassDescription
CoordinateSystem
Base class for classes defining co-ordinate systems.
ECEFRef
ECEF (earth-centred, earth-fixed) Cartesian co-ordinates are used to define a point in three-dimensional space. ECEF co-ordinates are defined relative to an x-axis (the intersection of the equatorial plane and the plane defined by the prime meridian), a y-axis (at 90° to the x-axis and its intersection with the equator) and a z-axis (intersecting the North Pole). All the axes intersect at the point defined by the centre of mass of the Earth.
IrishRef
Class to represent an Irish National Grid reference.

Irish National Grid

  • Projection: Transverse Mercator
  • Reference ellipsoid: Modified Airy
  • Units: metres
  • Origin: 53°30'N, 8°W
  • False co-ordinates of origin: 200000m east, 250000m north

LatLng
Class to represent a latitude/longitude pair based on a particular datum.
MGRSRef
Class to represent a Military Grid Reference System (MGRS) reference.

Military Grid Reference System (MGRS)

The Military Grid Reference System (MGRS) is an extension of the Universal Transverse Mercator (UTM) reference system. An MGRS reference is made from 5 parts:

UTM Longitude Zone

This is a number indicating which UTM longitude zone the reference falls into. Zones are numbered from 1 (starting at 180°W) through 60. Each zone is 6° wide.

UTM Latitude Zone

Latitude is split into regions that are 8° high, starting at 80°S. Latitude zones are lettered using C through X, but omitting I and O as they can easily be confused with the numbers 1 and 0.

100,000m Square identification

Each UTM zone is treated as a square 100,000m to a side. The 50,000m easting is centred on the centre-point of the UTM zone. 100,000m squares are identified using two characters - one to identify the row and one to identify the column.

Row identifiers use the characters A through V (omitting I and O again). The sequence is repeated every 2,000,000m from the equator. If the UTM longitude zone is odd, then the lettering is advanced by five characters to start at F.

Column identifiers use the characters A through Z (again omitting I and O).

Easting and northing

Each 100,000m grid square is further divided into smaller squares representing 1m, 10m, 100m, 1,000m and 10,000m precision. The easting and northing are given using the numeric row and column reference of the square, starting at the bottom-left corner of the square.

MGRS Reference Example

18SUU8362601432 is an example of an MGRS reference. '18' is the UTM longitude zone, 'S' is the UTM latitude zone, 'UU' is the 100,000m square identification, 83626 is the easting reference to 1m precision and 01432 is the northing reference to 1m precision.

MGRSRef

Methods are provided to query an MGRSRef object for its parameters. As MGRS references are related to UTM references, a ToUTMRef()()() method is provided to convert an MGRSRef object into a UTMRef object. The reverse conversion can be made using the MGRSRef(UTMRef) constructor.

MGRSRef objects can be converted to LatLng objects using the ToLatLng()()() method. The reverse conversion is made using the ToMGRSRef()()() method.

Some MGRS references use the Bessel 1841 ellipsoid rather than the Geodetic Reference System 1980 (GRS 1980), International or World Geodetic System 1984 (WGS84) ellipsoids. Use the constructors with the optional boolean parameter to be able to specify whether your MGRS reference uses the Bessel 1841 ellipsoid. Note that no automatic determination of the correct ellipsoid to use is made.

Important note: There is currently no support for MGRS references in polar regions north of 84°N and south of 80°S. There is also no account made for UTM zones with slightly different sizes to normal around Svalbard and Norway.

NotDefinedOnUtmGridException
NotDefinedOnUtmGridException exception class
OSRef

Class to represent an Ordnance Survey of Great Britain (OSGB) grid reference.

British National Grid

  • Projection: Transverse Mercator
  • Reference ellipsoid: Airy 1830
  • Units: metres
  • Origin: 49°N, 2°W
  • False co-ordinates of origin: 400000m east, -100000m north

A full reference includes a two-character code identifying a particular 100,000m grid square. The table below shows how the two-character 100,000m grid squares are identified. The bottom left corner is at the false origin of the grid. Squares without values fall outside the boundaries of the British National Grid.

km 0 100 200 300 400 500 600 700
1200 HL HM HN HO HP JL JM
1100 HQ HR HS HT HU JQ JR
1000 HV HW HX HY HZ JV JW
900 NA NB NC ND NE OA OB
800 NF NG NH NJ NK OF OG OH
700 NL NM NN NO NP OL OM ON
600 NQ NR NS NT NU OQ OR OS
500 NW NX NY NZ OV OW OX
400 SB SC SD SE TA TB TC
300 SG SH SJ SK TF TG TH
200 SM SN SO SP TL TM TN
100 SQ SR SS ST SU TQ TR TS
0 SV SW SX SY SZ TV TW

Within each 100,000m square, the grid is further subdivided into 1000m squares. These 1km squares are shown on Ordnance Survey 1:25000 and 1:50000 mapping as the main grid. To reference a 1km square, give the easting and then the northing, e.g. TR2266. In this example, TR represents the 100,000m square, 22 represents the easting (in km) and 66 represents the northing (in km). This is commonly called a four-figure grid reference.

It is possible to extend the four-figure grid reference for more accuracy. For example, a six-figure grid reference would be accurate to 100m and an eight-figure grid reference would be accurate to 10m.

When providing local references, the 2 characters representing the 100,000m square are often omitted.

UTMRef
Class to represent a Universal Transverse Mercator (UTM) reference.

Enumerations

  EnumerationDescription
EastWest
Enumerated type defining whether a longitude is east or west of the prime meridian
NorthSouth
Enumerated type defining whether a latitude is North or South of the equator
Precision
Enumerated type used to indicate the required precision