主要内容

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

usamap

创建基于 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.

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

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 关联的常规数据网格。

地理参考,指定为以下之一:

类型描述
地理栅格参考对象

GeographicCellsReferenceGeographicPostingsReference 地理栅格参考对象。RasterSize 属性必须与数据网格的大小 size(Z) 保持一致。

向量

1×3 的数值向量,其元素为:

[cells/degree northern_latitude_limit western_longitude_limit]
矩阵

3×2 数值矩阵,根据以下规则将栅格行和列索引转换为地理坐标或反向转换:

[lon lat] = [row col 1] * R

R 定义了一种(非旋转、非倾斜)关系,其中数据网格的每列沿经线分布,每行沿纬线分布。

有关向量和矩阵参考的更多信息,请参阅Georeferenced Raster Data

输出参量

全部折叠

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

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

提示

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

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

  • axes(h(n)),其中 n = 123,将所需坐标区设为当前坐标区。

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

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

版本历史记录

在 R2006a 之前推出