|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object uk.me.jstott.jcoord.CoordinateSystem uk.me.jstott.jcoord.MGRSRef
public class MGRSRef
This class is part of the Jcoord package. Visit the Jcoord website for more information.
Class to represent a Military Grid Reference System (MGRS) reference.
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:
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.
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.
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).
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.
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.
Methods are provided to query an MGRSRef
object for its
parameters. As MGRS references are related to UTM references, a
method is provided to
convert an toUTMRef()
MGRSRef
object into a
object. The reverse conversion can be made using the
UTMRef
constructor.
MGRSRef(UTMRef)
MGRSRef
objects can be converted to
objects using the
LatLng
method. The reverse
conversion is made using the
toLatLng()
method.
LatLng.toMGRSRef()
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.
(c) 2006 Jonathan Stott
Created on 25-Feb-2006
Field Summary | |
---|---|
static int |
PRECISION_10000M
Used to indicate a required precision of 10000m (10km). |
static int |
PRECISION_1000M
Used to indicate a required precision of 1000m (1km). |
static int |
PRECISION_100M
Used to indicate a required precision of 100m. |
static int |
PRECISION_10M
Used to indicate a required precision of 10m. |
static int |
PRECISION_1M
Used to indicate a required precision of 1m. |
Constructor Summary | |
---|---|
MGRSRef(int utmZoneNumber,
char utmZoneChar,
char eastingID,
char northingID,
int easting,
int northing,
int precision)
Create a new MGRS reference object from the given paramaters. |
|
MGRSRef(int utmZoneNumber,
char utmZoneChar,
char eastingID,
char northingID,
int easting,
int northing,
int precision,
boolean isBessel)
Create a new MGRS reference object from the given paramaters. |
|
MGRSRef(java.lang.String ref)
Create a new MGRS reference object from the given String. |
|
MGRSRef(java.lang.String ref,
boolean isBessel)
Create a new MGRS reference object from the given String. |
|
MGRSRef(UTMRef utm)
Create a new MGRS reference object from the given UTM reference. |
|
MGRSRef(UTMRef utm,
boolean isBessel)
Create a new MGRS reference object from the given UTM reference. |
Method Summary | |
---|---|
int |
getEasting()
|
char |
getEastingID()
|
int |
getNorthing()
|
char |
getNorthingID()
|
int |
getPrecision()
|
char |
getUtmZoneChar()
|
int |
getUtmZoneNumber()
|
boolean |
isBessel()
|
LatLng |
toLatLng()
Convert this MGRS reference to a latitude and longitude. |
java.lang.String |
toString()
Return a String representation of this MGRS Reference to whatever precision this reference is set to. |
java.lang.String |
toString(int precision)
Return a String representation of this MGRS reference to 1m, 10m, 100m, 1000m or 10000m precision. |
UTMRef |
toUTMRef()
Convert this MGRS reference to an equivelent UTM reference. |
Methods inherited from class uk.me.jstott.jcoord.CoordinateSystem |
---|
getDatum, setDatum |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final int PRECISION_10000M
public static final int PRECISION_1000M
public static final int PRECISION_100M
public static final int PRECISION_10M
public static final int PRECISION_1M
Constructor Detail |
---|
public MGRSRef(UTMRef utm)
utm
- a UTM reference.public MGRSRef(UTMRef utm, boolean isBessel)
utm
- a UTM reference.isBessel
- true if the parameters represent an MGRS reference using the
Bessel 1841 ellipsoid; false is the parameters represent an MGRS
reference using the GRS 1980, International or WGS84 ellipsoids.public MGRSRef(int utmZoneNumber, char utmZoneChar, char eastingID, char northingID, int easting, int northing, int precision) throws java.lang.IllegalArgumentException
utmZoneNumber
- the UTM zone number representing the longitude.utmZoneChar
- the UTM zone character representing the latitude.eastingID
- character representing the 100,000km easting square.northingID
- character representing the 100,000km easting square.easting
- easting in metres.northing
- northing in metres.precision
- the precision of the given easting and northing. Must be one of
MGRSRef.PRECISION_1M, MGRSRef.PRECISION_10M,
MGRSRef.PRECISION_100M, MGRSRef.PRECISION_1000M or
MGRSRef.PRECISION_10000M.
java.lang.IllegalArgumentException
- if any of the given parameters are invalid.public MGRSRef(int utmZoneNumber, char utmZoneChar, char eastingID, char northingID, int easting, int northing, int precision, boolean isBessel) throws java.lang.IllegalArgumentException
utmZoneNumber
- the UTM zone number representing the longitude.utmZoneChar
- the UTM zone character representing the latitude.eastingID
- character representing the 100,000km easting square.northingID
- character representing the 100,000km easting square.easting
- easting in metres.northing
- northing in metres.precision
- the precision of the given easting and northing. Must be one of
MGRSRef.PRECISION_1M, MGRSRef.PRECISION_10M,
MGRSRef.PRECISION_100M, MGRSRef.PRECISION_1000M or
MGRSRef.PRECISION_10000M.isBessel
- true if the parameters represent an MGRS reference using the
Bessel 1841 ellipsoid; false is the parameters represent an MGRS
reference using the GRS 1980, International or WGS84 ellipsoids.
java.lang.IllegalArgumentException
- if any of the given parameters are invalid. Note that the
parameters are only checked for the range of values that they can
take on. Being able to create an MGRSRef object does not
necessarily imply that the reference is valid.public MGRSRef(java.lang.String ref) throws java.lang.IllegalArgumentException
ref
- a String to create an MGRS reference from.
java.lang.IllegalArgumentException
- if the given String is not correctly. formattedpublic MGRSRef(java.lang.String ref, boolean isBessel) throws java.lang.IllegalArgumentException
ref
- a String to create an MGRS reference from.isBessel
- true if the parameters represent an MGRS reference using the
Bessel 1841 ellipsoid; false is the parameters represent an MGRS
reference using the GRS 1980, International or WGS84 ellipsoids.
java.lang.IllegalArgumentException
- if the given String is not correctly. formattedMethod Detail |
---|
public UTMRef toUTMRef()
public LatLng toLatLng()
toLatLng
in class CoordinateSystem
public java.lang.String toString()
toString
in class java.lang.Object
public java.lang.String toString(int precision)
precision
- One of MGRSRef.PRECISION_1M, MGRSRef.PRECISION_10M,
MGRSRef.PRECISION_100M, MGRSRef.PRECISION_1000M,
MGRSRef.PRECISION_10000M.
public int getEasting()
public char getEastingID()
public boolean isBessel()
public int getNorthing()
public char getNorthingID()
public int getPrecision()
public char getUtmZoneChar()
public int getUtmZoneNumber()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |