主要内容

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

使用 geoshow 时更改地图投影

您可以使用 geoshow 函数,在基于 axesm 的地图上显示经纬度栅格和向量数据。当您更改基于 axesm 的地图的投影时,如果该地图中包含由 geoshow 函数绘制的栅格数据,MATLAB® 会重新投影这些栅格数据。但是,如果地图中包含由 geoshow 函数绘制的向量数据,则 MATLAB 不会对向量数据进行重新投影。要对向量数据进行坐标系转换,必须先将向量数据从地图中移除,然后重新绘制。

使用 geoshow 时更改地图投影

在使用 geoshow 函数显示栅格和向量数据后,更改基于 axesm 的地图的投影。

重新投影栅格数据

当您更改基于 axesm 的地图的投影时,如果该地图中包含由 geoshow 函数绘制的栅格数据,MATLAB 会重新投影这些栅格数据。

创建一个基于 axesm 且采用墨卡托投影的地图。

figure
axesm mercator

使用 geoshow 函数在地图上显示栅格数据。例如,在此示例中,显示基于 EGM96 大地水准面模型的大地水准面高度。

[N,R] = egm96geoid;
geoshow(N,R,"DisplayType","surface")

Figure contains an axes object. The axes object contains an object of type surface.

将地图投影更改为莫尔韦德投影。

ax = gca;
setm(ax,"MapProjection","mollweid")

Figure contains an axes object. The axes object contains an object of type surface.

矢量数据重投影

当您更改基于 axesm 的地图的投影时,如果该地图中包含由 geoshow 函数绘制的向量数据,则 MATLAB 不会对向量数据进行重新投影。要对向量数据进行坐标系转换,必须先将向量数据从地图中移除,然后重新绘制。

建立一个基于 axesm 且采用米勒投影的地图。

figure
axesm miller

使用 geoshow 函数在地图上显示向量数据。例如,显示一个包含全球陆地面积的 shapefile。返回 v 中的绘图对象。

v = geoshow("landareas.shp");

Figure contains an axes object. The axes object contains 537 objects of type patch.

要对地图进行重新投影,请先删除绘图对象。将地图投影更改为正射投影。然后,再次绘制数据图。

delete(v)

ax = gca;
setm(ax,"MapProjection","ortho")

geoshow("landareas.shp")

Figure contains an axes object. The axes object contains 255 objects of type patch.

另请参阅

函数

属性

主题