创建 UTM 地图
通用横轴墨卡托 (UTM) 坐标系将世界划分为一系列被称为区的四边形区域。每个区域均采用横轴墨卡托投影法,该投影法旨在最大限度地减少畸变。大多数区域覆盖 6 度的经度范围。UTM 系统的适用范围为纬度介于 –80 度至 84 度之间。在这些纬度之外,请改用通用极地立体投影 (UPS) 系统。
Mapping Toolbox™ 函数使用 1 到 60 之间的区域编号来识别区域。这些函数采用不同的约定来标识区域内的不同部分。
对于由 EPSG 代码创建的
projcrs对象,带有半球字母的区域编号表示北半球或南半球。图中,39N 区以黄色标示,39S 区以紫色标示。对于基于
axesm的地图、utmzone函数以及utmzoneui函数,区域编号表示横跨北半球和南半球的区域。带有纬度带字母的区域编号所指的区域,在大多数情况下覆盖 8 度的纬度范围。北欧的一些区域所涵盖的经度范围或多或少超过 6 度。图中,第 19 区以蓝色显示,第 18Q 区以橙色显示。

本主题介绍了如何利用地图坐标轴 (自 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)

仅显示区域内的数据
默认情况下,地图会在坐标轴对象的 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";
使用基于 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)
