主要内容

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

usamap

R2026a

创建基于 axesm 的美国地图

描述

usamap state 和

usamap(state) 创建一个基于 axesm 的空地图(此前称为“地图坐标轴”),采用兰伯特正形圆锥投影,且地图边界覆盖由 state 指定的美国某个州或若干个州。基于 axesm 的地图在当前坐标区中创建,轴范围被设置为紧贴地图边框。

示例

usamap 'conus' 和

usamap('conus') 为美国本土 48 州(即除阿拉斯加和夏威夷外的所有州)创建一个基于 axesm 的空地图。

usamap 命令不带参数时会显示一个菜单,您可从中选择单个州、哥伦比亚特区、毗邻的 48 个州或所有州。

示例

usamap(latlim,lonlim) 会根据以度为单位的经纬度边界,为美国的一个区域创建一张基于 axesm 的空的兰伯特等角投影地图。

usamap(Z,R) 从常规数据网格 Z 的范围中推导出地图边界,该网格由 R 进行地理参考。

h = usamap(___) 返回基于 axesm 的映射的句柄。

h = usamap('all') 构建了三幅基于 axesm 的空地图,嵌入单一图例中,分别对应美国本土各州、阿拉斯加及夏威夷,采用美国地质调查局建议的球形地球模型及其他投影参数。三个坐标区中的地图均以大致相同的比例尺显示。三个基于 axesm 的地图的句柄在 h 中返回。

usamap('allequal') 与 usamap('all') 功能相同,但 'allequal' 的使用将在未来版本中被移除。

示例

示例

全部折叠

仅绘制阿拉巴马州的地图。

figure
usamap("Alabama")

states = readgeotable("usastatehi.shp");
row = states.Name == "Alabama";
alabama = states(row,:);

geoshow(alabama,"FaceColor",[0.3 1.0, 0.675])

通过添加文本标记该州。

textm(alabama.LabelLat,alabama.LabelLon,alabama.Name, ...
  "HorizontalAlignment","center")

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

绘制一张包含加利福尼亚州和蒙大拿州的连续陆地地图。

figure
ax = usamap({'CA','MT'});
set(ax,'Visible','off')

states = readgeotable('usastatehi.shp');
geoshow(states, 'FaceColor', [0.5 0.5 1])

为地图边界内的州添加标签。

latlim = getm(ax,'MapLatLimit');
lonlim = getm(ax,'MapLonLimit');

lat = states.LabelLat;
lon = states.LabelLon;
tf = ingeoquad(lat,lon,latlim,lonlim);
textm(lat(tf),lon(tf),states.Name(tf), ...
   'HorizontalAlignment','center')

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

绘制美国本土的地图。为每个州涂上随机的柔和色调。

figure
usamap("conus");

states = readgeotable("usastatelo.shp");
rows = states.Name ~= "Alaska" & states.Name ~= "Hawaii";
states = states(rows,:);

h = height(states);
faceColors = makesymbolspec("Polygon",...
    {'INDEX',[1 h],'FaceColor',polcmap(h)}); 

geoshow(states,"DisplayType","polygon","SymbolSpec",faceColors)

设置可选显示设置。

framem off
gridm off
mlabel off
plabel off

Figure contains an axes object. The hidden axes object contains 49 objects of type patch.

读取包含美国各州及哥伦比亚特区多边形形状的 shapefile 文件,将其导入地理空间表。查找美国本土、阿拉斯加和夏威夷的表格行。

states = readgeotable("usastatelo.shp");
rowConus = states.Name ~= "Hawaii" & states.Name ~= "Alaska";
rowAlaska = states.Name == "Alaska";
rowHawaii = states.Name == "Hawaii";

将三个区域分别显示在不同的坐标区上。

figure
ax = usamap("all");
set(ax,"Visible","off")
stateColor = [0.5 1 0.5];

geoshow(ax(1),states(rowConus,:), "FaceColor",stateColor)
geoshow(ax(2),states(rowAlaska,:),"FaceColor",stateColor)
geoshow(ax(3),states(rowHawaii,:),"FaceColor",stateColor)

隐藏边框。

for k = 1:3
    setm(ax(k),"Frame","off","Grid","off",...
      "ParallelLabel","off","MeridianLabel","off")
end

Figure contains 3 axes objects. Hidden axes object 1 contains 49 objects of type patch. Hidden axes object 2 contains an object of type patch. Hidden axes object 3 contains an object of type patch.

输入参数

全部折叠

要显示的状态,指定为字符串标量、字符串数组、字符向量或字符向量元胞数组。允许的值包括州名、美国邮政服务标准的两字母州缩写以及 'District of Columbia'。

示例: usamap({'Maine','Florida'}) 将地图范围设置为覆盖从缅因州到佛罗里达州的区域。

纬度范围,指定为 [southern_limit northern_limit] 形式的二元素向量。

经度范围,指定为 [western_limit eastern_limit] 形式的二元素向量。

数据网格,指定为 M×N 数组。Z 是与地理参考 R 关联的常规数据网格。

地理栅格参考,指定为 GeographicCellsReference 或 GeographicPostingsReference 对象。引用对象将数据网格的下标与地理坐标相关联。

R 的 RasterSize 属性必须与数据网格的大小保持一致。

输出参量

全部折叠

基于 axesm 的地图句柄,以句柄对象形式返回。

若使用语法 h = usamap('all'),则 h 表示句柄对象数组。h(1) 用于毗邻各州,h(2) 用于阿拉斯加,h(3) 用于夏威夷。

提示

  • 所有使用 usamap 创建的坐标区均初始化为半径为 6,371,000 米的球形地球模型。

  • 在某些情况下,usamap 会使用 tightmap 来调整地图周围的轴范围。若需更改投影方式,或仅希望在地图边框周围增加空白区域,请再次使用 tightmap 或 axis auto。

  • axes(h(n)),其中 n = 1、2 或 3,将所需坐标区设为当前坐标区。

  • set(h,'Visible','on') 使坐标区可见。

  • axesscale(h(1)) 将包含阿拉斯加和夏威夷的坐标区调整为与本土各州相同的比例尺。

版本历史记录

在 R2006a 之前推出

全部展开