Main Content

minvtran

(To be removed) Unproject features from map to geographic coordinates

minvtran will be removed in a future release. In most cases, use the projinv function instead. If the mapprojection field of the current axesm-based map or specified map projection structure is 'globe', then use the ecef2geodetic function instead. For more information, see Version History.

Syntax

[lat,lon] = minvtran(x,y)
[lat,lon,alt] = minvtran(x,y,z)
[...] = minvtran(mstruct,...)

Description

[lat,lon] = minvtran(x,y) applies the inverse transformation defined by the map projection in the current axesm-based map. Using minvtran, you can convert point locations and line and polygon vertices in a planar, projected map coordinate system to latitudes and longitudes.

[lat,lon,alt] = minvtran(x,y,z) applies the inverse projection to 3-D input, resulting in 3-D output. If the input Z is empty or omitted, then Z = 0 is assumed.

[...] = minvtran(mstruct,...) takes a valid map projection structure as the first argument. In this case, no axesm-based map is needed.

Examples

Before using minvtran, it is necessary to create a map projection structure. You can do this with axesm or the defaultm function:

mstruct = defaultm('mercator');
mstruct.origin = [38.89 -77.04 0];
mstruct = defaultm(mstruct);

The following latitude and longitude data for the District of Columbia is obtained from the usastatelo shapefile:

dc = shaperead('usastatelo', 'UseGeoCoords', true,...
     'Selector',{@(name) strcmpi(name,'District of Columbia'),...
     'Name'});
lat = [dc.Lat]';
lon = [dc.Lon]';
[lat lon]
ans =

   38.9000  -77.0700
   38.9500  -77.1200
   39.0000  -77.0300
   38.9000  -76.9000
   38.7800  -77.0300
   38.8000  -77.0200
   38.8700  -77.0200
   38.9000  -77.0700
   38.9000  -77.0700
       NaN       NaN

This data can be projected into Cartesian coordinates of the Mercator projection using the projfwd function:

[x,y] = projfwd(mstruct,lat,lon);
[x y]
ans =

   -0.0004    0.5745
   -0.0011    0.5753
    0.0001    0.5762
    0.0019    0.5745
    0.0001    0.5724
    0.0003    0.5727
    0.0003    0.5739
   -0.0004    0.5745
   -0.0004    0.5745
       NaN       NaN

To transform the projected x-y data back into the unprojected geographic system, use the minvtran function:

[lat2,lon2] = minvtran(mstruct,x,y);
[lat2 lon2]
ans =

   70.1302  -77.0987
   70.1729  -77.1969
   70.2157  -77.0204
   70.1300  -76.7659
   70.0276  -77.0205
   70.0447  -77.0010
   70.1046  -77.0009
   70.1302  -77.0987
   70.1302  -77.0987
       NaN       NaN

Version History

Introduced before R2006a

expand all

R2023a: Warns

The minvtran function issues a warning that it will be removed in a future release. In most cases, use the projinv function instead. If the mapprojection field of the current axesm-based map or specified map projection structure is 'globe', then use the ecef2geodetic function instead.

This table shows some typical uses of the minvtran function and how to update your code to use the projinv function instead.

Will Be RemovedRecommended
[lat,lon,alt] = minvtran(x,y);
mstruct = gcm;
[lat,lon] = projinv(mstruct,x,y);
[lat,lon,alt] = minvtran(mstruct,x,y);
[lat,lon] = projinv(mstruct,x,y);

This table shows some typical uses of the minvtran function and how to update your code to use the ecef2geodetic function instead.

Will Be RemovedRecommended
[lat,lon,alt] = minvtran(x,y,z);
mstruct = gcm;
[lat,lon,alt] = ecef2geodetic(x,y,z,mstruct.geoid);
[lat,lon,alt] = minvtran(mstruct,x,y,z);
[lat,lon,alt] = ecef2geodetic(x,y,z,mstruct.geoid);

If the value of the mapprojection field of the map projection structure is listed in this table, then you must specify all linear units in meters, including coordinates and map projection structure fields. After you have projected the coordinates, you can convert them to other units using the unitsratio function.

ValueProjection Name

'tranmerc'

Transverse Mercator

'mercator'

Mercator

'lambertstd'

Lambert Conformal Conic

'eqaazim'

Lambert Azimuthal Equal Area

'eqaconicstd'

Albers Equal-Area Conic

'eqdazim'

Azimuthal Equidistant

'eqdconicstd'

Equidistant Conic

'ups'

Polar Stereographic

'stereo'

Oblique Stereographic

'eqdcylin'

Equirectangular

'cassinistd'

Cassini-Soldner

'gnomonic'

Gnomonic

'miller'

Miller Cylindrical

'ortho'

Orthographic

'polyconstd'

Polyconic

'robinson'

Robinson

'sinusoid'

Sinusoidal

'vgrint1'

Van der Grinten

'eqacylin'

Equal Area Cylindrical