The ConvertLonLatToMGRS method converts a set of geographic latitude/longitude coordinates for a vector file to Military Grid Reference System (MGRS) coordinates within the same coordinate system.

Example


The following example converts a set of lon/lat coordinates in a vector file to MGRS coordinates.

; Launch the application
e = ENVI(/HEADLESS)
 
file = FILEPATH('qb_boulder_msi_vectors.shp', $
  SUBDIRECTORY = ['data'], ROOT_DIR=e.Root_Dir)
 
; Create an ENVIVector from the shapefile data
vector = e.OpenVector(file)
 
; Retrieve a reference to the coordinate system
VectCoords=vector.COORD_SYS
 
; Provide a set of lon/lat coordinates
Lon = -105.20870000D
Lat = 40.00320278D
 
VectCoords.ConvertLonLatToMGRS, Lon, Lat, MGRS
PRINT, 'Lon/Lat coordinates: ',Lon, Lat
PRINT, 'MGRS coordinates: ',MGRS

Syntax


ENVICoordSys.ConvertLonLatToMGRS, Lon, Lat, MGRS [, Keywords=value]

Arguments


Lon

The longitude coordinate. You can specify a scalar or a vector of longitude values; if it is a vector, the Lat argument should also be a vector with the same number of elements:

Lon = [-123.58, -134.64]
Lat = [48.23, 49.56]

Lat

The latitude coordinate

MGRS

A named variable that contains a string with the returned MGRS coordinates

Keywords


ERROR

Set this keyword to a named variable that will contain any error message issued during execution of this routine. If no error occurs, the ERROR variable will be set to a null string (''). If an error occurs and the routine is a function, then the function result will be undefined.

When this keyword is not set and an error occurs, ENVI returns to the caller and execution halts. In this case, the error message is contained within !ERROR_STATE and can be caught using IDL's CATCH routine. See IDL Help for more information on !ERROR_STATE and CATCH.

See Manage Errors for more information on error handling in ENVI programming.

NUM_DIGITS

Set this keyword to an integer between 0 and 8 to change the precision (the number of digits in the northing and easting) of the returned MGRS coordinates. If this keyword is not set, the number of digits returned is 5 (1-square-meter precision).

ROUND

When converting UTM coordinates to an MGRS grid, or when abbreviating an MGRS grid to lower precision, a common and preferred method is to truncate the easting and northing values so that the MGRS string will be located in the same 100 km grid square. This is the default method that ENVI uses.

Set this keyword if you want to round the easting and northing values, which might mean that the MGRS string uses the next 100 km grid square.

MODE

Set this keyword to one of the following integers to determine the format in describing a point on an MGRS grid:

  • 0: Automatic (default)
  • 1: All spheroids are treated the same as WGS-84
  • 2: All spheroids are treated the same as Clarke 1866 or Bessel
  • 10: Automatic; a longitude value of +180 is in Zone 1
  • 11: All spheroids are treated the same as WGS-84; a longitude value of +180 is in Zone 1
  • 12: All spheroids are treated the same as Clarke 1866 or Bessel; a longitude value of +180 is in Zone 1

Version History


ENVI 5.1

Introduced

API Version


4.2

See Also


ENVICoordSys, ENVICoordSys::ConvertMGRSToLonLat