Main Content


Display contours of constant map distortion


mdistort off
mdistort parameter
h = mdistort(...)


mdistort, with no input arguments, toggles the display of contours of projection-induced distortion on the current map axes. The magnitude of the distortion is reported in percent.

mdistort off removes the contours.

mdistort parameter displays contours of distortion for the specified parameter. Recognized parameters are:

Parameter Value
'angles'maximum angular distortion of right angles
'scale' or 'maxscale'maximum scale (the default)
'minscale'minimum scale
'parscale'scale along the parallels
'merscale'scale along the meridians
'scaleratio'ratio of maximum and minimum scale

mdistort(parameter,levels) specifies the levels for which the contours are drawn. levels is a vector of values as used by contour. If empty, the default levels are used.

mdistort(parameter,levels,gsize) controls the size of the underlying graticule matrix used to compute the contours. gsize is a two-element vector containing the number of rows and columns. If omitted, the default Mapping Toolbox™ graticule size of [50 100] is assumed.

h = mdistort(...) returns a handle to the contour group object containing the contours and text.


Map projections inevitably introduce distortions in the shape and size of objects as they are transformed from three-dimensional spherical coordinates to two-dimensional Cartesian coordinates. The amount and type of distortion vary between projections, over the projection, and with the selection of projection parameters such as standard parallels. This function provides a quantitative graphical display of distortion parameters.

mdistort is not intended for use with UTM. Distortion is minimal within a given UTM zone. mdistort issues a warning if a UTM projection is encountered.


collapse all

The extreme area distortion of the Mercator projection. This makes it ill-suited for global displays.

axesm mercator
load coastlines
plotm(coastlat,coastlon,'color',.5*[1 1 1])
mdistort('area', [1 30 100 200 500 1000])

Figure contains an axes. The axes contains 3 objects of type patch, line, contour.

The lines of zero distortion for the Bonne projection follow the central meridian and the standard parallel.

axesm bonne
load coastlines
plotm(coastlat,coastlon,'color',.5*[1 1 1])
mdistort('angles', 0:15:90)

Figure contains an axes. The axes contains 4 objects of type patch, line, contour.

An equidistant conic projection with properly chosen parallels can map the conterminous United States with less than 1.5% distortion.

usamap conus
load conus
patchm(uslat, uslon, [1 0.7 0])
plotm(statelat, statelon)
patchm(gtlakelat, gtlakelon, 'cyan')
framem off; gridm off; mlabel off; plabel off
mdistort('parscale', -2:.5:2)


mdistort can help in the placement of standard parallels for projections. Standard parallels are generally placed to minimize distortion over the region of interest. The default parallel locations might not be appropriate for maps of smaller regions. By using mdistort and parallelui, you can immediately see how the movement of parallels reduces distortion.