MATLAB绘制全球地图并计算地图上两点的距离
来源:网络收集 点击: 时间:2024-02-26第一,启动MATLAB,新建脚本(Ctrl+N),输入如下代码:
close all; clear all; clc
m_proj(miller,lat,);
m_coast(patch,,edgecolor,none);
m_grid(box,fancy,linest,none,gridcolor,w,backcolor,);
cities={Cairo,Washington,Buenos Aires};
lons=;
lats=;
for i=1:3;
=m_lldist(,,40);
m_line(ln,lt,color,r,linewidth,2);
m_text(ln(end),lt(end),);
end;
set(gcf,position,,color,w)
其中,m_proj设置地图投影为miller形式,南北纬度77度。m_coast设置海岸线包大陆填充为RGB颜色。m_grid设置网格线为none但背景色为RGB颜色。
随后cities,lons,lats分别设置了三大城市开罗Cairo,华盛顿Washington,布宜诺斯艾利斯Buenos Aires和它们的经纬度lons lats。
然后利用for-end循环和m_lldist函数命令计算上面三大城市到经纬度带点(-123-6/60,49+13/60)的距离,并m_line绘制出红色里程线。

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

第三,北京的经纬度为(116.5,39.9),下面将m_lldist(,,40)中的经纬度改为北京的经纬度。即=m_lldist(,,40)。这样就可以计算出北京到开罗Cairo,华盛顿Washington,布宜诺斯艾利斯Buenos Aires的距离。

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

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

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

版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_155535.html