手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

MATLAB绘制全球地图并计算地图上两点的距离

时间:2024-10-23 06:34:48

1、第一,启动MATLAB,新建脚本(Ctrl+N),输入如下代码:close all; clear all; 艘早祓胂clcm_proj('miller','lat',[-77,77]);m_coast('patch',[.7,1,.7],'edgecolor','none');m_grid('box','fancy','linest','none','gridcolor','w','backcolor',[.2,.65,1]);cities={'Cairo','Washington','Buenos Aires'};lons=[30+2/60,-77-2/60,-58-22/60];lats=[31+21/60,38+53/60,-34-45/60];for i=1:3;[range,ln,lt]=m_lldist([-123-6/60,lons(i)],[49+13/60,lats(i)],40);m_line(ln,lt,'color','r','linewidth',2);m_text(ln(end),lt(end),[cities(i),num2str(round(range)),'km']);end;set(gcf,'position',[50,50,800,600],'color','w')其中,m_proj设置地图投影为miller形式,南北纬度77度。m_coast设置海岸线包大陆填充为RGB[.7,1,.7]颜色。m_grid设置网格线为none但背景色为RGB[.2,.65,1]颜色。随后cities,lons,lats分别设置了三大城市开罗Cairo,华盛顿Washington,布宜诺斯艾利斯Buenos Aires和它们的经纬度lons lats。然后利用for-end循环和m_lldist函数命令计算上面三大城市到经纬度带点(-123-6/60,49+13/60)的距离,并m_line绘制出红色里程线。

MATLAB绘制全球地图并计算地图上两点的距离

2、第二,保存和运行上述脚本,得到如下全球地图,并计算出了经纬度(-123-6/60,49+13/60)到开罗Cairo,华盛顿Washington,布宜诺斯艾利斯Buenos Aires的距离。

MATLAB绘制全球地图并计算地图上两点的距离

3、第三,北京的经纬度为(116.5,39.9),下面将m_lldist([-123-6/60,lons(i)],[49+13/60,lats(i)],40)中的经纬度改为北京的经纬度。即[range,ln,lt]=m_lldist([116.5,lons(i)],[39.9,lats(i)],40)。这样就可以计算出北京到开罗Cairo,华盛顿Washington,布宜诺斯艾利斯Buenos Aires的距离。

MATLAB绘制全球地图并计算地图上两点的距离

4、第四,保存和运行上述脚本,得到如下图形:北京到开罗Cairo,华盛顿Washington,布宜诺斯艾利斯Buenos Aires的距离,以及红色里程线。

MATLAB绘制全球地图并计算地图上两点的距离

5、第五,把'linest','none'改为'linest',媪青怍牙':',即绘制网格线为虚线。把m_text(ln(end),lt(end),[cities(i),num2str(round(range)),'km'])改为m_text(ln(end),lt(end),sprintf('%s-%d',cities{i},round(range))),即用sprintf的方式在图中标注城市命名和里程。同时,经纬度点还是用(-123-6/60,49+13/60),即[range,ln,lt]=m_lldist([-123-6/60,lons(i)],[49+13/60,lats(i)],40)。

MATLAB绘制全球地图并计算地图上两点的距离

6、第六,保存和运行上述脚本,最终得到如下图形:填了网格线,计算出了经纬度点(-123-6/60,49+13/60)到开罗Cairo,华盛顿Washington,布宜诺斯艾利斯Buenos Aires的距离,并用m_text配合sprintf( )的方式,标注了城市名和公里数。

MATLAB绘制全球地图并计算地图上两点的距离
© 手抄报圈