05 - matlab m_map地学绘图工具基础函数 - 设置比例尺指北针
- 0. 引言
- 1. 关于m_scale
- 2. 关于m_ruler
- 3. 关于m_northarrow
- 4. 结语
0. 引言
本篇介绍下m_map
中添加指北针(m_northarrow
)、比例尺(m_ruler
)和进行比例缩放(m_scale
)的函数及其用法 。
1. 关于m_scale
m_scale
用于图件 比例缩放。可以将图件调整到合适的绘图区域,也可以强制地图以特定的比例显示,该命令往往在m_grid
命令之后调用。
m_scale
函数的一般形式为:
scale_factor=m_scale(scale_factor)
其中,scale_factor
表示绘制1:scale_factor
比例尺的地图。例如: 1:500,可理解为图上距离1cm,实地距离为500km。此外,可以直接使用m_scale()
获取当前地图使用的比例尺数值。
下面是一个示例,第一幅图
使用默认参数,打印当前绘图比例尺为scale_factor = 2.3674e+07
;第二幅图
使用m_scale
对绘图比例尺做了修改。对比发现,第二幅图有明显被缩放。
% 官网示例修改
clc;clear;
m_proj('lambert','lat',[5 24],'long',[105 125]);
set(gcf,'color','w') % Set background colour before m_image call
caxis([-6000 0]);
colormap(flipud([flipud(m_colmap('blues',10));m_colmap('jet',118)]));
m_etopo2('shadedrelief','gradient',3);
m_gshhs_i('patch',[.8 .8 .8]);
m_grid('box','fancy');
%scale_factor = m_scale() % 第一幅图:返回默认绘图比例尺 >> 2.3674e+07
m_scale(3e7) % 第二幅图:设置绘图比例尺 >> 3e7
ax=m_contfbar(.97,[.5 .9],[-6000 0],[-6000:100:000],'edgecolor','none','endpiece','no');
xlabel(ax,'meters','color','k');
|
|
2. 关于m_ruler
m_ruler
函数用于绘制地图比例尺,比例尺作为重要的地图要素之一,对认识地图极为重要,在绘制比较正式的图件时,比例尺绘制必不可少。
m_ruler
函数的一般形式为:
h=m_ruler(posx,posy,nints,varargin)
其中,posx,posy
为x、y方向的位置向量,表示比例尺绘图区域的中心线顶点坐标位置(如下图A、B点
)。当
p
o
s
x
=
[
x
1
]
、
p
o
s
y
=
[
y
1
,
y
2
]
posx=[x_{1}]、posy=[y_{1}, y_{2}]
posx=[x1]、posy=[y1,y2]时表示绘制一个竖直
放置的比例尺;当
p
o
s
x
=
[
x
1
,
x
2
]
、
p
o
s
y
=
[
y
1
]
posx=[x_{1},x_{2}]、posy=[y_{1}]
posx=[x1,x2]、posy=[y1]时表示绘制一个水平
放置的比例尺。nints控制从A点到B点分几段显示,默认值为4段。需要注意:posx,posy
输入为 线性 坐标系的值,而非投影坐标系的经纬度。
此外,varargin
表示其它属性,m_ruler
可设置的其他属性包括以下内容:
color
表示刻度颜色,(‘color’,‘r’)fontsize
表示标签字号, (‘fontsize’, 8)ticklength
表示刻度线长度,(‘ticklength’,4)tickdir
表示比例尺类型,有两种,分别为in或out,(‘tickdir’,‘in’)tickwidth
表示线框厚度,只适用于’tickdir’为’out’的情况。ticklen
刻度线的长度,(‘ticklen’,0.1)fontcolor
前景色linestyle
线形
示例:绘制了横纵各一个比例尺,两个比例尺使用了不用的参数:
clc;clear;
m_proj('albers equal-area','lat',[40 60],'long',[-90 -50],'rect','on');
m_coast('patch',[0 1 0]);
m_grid('linestyle','none','linewidth',2,'tickdir','out',...
'xaxisloc','top','yaxisloc','right','fontsize',6);
m_text(-69,51,'Standard coastline','color','r','fontweight','bold');
% 绘制比例尺
m_ruler([.5 .9],.8,3,'fontsize',8)
m_ruler(1.15,[.0 .94],6,'fontsize',8,'tickdir','out','ticklen',.01,'color','r','linestyle','-')
3. 关于m_northarrow
m_northarrow
函数用于在地图上 添加指北针 。同比例尺一样,指北针也是重要的地图要素之一,对正确识别地图方向极为重要,在绘制比较正式的图件时,指北针的添加尤为重要。
m_northarrow
函数的一般形式为:
h=m_northarrow(long,lat,scale,varargin)
其中,long,lat
为绘制指北针的中心位置坐标(投影坐标系下的经纬度坐标);scale
控制指北针的尺寸;此外-,还有下面属性可供选择(可能还有其它):
type
设置指北针类型,m_map一共提供了四种类型,type
的value
可选择1-4;aspect
控制指北针形态,当aspect<1
时,使指北针变厚;aspect>1
时,使指北针变薄;facecolor
设置表面颜色edgecolor
设置边缘颜色linewi
设置线宽
示例:下面示例包含了上面所有的属性设置:
close all
clc;clear
bndry_lon=[-128.8 -128.8 -128.3 -128 -126.8 -126.6 -128.8];
bndry_lat=[49 50.33 50.33 50 49.5 49 49];
clf;
m_proj('lambert','long',[-130 -121.5],'lat',[47 51.5],'rectbox','on');
m_northarrow(-125.5,50.2,0.8,'type',1,'linewi',2);
m_northarrow(-126.5,50.2,0.8,'type',1,'linewi',5,'aspect',1.6); % 控制边缘宽度,控制变薄
m_northarrow(-124.5,50.2,0.8,'type',1,'linewi',5,'aspect',0.4); % 控制边缘宽度,控制变厚
m_northarrow(-125.5,45.2,1.2,'type',2,'linewi',2,'edgecolor','r'); % 设置边缘颜色
m_northarrow(-122.5,50.2,2,'type',3,'linewi',2, 'facecolor','r'); % 设置面颜色
m_northarrow(-122.5,45.2,3,'type',4,'linewi',2);
4. 结语
本篇 介绍了 m_map绘制地图要素的几个函数(m_scale
、m_ruler
、m_northarrow
)及其使用方法,提供了 示例以便参考,罗列了 各函数可设属性。希望对绘图的你有所帮助。
😜
😜😜
😜😜😜😜