Mapping Toolbox | ![]() ![]() |
Figure paper size for a given 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(...)
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.
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 which corresponds to a paper distance. For example, a scale of 1 inch = 10 kilometer is specified as degrees(1,'inch',10,'km')
. See below for an alternate method of specifying the map scale. The surface distance units string sunits
can be any string recognized by distdim
. The paper units string can be any dimensional units string 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. If radius
is a string, then it is evaluated as an almanac
body to determine the spherical radius. If numerical, it is the radius of the desired sphere in the same units as the surface distance. 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.
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 geoid 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.
See Also
pagedlg |
Page position dialog box |
axesscale |
Resize axes for equivalent scale |
daspectm |
Figure DataAspectRatio property for a map |
![]() | org2pol | par2geod | ![]() |