制作世界及美国各地区的地图
本主题介绍了如何使用 worldmap 和 usamap 函数创建世界各地区地图以及美国各地区地图。每个函数都会创建一个基于 axesm 的映射,然后根据您指定的区域自动选择投影、边界及其他属性。
此外,在使用 worldmap 或 usamap 函数设置好映射后,您还可以使用 setm 函数对该映射进行自定义。
制作世界各地区地图
使用 worldmap 函数绘制一个世界区域的地图。
绘制一张南美洲地图。worldmap 函数会创建一个基于 axesm 的地图,并选择合适的地图投影。
figure
worldmap("South America")
通过查询基于 axesm 的地图的 MapProjection 属性,查找地图投影。结果 'eqdconic' 表示该地图采用等距圆锥投影。
ax = gca;
getm(ax,"MapProjection")ans = 'eqdconic'
使用 geoshow 函数,根据 shapefile 文件显示世界各国的陆地面积、河流和城市。陆地区域用绿色表示,河流用蓝色表示,城市用黑色表示。
geoshow("landareas.shp","FaceColor",[0.5 0.7 0.5]) geoshow("worldrivers.shp","Color","blue") geoshow("worldcities.shp","Marker",".","Color","red")

制作美国各地区的地图
使用 usamap 函数绘制美国某地区的地图。usamap 函数可帮助您绘制整个美国、美国本土、若干个州的组合或单个州的地图。
绘制一张切萨皮克湾地区的地图。usamap 函数会创建一个基于 axesm 的地图,并选择合适的地图投影。
figure usamap([37 40],[-78 -74]);

通过查询基于 axesm 的地图的 MapProjection 属性,查找地图投影。结果 'lambert' 表示该地图采用了兰伯特等角圆锥投影法,这种投影法常用于绘制美国本土地图。
ax = gca;
getm(ax,"MapProjection")ans = 'lambert'
将一个包含美国各州的 shapefile 文件读入工作区。该函数返回地理空间表中的数据。
states = readgeotable("usastatehi.shp");通过创建符号规范来定义各状态的颜色。使用 polcmap 函数生成一组由随机、柔和色彩组成的颜色图。
h = height(states); faceColors = makesymbolspec('Polygon',{'INDEX',[1 h],'FaceColor',polcmap(h)});
使用 geoshow 函数显示美国各州。使用符号规范指定每个状态的颜色。
geoshow(states,"SymbolSpec",faceColors)
使用 textm 函数在地图上添加文本标签。从地理空间表中获取纬度、经度和州名。
lat = states.LabelLat; lon = states.LabelLon; name = states.Name; textm(lat,lon,name,"HorizontalAlignment","center") textm(38.2,-76.1," Chesapeake Bay ","FontWeight","bold","Rotation",270)
