reference: http://blog.sina.com.cn/s/blog_8fc890a20102v6pm.html

 
需要用一些地图工具,arcgis懒得装了,GMT(generic mapping tools)太复杂,因此搜到了m_map, 正好是MATLAB的工具箱。于是研究了一晚上。

 
一、m_map 工具箱的安装
 
https://www.eoas.ubc.ca/~rich/map.html (若打不开链接,需要逐级访问)
以上网址是m_map工具箱的网站,找到m_map工具箱文件下下来,一共不到700k。名字叫 gzipped tar-file , or zip archive 下其中一个即可。(目前最新为1.4版本)
 
方法1
解压,得到 m_map文件夹,把他放到你的MATLAB安装目录下, 即放在(MATLAB装在其他盘的请将C改为其他盘符): C:Program Files\MATLAB\R2012b\toolbox\m_map
然后打开 C:Program Files\MATLAB\R2012b\toolbox\local\pathdef.m   (如果有权限问题,一般是win7且MATLAB装在C盘会出现权限问题,那就在开始菜单找到记事本,右键,管理员运行,然后打开pathdef.m 文件)
将下面一句话加到 %%% BEGIN ENTRIES %%% 下面
matlabroot,'\toolbox\m_map', ...
最后,打开MATLAB,输入 rehash toolboxcache,到此就安装好了m_map. 
但是我测试了一下,把MATLAB关了重开,由于C盘有权限,MATLAB访问toolbox文件夹有限,于是安装不成功,但是如果你的MATLAB是在D盘,就没事。
 
方法2
目前一定能成功。后来我就自己开发了一个方法,无论你的MATLAB安装在哪个盘,将m_map 复制到除了C盘以外的任意一个盘,比如 D:\mymatlabfiles\m_map,  然后用记事本打开那个 pathdef.m, 然后在
%%% BEGIN ENTRIES %%% 下面加入下面的话:
 'D:\mymatlabfiles\m_map;', ... 
这样就不用每次打开MATLAB添加path了。
测试安装好与否的方法是 输入 what m_map, 如果显示了一堆m文件名字,即装好了,如果显示 not found,则没装好,这时候在MATLAB界面上找到 set path,我的是2012b,直接在上面就有,在preference的下面,然后add folder, 浏览到C:Program Files\MATLAB\R2012b\toolbox\m_map,然后save即可。
 
二、m_map 如何入门
 
首先运行了一个例子,语句是
m_proj('oblique mercator');
m_coast;
m_grid;
 

意思是定义一个投影系统,名叫oblique mercator,注意,定义这个投影系统的时候他已经默默的将地球上的范围给定义了,这个例子是哥伦比亚的一个海岸,然后 第二句和第三句就是画图用的,画出海岸线和网格,第一句是不画图的。那么如何定义地球上的范围呢,往下看。
 
m_map 里面嵌有19个投影系统,名字如下所示,你首先要明白这19个系统长什么样。
 
proj{1}='Stereographic';proj{2}='Orthographic';proj{3}='Azimuthal Equal-area';
proj{4}='Azimuthal Equidistant';proj{5}='Gnomonic';proj{6}='Satellite';
proj{7}='Albers Equal-Area Conic';proj{8}='Lambert Conformal Conic';proj{9}='Mercator';
proj{10}='Miller Cylindrical';proj{11}='Equidistant Cylindrical';proj{12}='Oblique Mercator';
proj{13}='Transverse Mercator';proj{14}='Sinusoidal';proj{15}='Gall-Peters';
proj{16}='Hammer-Aitoff';proj{17}='Mollweide';proj{18}='Robinson';
proj{19}='UTM';
这是我在MATLAB里把这19个名字弄到一个cell中了。然后我用了下列语句
j=1;
m_proj(proj{j});
m_coast;
m_grid;
m_proj get
m_proj('set',proj{j});
m_proj(proj{j},'longitudes',100, 'latitudes',0,'rad',90,'rec','circle','rot',0);
m_coast('patch',[.7 .6 .8],'edgecolor','r');
m_grid('xlabeldir','end','fontsize',10);

 
重点就在这里,我以第一个投影系为例,j=1嘛,前4行是把这个投影系画出来看看是什么样,然后
m_proj get 是获取这个投影系的默认地理范围,可以看出是
 

然后我再用m_proj('set',proj{j}); 命令,得到

意思就是,如果你要是用'stereographic' 投影系的话,你可以定义'longitude', 'latitude', 'radius',
'rectbox' and 'rotangle'. 当然,如上面我写的第7行那个,可以用 'lon'代替'longitude'。
 
然后我就再第7行把lon设置为100,这时候就可以让伟大的中国在中间了。就是这样一个一个系统的去看,每个投影系定义的方式都不一样,其中有些是重复的,但是意义不同。同理,m_coast 和 m_grid 也是这样学习,然后在继续看m_map 网站的用户说明即可,网址是:
http://www.eos.ubc.ca/~rich/private/mapug.html#p1
 
希望对你们有帮助,网上一些其他的教程太不负责任,只是将 User's guide 翻译了一下,翻译的还不怎么样。
MATLAB m_map toolbox

MATLAB 地图工具箱 m_map 的安装和入门技巧(转)的更多相关文章

  1. MATLAB地图工具箱学习总结(四)自定义投影

    MATLAB地图工具箱学习总结(四)自定义投影 这是本系列的最后一篇文章,准备给大家讲讲自定义投影怎么做.在做这项作业的时候,自己也是花了不少时间,将所有地图投影源文件都看了一遍,简单分析了一下源代码 ...

  2. MATLAB地图工具箱学习心得(二)设计可变参数和位置拾取的“放大镜”式投影程序

    最近刚好因为一些原因整理这方面的内容,所以还是把这篇鸽了一年多的博客顺手写出来了∠( ᐛ 」∠)_.因为是当时课程设计的一部分,程序上难免会有一些不足和bug,在这里将设计的思路分享给大家. 本篇博客 ...

  3. MATLAB地图工具箱学习总结(三)地图工具箱的基本知识

    MATLAB地图工具箱学习总结(三)地图工具箱的基本知识 今天想要介绍的是一些比较基础的函数.了解了这些函数,地图投影的基本概念才能真正明白.而要想继续研究MATLAB中有关地图投影的函数,尤其是未来 ...

  4. MATLAB地图工具箱学习总结(二)大圆和恒向线

    MATLAB地图工具箱学习总结(二)大圆和恒向线 今天要和大家谈一谈大圆.恒向线航道的画法.还是先从案例开始说起,再分别介绍相关的函数. 1                    作业案例:地图投影作 ...

  5. MATLAB地图工具箱学习总结(一)从地图投影说起

    MATLAB地图工具箱学习总结(一)从地图投影说起 前言 本学期地图投影课上,李连营老师建议我们使用MATLAB完成每周的作业.从大二上学期开始接触MATLAB学习数学运算和地理数据处理的我,自然不会 ...

  6. MATLAB地图工具箱学习心得(一)关于地图分带投影的拼接

    关于matlab地图投影系列: MATLAB地图工具箱学习心得(二)设计可变参数和位置拾取的"放大镜"式投影程序 --- 本学期的地图投影课程已经结束了,这篇博客用于记录自己在学习 ...

  7. matlab coder 工具箱使用教程

    之前一直听说matlab代码可以转C和C++代码,但是一直都没有时间尝试,最近闲着无聊,就想来试试如何转换,上网查了很多资料,照着做下去,发现都有一些问题,之后自己琢磨了很久,终于将一个很简单的例子给 ...

  8. matlab遗传算法工具箱

    转自http://blog.sina.com.cn/s/blog_5ebcc0240101pnrj.html matlab遗传算法工具箱函数及实例讲解 (2014-01-10 13:03:57)   ...

  9. MATLAB添加工具箱及无法连接到MathWorks问题

    版本信息:官网下载的MATLAB R2019b 学生版 操作系统:Windows 10 在安装MATLAB时,需要我们自行选择要安装工具箱,如何在已安装MATLAB后添加当初没有选择安装的工具箱呢?第 ...

随机推荐

  1. 记一次RAID阵列的迁移经历

    xu言: 最近,某电信机房因为空调漏水问题导致了我司的Dell R430 服务器的主板及CPU不同程度受损.服务器已经不能正常开机.但是,又基于把服务器的数据需要最短时间进行恢复.抱着试试看的心里进行 ...

  2. Vue.js的后端数据支持:使用Express建立app, 并使用MongoDB数据库。

    需要用到的backed tech stack: Node: JavaScript on the server/backend. That's basically what it is, but mor ...

  3. H5微信页面开发 IOS系统 input输入框失去焦点,软键盘关闭后,被撑起的页面无法回退到原来正常的位置,导致弹框里的按钮响应区域错位

    H5微信页面开发,软键盘弹起后,若原输入框被遮挡,页面整体将会上移,然而当输入框失焦,软键盘收起后,页面未恢复,导致弹框里的按钮响应区域错位. 解决方案:给输入框(或select选择框)添加失去焦点的 ...

  4. LoveIsIntheAir模板换背景

    /*simplememory*/#google_ad_c1, #google_ad_c2 {display:none;}.LoveIsIntheAir a, .LoveIsIntheAirdiv, . ...

  5. Linux系统中文件定位与查找

    Linux系统中文件查找 关键词 文件查找 | find | locate 本文主要介绍有关文件查找的两个命令——find和locate,以及压缩打包的命令——compress, gzip,bzip2 ...

  6. python记录_day16 类的成员

    一.变量 1.实例变量(又叫字段.属性) 创建对象时给对象赋值 形式: self.xxx = xxx 访问: 对象名.xxx     只能由对象访问 class Person: def __init_ ...

  7. 漏洞复现——apache文件解析漏洞

    漏洞描述: 我们可以上传一个文件名末尾包含换行符的文件,以此绕过它的黑名单 影响版本: apache 2.4.0-2.4.29 漏洞分析: <FilesMath "\.(?i:php| ...

  8. spring boot(十一)MongoDB的使用

    mongodb是最早热门非关系数据库的之一,使用也比较普遍,一般会用做离线数据分析来使用,放到内网的居多.由于很多公司使用了云服务,服务器默认都开放了外网地址,导致前一阵子大批 MongoDB 因配置 ...

  9. const typedef 和指针的问题(这里必须初始化的才初始化了,不必须的则没有初始化)

    这里很容易搞混: tyepdef double dou;//这里是dou是double的别名 #include<iostream> using namespace std; int mai ...

  10. Django之WSGI 和MVC/MTV

    一.什么是WSGI? WEB框架的本质是一个socket服务端接收用户请求,加工数据返回给客户端(Django),但是Django没有自带socket需要使用 别人的 socket配合Django才能 ...