主要内容

本页采用了机器翻译。点击此处可查看英文原文。

axesm

创建基于 axesm 的地图

说明

axesm 函数创建基于 axesm 的地图(此前称为地图坐标区),可通过 plotmgeoshow 等函数将矢量与栅格地理数据投影至该地图中。基于 axesm 的地图在创建时可通过 axesm 分配特定属性,而对于现有的基于 axesm 的地图,则可使用 getmsetm 进行查询和修改。使用标准的 getset 方法来查询和控制基于 axesm 的地图的标准 MATLAB® 坐标区属性。

基于 axesm 的地图采用标准 MATLAB 坐标区,其部分属性具有不同的默认设置,并采用 MATLAB 结构存储投影参数及其他数据。默认设置的主要差异在于:

  • 坐标区属性 XGridYGridXTickYTick 被设置为 'off'

  • hold 模式是 'on'

地图投影结构存储基于 axesm 的地图属性,除特殊标准坐标区设置外,还允许 Mapping Toolbox™ 函数将某个坐标区或已打开的 FIG 文件识别为基于 axesm 的地图。有关基于 axesm 的地图属性的说明,请参阅 axesm-Based Map Properties

不带输入参数的 axesm 将启动 axesmui 图形用户界面,该界面可用于设置基于 axesm 的地图属性。详细说明请参阅 axesmui 参考页面。

示例

axesm(Name,Value) 创建基于 axesm 的地图,并通过名称值对设置属性来修改外观。您可以指定多个名称-值对组。用引号将每个属性名称引起来。例如,'FontSize',14 设置地图文本的字体大小。属性可以按任意顺序指定,但必须包含 MapProjection 属性。完整属性列表请参阅 axesm-Based Map Properties

axesm(projid,Name,Value) 指定要使用的地图投影方式。projid 应与 maps 函数显示的最后一列中的某项条目相匹配。您还可以在投影摘要与指南中找到这些内容。

示例

全部折叠

创建基于 axesm 的墨卡托投影地图,并设定选定的纬度范围:

axesm('MapProjection','mercator','MapLatLimit',[-70 80])

调用中未明确指定的所有属性均设置为固定值或计算得出的默认值。文件 mercator.m 定义了一个投影函数,因此同样的结果也可以通过该函数实现。

axesm('mercator','MapLatLimit',[-70 80])

每个投影函数都包含所有属性的默认值。任何后续的属性名/属性值对均被视为覆盖设置。

在上述任一示例中,所给地图中显示的数据均采用墨卡托投影法。任何超出规定范围的数据均不显示。

与使用 getset 函数访问和操作标准坐标区属性类似,您可以使用 getmsetm 函数访问和操作基于 axesm 的地图属性。

仅使用 axesm 函数来创建基于 axesm 的映射。使用 setm 函数来修改基于 axesm 的现有地图。

创建一个基于 axesm 的地图,该地图不包含任何地图数据。请注意,MapProjection ID 值应使用小写字母指定。

axesm('MapProjection','miller','Frame','on')

Figure contains an axes object. The axes object contains an object of type patch.

此时您可以开始自定义地图。例如,您可以决定将地图边框的线条加粗。首先,您需要确定当前帧的线宽,这需要通过查询当前坐标区来实现,该坐标区标识为 gca

getm(gca,'FLineWidth')
ans = 
2

现在将线宽重置为四点。坐标区的默认值为 fontunits,其默认值为 points。您可以将 fontunits 设置为 pointsnormalizedinchescentimeterspixels

setm(gca,'FLineWidth',4)

Figure contains an axes object. The axes object contains an object of type patch.

您可以同时使用 setm 设置任意数量的属性。继续缩小线宽,将投影方式改为等距圆柱投影,并验证更改效果。

setm(gca,'FLineWidth',3,'Grid','on','MapProjection','robinson')

Figure contains an axes object. The axes object contains 3 objects of type patch, line.

getm(gca,'FLineWidth')
ans = 
3
getm(gca,'MapProjection')
ans = 
'robinson'

检查当前设置下所有地图属性的完整设置。请注意,属性列表既包含基于 axesm 的地图特有的属性,也包含适用于所有 MATLAB® 坐标区的一般属性。

getm(gca)
ans = struct with fields:
     mapprojection: 'robinson'
              zone: []
        angleunits: 'degrees'
            aspect: 'normal'
     falsenorthing: 0
      falseeasting: 0
       fixedorient: []
             geoid: [1 0]
       maplatlimit: [-90 90]
       maplonlimit: [-180 180]
      mapparallels: 38
        nparallels: 0
            origin: [0 0 0]
       scalefactor: 1
           trimlat: [-90 90]
           trimlon: [-180 180]
             frame: 'on'
             ffill: 100
        fedgecolor: 'default'
        ffacecolor: 'none'
         flatlimit: [-90 90]
        flinewidth: 3
         flonlimit: [-180 180]
              grid: 'on'
         galtitude: Inf
            gcolor: 'default'
        glinestyle: ':'
        glinewidth: 0.5000
    mlineexception: []
         mlinefill: 100
        mlinelimit: []
     mlinelocation: 30
      mlinevisible: 'on'
    plineexception: []
         plinefill: 100
        plinelimit: []
     plinelocation: 15
      plinevisible: 'on'
         fontangle: 'normal'
         fontcolor: 'default'
          fontname: 'Helvetica'
          fontsize: 10
         fontunits: 'points'
        fontweight: 'normal'
       labelformat: 'compass'
     labelrotation: 'off'
        labelunits: 'degrees'
     meridianlabel: 'off'
    mlabellocation: 30
    mlabelparallel: 90
       mlabelround: 0
     parallellabel: 'off'
    plabellocation: 15
    plabelmeridian: -180
       plabelround: 0

同样地,单独使用 setm 函数可显示属性集、其枚举值及默认值。

setm(gca)
AngleUnits                  [ {degrees} | radians ]                 
Aspect                      [ {normal} | transverse ]               
FalseEasting                                                        
FalseNorthing                                                       
FixedOrient                 FixedOrient is a read-only property     
Geoid                                                               
MapLatLimit                                                         
MapLonLimit                                                         
MapParallels                                                        
MapProjection                                                       
NParallels                  NParallels is a read-only property      
Origin                                                              
ScaleFactor                                                         
TrimLat                     TrimLat is a read-only property         
TrimLon                     TrimLon is a read-only property         
Zone                                                                
Frame                       [ on | {off} ]                          
FEdgeColor                                                          
FFaceColor                                                          
FFill                                                               
FLatLimit                                                           
FLineWidth                                                          
FLonLimit                                                           
Grid                        [ on | {off} ]                          
GAltitude                                                           
GColor                                                              
GLineStyle                  [ - | -- | -. | {:} ]                   
GLineWidth                                                          
MLineException                                                      
MLineFill                                                           
MLineLimit                                                          
MLineLocation                                                       
MLineVisible                [ {on} | off ]                          
PLineException                                                      
PLineFill                                                           
PLineLimit                                                          
PLineLocation                                                       
PLineVisible                [ {on} | off ]                          
FontAngle                   [ {normal} | italic | oblique ]         
FontColor                                                           
FontName                                                            
FontSize                                                            
FontUnits                   [ inches | centimeters | normalized | {points} | pixels ]
FontWeight                  [ {normal} | bold ]                     
LabelFormat                 [ {compass} | signed | none ]           
LabelRotation               [ on | {off} ]                          
LabelUnits                  [ {degrees} | radians ]                 
MeridianLabel               [ on | {off} ]                          
MLabelLocation                                                      
MLabelParallel                                                      
MLabelRound                                                         
ParallelLabel               [ on | {off} ]                          
PLabelLocation                                                      
PLabelMeridian                                                      
PLabelRound                                                         

许多(但并非全部)属性选项和默认设置也可单独显示。

setm(gca,'FontUnits')
FontUnits                   [ inches | centimeters | normalized | {points} | pixels ]
setm(gca,'MapProjection')
An axes's "MapProjection" property does not have a fixed set of property values.
setm(gca,'Frame')
Frame                       [ on | {off} ]                          
setm(gca,'FixedOrient')
FixedOrient                 FixedOrient is a read-only property     

同样地,getm 会显示任何坐标区属性的当前值。

getm(gca,'FontUnits')
ans = 
'points'
getm(gca,'MapProjection')
ans = 
'robinson'
getm(gca,'Frame')
ans = 
'on'
getm(gca,'FixedOrient')
ans =

     []

要确定哪些属性适用于特定的地图投影,请参阅该投影的参考页面。

输入参数

全部折叠

地图投影 ID,指定为字符串标量或字符向量。projid 应与 maps 函数显示的最后一列中的某项条目匹配。您还可以在投影摘要与指南中找到这些内容。

注意

投影文件的名称区分大小写。Mapping Toolbox 软件中包含的投影文件仅使用小写字母和阿拉伯数字。

示例: 'eqdcylin'

名称-值参数

全部折叠

将可选参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。

如果使用的是 R2021a 之前的版本,请使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: axesm('MapProjection','pcarree','Frame','on') 创建一个采用正方形投影的地图,并使地图框架可见。

注意

此处列出的属性仅为子集。完整列表请参阅 axesm-Based Map Properties

地图投影,指定为字符串标量或字符向量。MapProjection 设置投影,从而确定地图的所有变换计算。它必须是已知投影集的成员,您可通过输入 getm('MapProjection')maps 来列出该投影集。有关投影的更多信息,请参阅《Mapping Toolbox 用户指南》。某些投影会为其他属性(如平行线和修剪范围)设置自己的默认值。

显示区域的地理纬度边界,以形式为 [southern_limit northern_limit] 的二元素向量指定。此属性可用于多种典型投影和几何形状,但不能用于斜投影或例如 globe 等情况。

在适用情况下,若调用 axesm 时未显式设置 Origin 属性,MapLatLimit 属性可能影响原点纬度。它还可能决定用于 FLatLimit 的值。

显示区域的地理经度边界,以 [western_limit eastern_limit] 形式的二元素向量指定。此属性可用于多种典型投影和几何形状,但不能用于斜投影或例如 globe 等情况。

在适用情况下,若调用 axesm 时未显式设置 Origin 属性,则 MapLonLimit 属性可能影响原点经度。它还可能决定用于 FLonLimit 的值。

提示

  • 通常情况下,在重新打开包含基于 axesm 的地图的保存图窗后,不应尝试修改该地图的投影属性。

  • 当您使用 axesm 创建基于 axesm 的地图并在坐标区上右键点击时,会出现一个上下文菜单。若您不需要菜单或其干扰了您的应用程序,可通过重置坐标区的 'ButtonDownFcn' 属性来禁用它:

    ax = axesm('mercator');     % Right-clicking brings up context menu.
    set(ax,'ButtonDownFcn',[])  % Context menu has been disabled. 
  • 默认情况下,axesm 不会裁剪出现在坐标区边界之外的网格线或标签。通过设置这些对象的 'Clipping' 属性来启用裁剪功能。

    objects = [handlem('grid'); handlem('mlabel'); handlem('plabel')];
    set(objects,'Clipping','on');
    

版本历史记录

在 R2006a 之前推出