先上效果图,可以看到浅灰色是省界,蓝色是陆地上的国界及海岸线(注:领水国界未标,如果有需要最好手动用PPT标注)。
![](D:\OneDrive - stu.xmu.edu.cn\4 Code\1 M File\1 Matlab TUT\M_map_example\provinces_example.jpg)
-
配置水深地图,请参考我之前的知乎文章:怎么使用几行Matlab代码绘制地图?
-
下载省界or国界.shp文件,直接点击Natural Earth 再点击10进入网站直接下载,除了省界,还有国界等.shp文件
方法1:官网给出的官方代码
m_shaperead('path')
里面的path要写.shp文件放入的绝对路径下,并且这个路径中不仅要有.shp文件,还需要有.dbf&.shx,从上面的网站下载的压缩包解压之后会包含这些文件,路径注意不要加.shp,因为m_map包会自己识别三中类型文件。
M = m_shaperead('..\..\2 Supporting files\shape_files\ne_10m_admin_0_countries\ne_10m_admin_0_countries');
for k = 1 : length(M.ncst)
m_line(M.ncst{k}(:,1),M.ncst{k}(:,2), 'linewidth', 1);
end
方法2:使用m_line
与刚才的m_shaperead
有所区别,这里的路径读取到.shp,没有使用到另外两个文件
M = shaperead('..\..\2 Supporting files\shape_files\ne_10m_admin_1_states_provinces\ne_10m_admin_1_states_provinces.shp');
provi_boudry_lon = [M(:).X];
provi_boudry_lat = [M(:).Y];
m_line(provi_boudry_lon, provi_boudry_lat, 'color', [118,125,135]./255, 'linewidth', 0.5);
上述任一方法嵌入之前水深的代码块中,便可以获得即拥有水深,还有省界or国界的地图,各省地名用ppt手动增加,会比在matlab里面增加更加方便省力
完整代码及无法科学上网获得省界和国界的朋友可以到我的github上下载。