主要内容

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

将矢量数据显示为线条和区域

将向量数据以线条和区域(实心多边形)的形式显示在地图上。

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

准备数据

准备示例中要使用的数据。

将一个包含美国各州的 shapefile 文件读入地理空间表中。该表通过多边形图形以地理坐标形式展示了各州的情况。创建一张关于美国本土各州的子表。

statesGT = readgeotable("usastatehi.shp");

rows = statesGT.Name ~= "Hawaii" & statesGT.Name ~= "Alaska";
conusGT = statesGT(rows,:);

将一个包含全球河流数据的 shapefile 文件读入地理空间表中。该表格使用线形在地理坐标系中表示了各条河流。将河流的范围限定在美利坚合众国本土的地理边界内。

riversGT = readgeotable("worldrivers.shp");

[latlim,lonlim] = bounds(conusGT.Shape,"all");
clippedRivers = geoclip(riversGT.Shape,latlim,lonlim);
riversGT.Shape = clippedRivers;

将一个包含全球湖泊数据的 shapefile 文件读入地理空间表中。创建一个包含五大湖的子表。

lakesGT = readgeotable("worldlakes.shp");

lakeNames = ["Lakes Superior, Michigan, Huron","Lake Ontario","Lake Erie"];
greatLakesGT = geocode(lakeNames,lakesGT);

使用地图坐标区创建地图

使用线段和多边形在地图坐标系对象上显示向量数据。

使用适用于美国本土的投影坐标参考系 (CRS) 建立一张地图。使用 ESRI 代码 102003 创建投影 CRS。

figure
proj = projcrs(102003,Authority="ESRI");
newmap(proj)
hold on

使用 geoplot 函数将数据显示在地图上。

  • 用绿色多边形显示各州。

  • 用不透明的浅蓝色多边形显示五大湖。

  • 用蓝色线条显示河流。

geoplot(statesGT,FaceColor=[0.4660 0.6740 0.1880])
geoplot(greatLakesGT,FaceAlpha=1,FaceColor=[0.3010 0.7450 0.9330])
geoplot(riversGT,Color=[0 0.4470 0.7410])

Figure contains an axes object with type mapaxes. The mapaxes object contains 3 objects of type polygon, line.

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

在基于 axesm 的地图上,使用线条和区域显示向量数据。

使用 unionbuffer 函数创建一个延伸至美国本土以外的多边形。然后,使用 bounds 函数计算用于基于 axesm 的地图的纬度和经度边界。

statesUnion = union(conusGT.Shape);
buffered = buffer(statesUnion,2);
[latlim,lonlim] = bounds(buffered);

使用 axesm 函数、等面积圆锥投影以及计算出的边界值,创建一张基于 axesm 的地图。当您指定地图边界时,地图会自动将投影中心对准适当的经度。通过将 MapParallels 参量指定为空矩阵,使用标准纬线的默认纬度。

figure
axesm(MapProjection="eqaconic",MapParallels=[], ...
    MapLatLimit=latlim,MapLonLimit=lonlim)
axis off 

显示地图边框、地图网格、经线标签和纬线标签。

framem 
gridm 
mlabel 
plabel

使用 geoshow 函数将数据显示在地图上。

  • 使用绿色色块显示各州的情况。

  • 用浅蓝色块显示五大湖。

  • 用蓝色线条显示河流。

geoshow(conusGT,FaceColor=[0.8157 0.8863 0.7176])
geoshow(greatLakesGT,FaceColor=[0.3010 0.7450 0.9330])
geoshow(riversGT,Color=[0 0.4470 0.7410])

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

提示

  • axesm 函数不同,worldmapusamap 函数会根据输入数据自动选择合适的限值。

  • 若要绘制已处于投影坐标系中的数据,请使用常规的坐标轴对象和 mapshow 函数。

另请参阅

函数

属性

主题