MATLAB——m_map指南

Posted 箬笠蓑衣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB——m_map指南相关的知识,希望对你有一定的参考价值。

1、例图

(1)

clear all
m_proj(\'oblique mercator\');%确定投影方式和绘图界线
m_coast;%画出海岸线
m_grid;%添加格网

第一行代码初始化投影,对于每一种投影都有设定的默认值,所以你可以很容易看出某一种特点的投影的样子,所有的投影都有一系列可选的参数, 如果不使用默认值,可以更改,随后详细讲。 

m_proj get

m_grid get

(2)

clear all
%m_proj(\'oblique mercator\');%确定投影方式和绘图界线
m_proj(\'oblique mercator\',\'longitudes\',[-140 -120],\'latitudes\',[60 35],...
\'direction\',\'vertical\',\'aspect\',.5)
m_coast;%画出海岸线
m_grid;%添加格网
m_proj get

(3)

m_coast(\'linewidth\',2,\'color\',\'r\');%可以画出一个更宽的红色的海岸线。

(4) 

m_coast(\'patch\',[1 1 0],\'edgecolor\',\'r\');%填充海岸线

(5)

[X,Y]=m_ll2xy(-129,48.5);%m_112xy(以及它的逆 m_xy112)的功能是将经纬度坐标转换为它对应的投影坐标(投
                          %影坐标转换成经纬度坐标)
line(X,Y,\'marker\',\'square\',\'markersize\',4,\'color\',\'r\');
text(X,Y,\' M5\',\'vertical\',\'top\');%将M5标在图中

m_line(-129,48.5,\'marker\',\'*\',\'markersize\',4,\'color\',\'r\');
m_text(-129,48.5,\' M5\',\'vertical\',\'top\');%不用转换为x,y坐标

(6)  

clear all
m_proj(\'oblique mercator\');%确定投影方式和绘图界线
clf
m_coast(\'patch\',[.7 .7 .7],\'edgecolor\',\'g\');
m_grid(\'xlabeldir\',\'end\',\'fontsize\',10);%更改网格的形式

m_line(-129,48.5,\'marker\',\'*\',\'markersize\',4,\'color\',\'r\');
m_text(-129,48.5,\' M5\',\'vertical\',\'top\');%添加符号

 

2、指定投影

(1)19个投影

>> m_proj(\'set\')
 
Available projections are:
     Stereographic
     Orthographic 
     Azimuthal Equal-area
     Azimuthal Equidistant
     Gnomonic
     Satellite
     Albers Equal-Area Conic
     Lambert Conformal Conic
     Mercator
     Miller Cylindrical
     Equidistant Cylindrical
     Oblique Mercator
     Transverse Mercator
     Sinusoidal
     Gall-Peters
     Hammer-Aitoff
     Mollweide
     Robinson
     UTM

 某个投影的细节

clear all
j=1;
proj={};
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\';%19个投影

m_proj(proj{1});%确定投影方式和绘图界线
m_coast;%画出海岸线

m_grid;%网格

 (2)投影细节

>> 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>                                               
>> m_proj get%投影细节
Current mapping parameters -
 Projection: Stereographic  (function: mp_azim)
 center longitude: 0          %中心经线                 
 center latitude: 60          %中心纬线                 
 radius/altitude : 90         %90度代表半球                
 Rectangular border: circle   %圆形边界                 
 Rotation angle: 0            %旋转角度,使中央经线不垂直

(3)方位投影(球状投影)

     2. 3.1

<,\'lon<gitude>\',center_long>
<,\'lat<itude>\', center_lat>

这两个参数是定义地图的中心点,地图都是被校正了的,中央经线是垂直的,北端点在中心点上。 

<,\'rad<ius>\', ( degrees | [longitude latitude] )> 

这个参数定义地图的范围,或者指定以度为单位的角距离(例如 90 度代表的是一个半球),或者指定边界上的一个点的坐标。

<,\'rec<tbox>\', ( \'on\' | \'off\' | \'circle\' )>、

默认的是一个闭合的地图,圆形边界,但是也可以指定矩形边界,然而矩形边界的地图通常使用圆柱投影或者圆锥投影。 

<,\'rot<angle>\', degrees CCW>

旋转图片使中央经线不垂直。 

<,\'alt<itude>\', altitude_fraction >

卫星投影时这个属性值代表的是以地球半径为单位的视点高度,如一个卫星在 3 倍地球半径的高度,则指定高度值为

  

  2.3.2 更改参数,不同展示

m_proj(\'Stereographic\',\'longitudes\',110,\'latitudes\',35,\'radius\',90,\'rec\',\'circle\',\'rot\',0)
m_coast;%画出海岸线
m_grid;

m_proj(\'Stereographic\',\'longitudes\',110,\'latitudes\',0,\'radius\',90,\'rec\',\'circle\',\'rot\',0)
m_coast;%画出海岸线
m_grid;

正数是东经和北纬,负数是西经和南纬

m_proj(\'Stereographic\',\'longitudes\',110,\'latitudes\',-35,\'radius\',90,\'rec\',\'circle\',\'rot\',0)
m_coast;%画出海岸线
m_grid  

 放大后的中国地图范围

m_proj(\'Stereographic\',\'longitudes\',110,\'latitudes\',35,\'radius\',30,\'rec\',\'circle\',\'rot\',0)
m_coast;%画出海岸线
m_grid;

 

(4)圆柱投影或者伪圆柱投影 (正常世界地图式的矩形边界投影)

<,\'lon<gitude>\',( [min max] | center)>
<,\'lat<itude>\', ( maxlat | [min max])>

或者定义精度范围,或者定义中央经线 ,北纬或者南纬的范围经常设为一样的,可以用一个值来指定,但是如果需要,也可以指定不同的值。 

<,\'lon<gitude>\',[ G1 G2 ]>
<,\'lat<itude>\', [ L1 L2 ]>

两个点确定一个圆,也确定了地图的边界,这 2 个点(G1L1)和(G2L2)在地图的顶部或者底部,左侧或者右侧,当然这取决于 direction 属性。 

m_scale(250000);

一个 1:250000 的地图比例尺,调用一个没有任何参数的 m_scale,就会计算和返回当前比例尺。

  


  

 

  

  

 

以上是关于MATLAB——m_map指南的主要内容,如果未能解决你的问题,请参考以下文章

Matlab——m_map指南——实例

matlab 用m_map画等值线

matlab利用m_map工具包画中国地图及散点云图

优化 MATLAB 代码指南

markdown 打字稿...编码说明,提示,作弊,指南,代码片段和教程文章

matlab画疫情地图