介绍

这篇博客里将针对一些m_map函数进行讲解。在M_Map官方的用户向导里有详细的使用方法介绍。也可以从资源里下载中文版的用户向导手册。

基本用法

地图投影

%俄勒冈州/不列颠哥伦比亚省海岸线一部分
%斜墨卡托投影
m_proj('oblique mercator');
m_coast;
m_grid;
%经度用符号划分,东经为正,西经为负
%角度用十进制表示
m_proj用法
%设置投影属性
m_proj('oblique mercator','longitudes',[-132 -125], 'latitudes',[56, 40],'direction','vertical','aspect',0.5)

使用m_proj('set') 或者 m_proj set得到投影列表

Available projections are:Stereographic  赤平投影Orthographic     正射投影Azimuthal Equal-area   方位等面积投影Azimuthal Equidistant    天定等距投影(等距方位投影)Gnomonic   球心投影Satellite   卫星投影Albers Equal-Area ConicLambert Conformal ConicMercator  墨卡托投影Miller Cylindrical   米勒圆柱投影Equidistant Cylindrical   等距圆柱投影Oblique Mercator   斜轴墨卡托投影Transverse Mercator  横轴墨卡托投影Sinusoidal  正弦投影Gall-Peters   彼得斯投影Hammer-Aitoff  哈默-埃托夫投影Mollweide  摩尔魏特投影Robinson   罗宾逊投影UTM   通用横轴墨卡托投影

如何想得到这些投影可能的选项,可以在上述命令中添加投影的名称,如:

m_proj('set','stereographic')

运行结果

     'Stereographic'                                                            <,'lon<gitude>',center_long>                                               <,'lat<itude>', center_lat>                                                <,'rad<ius>', ( degrees | [longitude latitude] ) | 'alt<itude>', alt_frac ><,'rec<tbox>', ( 'on' | 'off' | 'circle' )>                                <,'rot<angle>', degrees CCW>

投影的更多细节,例如:查看正弦投影的默认参数,需要先初始化,然后使用get选项

m_proj('Sinusoidal')
m_proj get
Current mapping parameters -Projection: Sinusoidal  (function: mp_tmerc)longitudes: -90  30 (centered at -30)       latitudes: -65  65                          Rectangular border: off
%设置填充和边界颜色
m_coast('patch',[.7,.7,.7],'edgecolor','r');
%使用get语法得到一系列选项使用方法
m_grid get

一般不用设置m_grid,默认就可以。

 'box',( 'on' | 'fancy' | 'off' )'xtick',( num | [value1 value2 ...])'ytick',( num | [value1 value2 ...])'xticklabels',[label1;label2 ...]'yticklabels',[label1;label2 ...]'xlabeldir', ( 'middle' | 'end' )'ylabeldir', ( 'end' | 'middle' )'ticklength',value'tickdir',( 'in' | 'out' )'tickstyle',('dm' | 'dd' )'color',colorspec'gridcolor',colorspec'backgroundcolor',colorspec'linewidth', value'linestyle', ( linespec | 'none' )'fontsize',value'fontname',name'XaxisLocation',( 'bottom' | 'middle' | 'top' ) 'YaxisLocation',( 'left' | 'middle' | 'right' )
%假设在129W,48.5N显示和标注位置一个锚
%使用MATLAB自带的line和text函数,需要将经纬度转XY值绘图
[X,Y] = m_ll2xy(-129,48.5)
line(X,Y,'marker','square','markersize',4,'color','r');
text(X,Y,'M5','vertical','top')

函数m_ll2xy与m_xy2ll功能相反,用于转换经纬度坐标去匹配投影。
也可以使用M_Map工具箱中内置函数m_line 和m_text绘图。

地图比例尺

设置地图比例尺函数m_scale
设置1:250000比例尺:

m_scale(250000)

海岸线和水深

M_Map包含两个简单的海岸线和全球高程数据库。如需要更多细节的地图可以使用免费的高分辨率数据集。
使用m_coast 函数可以访问M_Map数据库,海岸线可以通过下述语句以单线条形式绘出:

%设置填充和边界颜色
m_coast('patch',[.7,.7,.7],'edgecolor','r');

自定义坐标轴

网格线和标签

为了绘制完美网格,可以尝试不同的网格选项。m_grid 用来绘制网格,m_ungrid 清除网格。

% 北美兰伯特投影
m_proj('Lambert');
m_coast;
m_grid;
% m_ungrid;

可以被改变的选项是:
外框是否绘制,

'box',( 'on' | 'off' | 'fancy' )
'tickdir'  是'in'黑白交替的效果(铁路线效果)
'tickdir'  是'out'一个更复杂的图案效果

指定网格的数量或位置。

'xtick',( num | [value1 value2 ...])

指定标签

'xticklabels',[label1;label2 ...]

图列

可以使用m_legend 在地图中添加图列,图列盒可以使用鼠标进行拖放。

比例尺

可以使用m_ruler 在地图中添加比例尺。

绘制线条、文本、箭头、填充、阴影、斑点状和等值线

  m_plot(LONG,LAT,...line properties)      %在地图上画一个线条(清除现有线条)m_line(LONG,LAT,...line properties)      % 在地图上面画一个线条m_text(LONG,LAT,'string')                % 文本m_quiver(LONG,LAT,U,V,S)                 % 箭头线条m_patch(LONG,LAT,..patch properties)     % 填充.  m_annotation('line',LON,LAT)             % Annotation

绘制轨迹

用于表示飞行器、船舶或卫星随时间变化位置曲线,并且添加时间标注。这个可以用m_track 实现。

m_proj('UTM','long',[-72 -68],'lat',[40 44]);
m_gshhs_i('color','k');
m_grid('box','fancy','tickdir','out');% fake up a trackline
lons=[-71:.1:-67];
lats=60*cos((lons+115)*pi/180);
dates=datenum(1997,10,23,15,1:41,zeros(1,41));m_track(lons,lats,dates,'ticks',0,'times',4,'dates',8,...'clip','off','color','r','orient','upright');
% m_ungrid track

计算两点之间的距离

可以使用经纬度或地图坐标(X|Y)使用m_lldist 和 m_xydist计算

M_Map绘图笔记——快速入门(二)相关推荐

  1. Go 菜鸟学习笔记-快速入门(上)

    1.简介和hello world go特性 接受了函数式编程的一些想法,支持匿名函数与闭包 接受了以Erlang语言为代表的面向消息编程思想,支持goroutine和通道 推荐使用消息而不是共享内存来 ...

  2. Redis学习笔记——快速入门

    @ NoSQL数据库简介 技术发展 技术的分类 1.解决功能性的问题:Java.Jsp.RDBMS.Tomcat.HTML.Linux.JDBC.SVN 2.解决扩展性的问题:Struts.Sprin ...

  3. M_Map绘图笔记——函数详解(四)

    简介 这篇博文主要记录使用M_Map过程中一些重要函数的具体用法和解释.内容会逐渐补充. 函数 m_colmap m_colmap(NAME) 返回一个M-by-3矩阵,其中包含NAME colorm ...

  4. Vue 基础快速入门(二)

    Vue 组件化编程 模块, 组件, 模块化与组件化 模块 理解:向外提供特定功能的 js 程序, 一般就是一个 js 文件 为什么:js 文件很多很复杂 作用:复用 js,简化 js 的编写, 提高 ...

  5. ElasticSearch快速入门二(Restful介绍)

    本节课从三个方便讲解 什么是restful ? API: Application Programming Interface的缩写,中文意思就是应用程序接口. ●XML: . 可扩展标记语言,是一种程 ...

  6. UVM学习笔记—快速入门篇

    UVM指的是验证方法学,是学习数字验证的入门课程.它是至关重要的,有不少人往IC验证方向发展的,多多少少都会去了解UVM.但UVM并不是简单的翻个书就可以学会的,还是要掌握学习方法或者跟着老师学习的. ...

  7. 蓝牙芯片----BK3431开发笔记------快速入门(2)

    应该是512K,flash. 1.准备工具 BK3431Q开发板.通用联机下载器 2.软件工具 keil arm,版本V5.12以上 通用联机下载器上位机软件Beken_ProgramVer4 二.编 ...

  8. CarSim仿真快速入门(二十二)—CarSim2022中设置IO写出

    VS数学模型可以通过VS浏览器启动和控制,这样就不需要其他软件了.仿真活动的主要产品是一个输出文件,其中包含感兴趣的变量的时间历史,可以用VS Visualizer绘制或用于生成动画.输出也可以自动写 ...

  9. jquery 快速入门二

    ---恢复内容开始--- 操作标签 样式操作 样式类 addClass();//添加指定的CSS类名. removeClass();//移除指定的类名. hasClass();//判断样式不存在 to ...

最新文章

  1. List复制:深拷贝和浅拷贝用法及区别
  2. HIVE-ORC表一些知识点
  3. Linux根文件系统介绍
  4. Java进阶:volatile使用详解
  5. 初学者java学习计划_初学者:计划在Windows 7 Media Center中录制直播电视的时间
  6. vector容器中重写sort方法
  7. 编译期java_java编译期和运行期
  8. Windows10 VS2017 C++模拟点击按键
  9. Ubuntu 16.04直接升级至20.04 (Upgrade from 16.04 to 20.04 directly)
  10. 有知识和没有知识的两种人,哪种人最幸福,他们的区别在哪里?
  11. 关于IIS的IUSER和IWAM帐户
  12. 【代码笔记】iOS-手机系统版本
  13. python入门环境准备_python入门 之 环境配置(一)
  14. 公众号H5运营如何激发用户的打开H5商城欲望?
  15. Sqlmap命令使用
  16. 【统计学】利用spss正态分布假定检验 S-W检验 K-S检验 直方图 Q-Q图
  17. 广东迅视资管 “亦庄智造”填补国内高速棒材技术空白
  18. 预装windows 8 系统GPT模式的ThinkPad T440改装64位 windows 7旗舰版
  19. 电力物联网大数据平台架构及应用
  20. 微信推送封面尺寸_微信公众号推送文图片什么尺寸最佳?

热门文章

  1. android打开app白色页面,完美解决Android App启动页有白屏闪过的问题
  2. xmanager调出图形安装oracle,Xmanager快速连接Linux图形界面教程
  3. 【html】edm 邮件制作指南
  4. Iaas-openstack从入门到精通
  5. 全国职业院校技能大赛(中职组)网络安全竞赛试题—解析
  6. 人工智能 —— 知识图谱
  7. 020-JVM-类加载器的四个层级-ClassLoader
  8. python中text格式_python读取各种格式的文本
  9. 任正非女儿孟晚舟成华为轮值董事长 公司年利润1137亿
  10. JAVA滁州市住房公积金管理中心网站计算机毕业设计Mybatis+系统+数据库+调试部署