- 积分
- 3431
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2014-11-27
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
MATLAB绘制中国地图的三种方式有:
(A)使用m_map工具箱命令绘制中国地图;
(B)使用mapshow和geoshow命令直接绘制中国地图;
(C)使用worldmap+geoshow命令绘制中国地图。
说明:
(1)使用m_map工具箱命令绘制中国地图需要先安装m_map工具箱,这篇百度经验"MATLAB学习与使用:安装M_Map工具箱和测试使用"
http://jingyan.baidu.com/article/22fe7cedc689253003617f54.html,详细介绍了m_map工具箱的安装、测试和简单使用。
(2)使用A,B和C三种方式绘制中国地图时,都用到了.shp格式的中国国界省界地图数据,关于.shp地图数据下载网上有很介绍。
使用(A),(B)和(C)三种方式绘制中国地图源代码如下:figure(1),figure(2)和figure(3)分别使用了A、B、C三种方式绘制中国地图。关于代码中命令的说明,参考百度经验“MATLAB3种方式绘制地图(m_map/mapshow/geoshow)”
http://jingyan.baidu.com/article/870c6fc36fdacfb03ee4be58.html
close all, clear all, clc, dbstop if error
infoL=shapeinfo('D:\Matlab\MATLAB2017\bou2_4l.shp')
infoP=shapeinfo('D:\Matlab\MATLAB2017\bou2_4p.shp')
ChinaL=shaperead('D:\Matlab\MATLAB2017\bou2_4l.shp');
ChinaP=shaperead('D:\Matlab\MATLAB2017\bou2_4p.shp');
bou2_4lx=[ChinaL(:).X]
bou2_4ly=[ChinaL(:).Y];
bou2_4px=[ChinaP(:).X];
bou2_4py=[ChinaP(:).Y];
figure(1)
subplot(1,2,1);
m_proj('lambert','lon',[70,140],'lat',[0,60]);m_plot(bou2_4lx,bou2_4ly,'k');
m_grid;
subplot(1,2,2);
m_proj('robinson','lon',[70,140],'lat',[0,60]);m_plot(bou2_4px,bou2_4py,'k');
m_grid;
m_coast('color','r','linewidth',1);
figure(2)
fnshp_L='D:\Matlab\MATLAB2017\bou2_4l.shp';
fnshp_P='D:\Matlab\MATLAB2017\bou2_4p.shp';
readL=shaperead(fnshp_L);readP=shaperead(fnshp_P);
subplot(2,2,1);mapshow(readL,'Color','k'); title('China mapshow PolyLine_1')
subplot(2,2,2);mapshow(readP,'FaceColor','r'); title('China mapshow Polygon_2')
subplot(2,2,3);geoshow(readL,'Color','r'); title('China geoshow PolyLine-3')
subplot(2,2,4);geoshow(readP,'FaceColor','y'); title('China geoshow Polygon-4')
figure(3)
subplot(2,2,1);
worldmap('China'); mapshow(fnshp_L,'Color','k');
subplot(2,2,2);
worldmap([0,55],[70,140]); mapshow(fnshp_P,'FaceColor',[0.5,1.0,0.5]);
setm(gca,'MLineLocation',10);
setm(gca,'PLineLocation',10);
setm(gca,'MLabelLocation',20);
setm(gca,'PLabelLocation',10);
subplot(2,2,3);
worldmap('China'); geoshow(fnshp_L,'Color','k');
subplot(2,2,4);
worldmap([0,55],[70,140]); geoshow(fnshp_P,'FaceColor',[0.5,1.0,0.5]);
setm(gca,'MLineLocation',10);
setm(gca,'PLineLocation',10);
setm(gca,'MLabelLocation',20);
setm(gca,'PLabelLocation',10);
title('中国地图','FontSize',14,'FontWeight','Bold')
心得和问题:(1)bou2_4p.shp作为Polygon类型的数据,用m_map工具箱中哪个命令才可以画出填色的图像,而不是只画出边界(figure(1)右图只是边界线)。(2)采用worldmap+mapshow命令不起作用(看图figure(3)前两张图可知),只有worldmap+geoshow命令起作用(可以画出lambert投影的感觉)。(3)如果没有worldmap命令,只采用geoshow命令,其绘图将与figure(2)一样,没有lambert投影的感觉。(4)其实,mapshow和geoshow命令可以直接画图,例如mapshow('D:\Matlab\MATLAB2017\bou2_4l.shp')或者geoshow('D:\Matlab\MATLAB2017\bou2_4l.shp')直接就出图,根本不用shaperead命令。上述代码复杂,有时只是强迫症而已。
以上不足,欢迎指导,也欢迎对两篇百度经验关注、评论。
(1)MATLAB学习与使用:安装M_Map工具箱和测试使用 http://jingyan.baidu.com/article/22fe7cedc689253003617f54.html
(2)MATLAB3种方式绘制地图(m_map/mapshow/geoshow) http://jingyan.baidu.com/article/870c6fc36fdacfb03ee4be58.html
最后上图,采用A,B和C三种方式画的图figure(1),figure(2),figure(3)
|
|