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) or mdistort parameter displays contours of distortion for the specified parameter. Recognized parameter strings are 'area', 'angles' for the maximum angular distortion of right angles, 'scale' or 'maxscale' for the maximum scale, 'minscale' for the minimum scale, 'parscale' for scale along the parallels, 'merscale' for scale along the meridians, and 'scaleratio' for the ratio of maximum and minimum scale. If omitted, the 'maxscale' parameter is displayed. All parameters are displayed as percent distortion except angles, which are displayed in degrees.

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 contourgroup 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.


Example 1

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

axesm mercator
load coast
plotm(lat, long,'color',.5*[1 1 1])
mdistort('area', [1 30 100 200 500 1000])

Example 2

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

axesm bonne
load coast
framem;plotm(lat, long,'color',.5*[1 1 1])
mdistort('angles', 0:15:90)

Example 3

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)

More About

collapse all


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.

Was this topic helpful?