paperscale

Set figure properties for printing at specified map scale

Syntax

paperscale(paperdist,punits,surfdist,sunits)
paperscale(paperdist,punits,surfdist,sunits,lat,long)
paperscale(paperdist,punits,surfdist,sunits,lat,long,az)
paperscale(paperdist,punits,surfdist,sunits,lat,long,az,gunits)
paperscale(paperdist,punits,surfdist,sunits,lat,long,az,gunits,
radius)
paperscale(scale,...)
[paperXdim,paperYdim] = paperscale(...)

Description

paperscale(paperdist,punits,surfdist,sunits) sets the figure paper position to print the map in the current axes at the desired scale. The scale is described by the geographic distance that corresponds to a paper distance. For example, a scale of 1 inch = 10 kilometers is specified as degrees(1,'inch',10,'km'). See below for an alternate method of specifying the map scale. The surface distance units sunits can be any unit recognized by unitsratio. The paper units punits can be any dimensional units recognized for the figure PaperUnits property.

paperscale(paperdist,punits,surfdist,sunits,lat,long) sets the paper position so that the scale is correct at the specified geographic location. If omitted, the default is the center of the map limits.

paperscale(paperdist,punits,surfdist,sunits,lat,long,az) also specifies the direction along which the scale is correct. If omitted, 90 degrees (east) is assumed.

paperscale(paperdist,punits,surfdist,sunits,lat,long,az,gunits) also specifies the units in which the geographic position and direction are given. If omitted, 'degrees' is assumed.

paperscale(paperdist,punits,surfdist,sunits,lat,long,az,gunits,
radius)
uses the last input to determine the radius of the sphere. radius can be one of the values supported by km2deg, or it can be the (numerical) radius of the desired sphere in zunits. If omitted, the default radius of the Earth is used..

paperscale(scale,...), where the numeric scale replaces the two property/value pairs, specifies the scale as a ratio between distance on the sphere and on paper. This is commonly notated on maps as 1:scale (e.g. 1:100 000, or 1:1 000 000). For example, paperscale(100000) or paperscale(100000,lat,long).

[paperXdim,paperYdim] = paperscale(...) returns the computed paper dimensions. The dimensions are in the paper units specified. For the scale calling form, the returned dimensions are in centimeters.

Background

Maps are usually printed at a size that allows an easy comparison of distances measured on paper to distances on the Earth. The relationship of geographic distance and paper distance is termed scale. It is usually expressed as a ratio, such as 1 to 100,000 or 1:100,000 or 1 cm = 1 km.

Examples

The small circle measures 10 cm across when printed.

axesm mercator
[lat,lon] = scircle1(0,0,km2deg(5));
plotm(lat,lon)
[x,y] = paperscale(1,'centimeter',1,'km'); [x y]

ans =
       13.154       12.509

set(gca,'pos', [ 0 0 1 1])
[x,y] = paperscale(1,'centimeter',1,'km'); [x y]

ans =
       10.195       10.195

Limitations

The relationship between the paper and geographic coordinates holds only as long as there are no changes to the display that affect the axes limits or the relationship between geographic coordinates and projected coordinates. Changes of this type include the ellipsoid or scale factor properties of the map axes, or adding elements to the display that cause MATLAB® to modify the axes autoscaling. To be sure that the scale is correct, execute paperscale just before printing.

Introduced before R2006a