1.问题
在高维度地区,如果我们使用mercator等一系列的等角投影,则绘制的投影结果面积变形。此时需要用等面积投影,比如lambert投影。
lambert投影结果为扇形,这就导致如果将matlab中的绘制的扇形矢量图导入到coreldraw等图形编辑软件中,会在扇形外面的矩形区域出现灰色斑块。因为图形是按照规则的矩形存储的。
那么如何既能够保持等面积投影,又能够将导出矢量图进行编辑呢?
2.方法
可以使用m_map的投影方式:oblique mercator。这种投影既能保证投影面积不变形,又能够输出矩形图形。
m_proj('oblique mercator','lat',[80 60],'long',[-180 -150],'aspect',0.8);
caxis([-4000 4000]);
colormap([m_colmap('blues',200);m_colmap('gland',200)]);
m_etopo2('shadedrelief','gradient',3);
hc=colorbar;
set(hc,'tickdir','out','fontsize',16)
m_gshhs('ic','color','k')
m_grid('linestyle','-','gridcolor','k','tickdir','out','fontsize',18);
set(gcf,'position',[0 0 800 1000]);
print('-dpng','-r600',['test.png'])
需要注意的是:m_proj('oblique mercator','lat',[80 60],'long',[-180 -150],'aspect',0.8);
中的lat
范围要从从大到小,因为默认是第一个数在图形上侧,第二个在下侧。
当投影区域为南半球时,则相反。