主要内容

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

创建 UTM 地图

通用横轴墨卡托 (UTM) 坐标系将世界划分为一系列被称为的四边形区域。每个区域均采用横轴墨卡托投影法,该投影法旨在最大限度地减少畸变。大多数区域覆盖 6 度的经度范围。UTM 系统的适用范围为纬度介于 –80 度至 84 度之间。在这些纬度之外,请改用通用极地立体投影 (UPS) 系统。

Mapping Toolbox™ 函数使用 1 到 60 之间的区域编号来识别区域。这些函数采用不同的约定来标识区域内的不同部分。

  • 对于由 EPSG 代码创建的 projcrs 对象,带有半球字母的区域编号表示北半球或南半球。图中,39N 区以黄色标示,39S 区以紫色标示。

  • 对于基于 axesm 的地图、utmzone 函数以及 utmzoneui 函数,区域编号表示横跨北半球和南半球的区域。带有纬度带字母的区域编号所指的区域,在大多数情况下覆盖 8 度的纬度范围。北欧的一些区域所涵盖的经度范围或多或少超过 6 度。图中,第 19 区以蓝色显示,第 18Q 区以橙色显示。

World map displaying zones in the UTM system

本主题介绍了如何利用地图坐标轴 (自 R2023a 起)和基于 axesm 的地图来创建类似的地图。有关地图坐标区与基于 axesm 的地图的比较(包括何时使用每种显示类型),请参阅选择二维地图显示

使用地图坐标区创建 UTM 地图

将一个包含美国各州的 shapefile 文件作为地理空间表导入工作区。该 shapefile 通过地理坐标系中的多边形来表示各州。

states = readgeotable("usastatelo.shp");

创建一个子表,其中包含纽约州以及构成新英格兰地区的各州:缅因州、新罕布什尔州、佛蒙特州、马萨诸塞州、康涅狄格州和罗德岛州。

names = ["New York","Maine","New Hampshire","Vermont","Massachusetts", ...
    "Connecticut","Rhode Island"];
NEstates = geocode(names,states);

显示该区域及周边地区的数据

创建一个适用于新英格兰地区的投影坐标参考系 (CRS) 对象。请使用 NAD83 / UTM 第 19N 区投影坐标系,其 EPSG 代码为 26919。在此 CRS 中,19N 区指北半球的 19 区。

proj = projcrs(26919);

创建一张使用该投影坐标系的新地图。然后,绘制各州的分布图。

figure
newmap(proj)
geoplot(NEstates)

Figure contains an axes object with type mapaxes. The mapaxes object contains an object of type polygon.

仅显示区域内的数据

默认情况下,地图会在坐标轴对象的 Position 属性所指定的框内显示数据。因此,该地图可以显示 UTM 区域内以及周边经度范围内的数据。若要仅显示 UTM 区域内的数据,请使用制图式地图布局。

创建一张使用相同投影坐标系的新地图。

figure
mx = newmap(proj);

获取坐标参考系统 (CRS) 的制图纬度和经度边界。然后,将各州裁剪至边界。

latlim = mx.CartographicLatitudeLimits;
lonlim = mx.CartographicLongitudeLimits;
clipped = geoclip(NEstates.Shape,latlim,lonlim);

在地图上显示裁剪后的形状。然后,将地图布局更改为“制图式”。

geoplot(clipped)
mx.MapLayout = "cartographic";

Figure contains an axes object with type mapaxes. The mapaxes object contains an object of type polygon.

使用基于 axesm- 的地图创建 UTM 地图

将一个包含美国各州的 shapefile 文件作为地理空间表导入工作区。该 shapefile 通过地理坐标系中的多边形来表示各州。

states = readgeotable("usastatelo.shp");

创建一个子表,其中包含纽约州以及构成新英格兰地区的各州:缅因州、新罕布什尔州、佛蒙特州、马萨诸塞州、康涅狄格州和罗德岛州。

names = ["New York","Maine","New Hampshire","Vermont","Massachusetts" ...
    "Connecticut","Rhode Island"];
NEstates = geocode(names,states);

为 UTM 19T 区创建一张基于 axesm 的地图。将参考椭球体指定为 1980 年大地测量参考系统 (GRS 80)。打开网格和平行刻度,并隐藏坐标轴线。

figure
axesm("utm",Zone="19T",Geoid=referenceEllipsoid("grs80"))
gridm
plabel 
axis off

在地图上显示这些图形。默认情况下,地图使用 UTM 区的边界。

geoshow(NEstates)

Figure contains an axes object. The hidden axes object contains 18 objects of type patch, line, text.

另请参阅

函数

对象

主题