M_Map绘图笔记——快速入门(二)
介绍
这篇博客里将针对一些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')
![](/assets/blank.gif)
函数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;
![](/assets/blank.gif)
可以被改变的选项是:
外框是否绘制,
'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
![](/assets/blank.gif)
计算两点之间的距离
可以使用经纬度或地图坐标(X|Y)使用m_lldist 和 m_xydist计算
M_Map绘图笔记——快速入门(二)相关推荐
- Go 菜鸟学习笔记-快速入门(上)
1.简介和hello world go特性 接受了函数式编程的一些想法,支持匿名函数与闭包 接受了以Erlang语言为代表的面向消息编程思想,支持goroutine和通道 推荐使用消息而不是共享内存来 ...
- Redis学习笔记——快速入门
@ NoSQL数据库简介 技术发展 技术的分类 1.解决功能性的问题:Java.Jsp.RDBMS.Tomcat.HTML.Linux.JDBC.SVN 2.解决扩展性的问题:Struts.Sprin ...
- M_Map绘图笔记——函数详解(四)
简介 这篇博文主要记录使用M_Map过程中一些重要函数的具体用法和解释.内容会逐渐补充. 函数 m_colmap m_colmap(NAME) 返回一个M-by-3矩阵,其中包含NAME colorm ...
- Vue 基础快速入门(二)
Vue 组件化编程 模块, 组件, 模块化与组件化 模块 理解:向外提供特定功能的 js 程序, 一般就是一个 js 文件 为什么:js 文件很多很复杂 作用:复用 js,简化 js 的编写, 提高 ...
- ElasticSearch快速入门二(Restful介绍)
本节课从三个方便讲解 什么是restful ? API: Application Programming Interface的缩写,中文意思就是应用程序接口. ●XML: . 可扩展标记语言,是一种程 ...
- UVM学习笔记—快速入门篇
UVM指的是验证方法学,是学习数字验证的入门课程.它是至关重要的,有不少人往IC验证方向发展的,多多少少都会去了解UVM.但UVM并不是简单的翻个书就可以学会的,还是要掌握学习方法或者跟着老师学习的. ...
- 蓝牙芯片----BK3431开发笔记------快速入门(2)
应该是512K,flash. 1.准备工具 BK3431Q开发板.通用联机下载器 2.软件工具 keil arm,版本V5.12以上 通用联机下载器上位机软件Beken_ProgramVer4 二.编 ...
- CarSim仿真快速入门(二十二)—CarSim2022中设置IO写出
VS数学模型可以通过VS浏览器启动和控制,这样就不需要其他软件了.仿真活动的主要产品是一个输出文件,其中包含感兴趣的变量的时间历史,可以用VS Visualizer绘制或用于生成动画.输出也可以自动写 ...
- jquery 快速入门二
---恢复内容开始--- 操作标签 样式操作 样式类 addClass();//添加指定的CSS类名. removeClass();//移除指定的类名. hasClass();//判断样式不存在 to ...
最新文章
- List复制:深拷贝和浅拷贝用法及区别
- HIVE-ORC表一些知识点
- Linux根文件系统介绍
- Java进阶:volatile使用详解
- 初学者java学习计划_初学者:计划在Windows 7 Media Center中录制直播电视的时间
- vector容器中重写sort方法
- 编译期java_java编译期和运行期
- Windows10 VS2017 C++模拟点击按键
- Ubuntu 16.04直接升级至20.04 (Upgrade from 16.04 to 20.04 directly)
- 有知识和没有知识的两种人,哪种人最幸福,他们的区别在哪里?
- 关于IIS的IUSER和IWAM帐户
- 【代码笔记】iOS-手机系统版本
- python入门环境准备_python入门 之 环境配置(一)
- 公众号H5运营如何激发用户的打开H5商城欲望?
- Sqlmap命令使用
- 【统计学】利用spss正态分布假定检验 S-W检验 K-S检验 直方图 Q-Q图
- 广东迅视资管 “亦庄智造”填补国内高速棒材技术空白
- 预装windows 8 系统GPT模式的ThinkPad T440改装64位 windows 7旗舰版
- 电力物联网大数据平台架构及应用
- 微信推送封面尺寸_微信公众号推送文图片什么尺寸最佳?
热门文章
- android打开app白色页面,完美解决Android App启动页有白屏闪过的问题
- xmanager调出图形安装oracle,Xmanager快速连接Linux图形界面教程
- 【html】edm 邮件制作指南
- Iaas-openstack从入门到精通
- 全国职业院校技能大赛(中职组)网络安全竞赛试题—解析
- 人工智能 —— 知识图谱
- 020-JVM-类加载器的四个层级-ClassLoader
- python中text格式_python读取各种格式的文本
- 任正非女儿孟晚舟成华为轮值董事长 公司年利润1137亿
- JAVA滁州市住房公积金管理中心网站计算机毕业设计Mybatis+系统+数据库+调试部署