依旧需要用到Mapping Toolbox不会安装的可以看我上一篇

虽然我们只读取shp文件,但需要保证文件夹里还有shx文件及dbf文件

各省边界线绘图

provinces=shaperead('bou2_4l.shp','UseGeoCoords',true);% 绘图
worldmap('China');
geoshow(provinces)

省份填色图

provinces=shaperead('bou2_4p.shp','UseGeoCoords',true);% 绘图
worldmap('China');
faceColors=makesymbolspec('Polygon',{'INDEX',[1 numel(provinces)],'FaceColor',polcmap(numel(provinces))});
geoshow(provinces,'DisplayType','polygon','SymbolSpec',faceColors)

由于该部分旨在展示数据,并不包含海上国界详细信息,图片无法显示,请自行绘图尝试

改个颜色:

provinces=shaperead('bou2_4p.shp','UseGeoCoords',true);% 插值定义颜色
C=[222,238,209;126,190,174;144,213,220;33,118,155;30,69,128;20,49,127]./255;
C1(:,1)=interp1(0:5,C(:,1),linspace(0,5,numel(provinces)),'linear')';
C1(:,2)=interp1(0:5,C(:,2),linspace(0,5,numel(provinces)),'linear')';
C1(:,3)=interp1(0:5,C(:,3),linspace(0,5,numel(provinces)),'linear')';% 绘图
worldmap('China');
faceColors=makesymbolspec('Polygon',{'INDEX',[1 numel(provinces)],'FaceColor',C1});
geoshow(provinces,'DisplayType','polygon','SymbolSpec',faceColors)

由于该部分旨在展示数据,并不包含海上国界详细信息,图片无法显示,请自行绘图尝试

标注省份名称

provinces=shaperead('bou2_4p.shp','UseGeoCoords',true);% 插值定义颜色
C=[222,238,209;126,190,174;144,213,220;33,118,155;30,69,128;20,49,127]./255;
C1(:,1)=interp1(0:5,C(:,1),linspace(0,5,numel(provinces)),'linear')';
C1(:,2)=interp1(0:5,C(:,2),linspace(0,5,numel(provinces)),'linear')';
C1(:,3)=interp1(0:5,C(:,3),linspace(0,5,numel(provinces)),'linear')';% 绘图
worldmap('China');
faceColors=makesymbolspec('Polygon',{'INDEX',[1 numel(provinces)],'FaceColor',C1});
geoshow(provinces,'DisplayType','polygon','SymbolSpec',faceColors)% 读取首都和省级行政中心位置信息并标记
pnames=shaperead('res1_4m.shp','UseGeoCoords',true);
for i=1:numel(pnames)textm(pnames(i).Lat,pnames(i).Lon,pnames(i).NAME, ...'HorizontalAlignment','center','FontSize',5,'color','k')
end

由于该部分旨在展示数据,并不包含海上国界详细信息,图片无法显示,请自行绘图尝试

单独绘制某个省份:

worldmap([42,55],[120,137]);% 从中国省份数据文件中获取黑龙江省
P=shaperead('bou2_4p.shp','UseGeoCoords',true,...'Selector',{@(name) strcmp(name,'黑龙江省'),'NAME'});
patchm(P.Lat,P.Lon, [0.5 0.7 0.5])


注 :对于某些轮廓线较为复杂的省份,很难使用一个多边形区域描绘,其返回值含有 多个对象,循环绘图即可解决,如下例:

中国公路交通图

borders=shaperead('bou1_4p.shp','UseGeoCoords',true);
roads=shaperead('roa_4m.shp','UseGeoCoords',true);
worldmap('China');geoshow(borders,'FaceColor',[239,238,234]./255)
geoshow(roads,'Color',[250,227,158]./255,'LineWidth',1.5)

由于该部分旨在展示数据,并不包含海上国界详细信息,图片无法显示,请自行绘图尝试

中国铁路交通图

borders=shaperead('bou1_4p.shp','UseGeoCoords',true);
rails=shaperead('rai_4m.shp','UseGeoCoords',true);
worldmap('China');geoshow(borders,'FaceColor',[239,238,234]./255)
geoshow(rails,'Color',[.2,.2,.2],'LineWidth',1,'LineStyle','-.')

由于该部分旨在展示数据,并不包含海上国界详细信息,图片无法显示,请自行绘图尝试

中国河流图

borders=shaperead('bou1_4p.shp','UseGeoCoords',true);
riversp=shaperead('hyd1_4p.shp','UseGeoCoords',true);
riversl=shaperead('hyd1_4l.shp','UseGeoCoords',true);
worldmap('China');geoshow(borders,'FaceColor',[239,238,234]./255)
geoshow(riversp,'FaceColor',[127,141,181]./255,'EdgeColor',[127,141,181]./255)
geoshow(riversl,'Color',[127,141,181]./255,'LineWidth',1)

由于该部分旨在展示数据,并不包含海上国界详细信息,图片无法显示,请自行绘图尝试

组合美化图

美化图一

ax=worldmap('China');
setm(ax,'FFaceColor',[153,179,204]./255)% 绘制附近大陆
antarctica = shaperead('landareas.shp', 'UseGeoCoords', true,...'Selector',{@(name) strcmp(name,'Africa and Eurasia'), 'Name'});
patchm(antarctica.Lat, antarctica.Lon, [0.5 0.7 0.5])% 绘制中国国界
bordersl=shaperead('bou1_4l.shp','UseGeoCoords',true);
geoshow(bordersl,'Color',[.3,.3,.3],'LineWidth',1)
bordersp=shaperead('bou1_4p.shp','UseGeoCoords',true);
patchm([bordersp.Lat],[bordersp.Lon],[239,238,234]./255);% 绘制河流
riversp=shaperead('hyd1_4p.shp','UseGeoCoords',true);
riversl=shaperead('hyd1_4l.shp','UseGeoCoords',true);
geoshow(riversp,'FaceColor',[127,141,181]./255,'EdgeColor',[127,141,181]./255)
geoshow(riversl,'Color',[127,141,181]./255,'LineWidth',1)% 绘制公路
roads=shaperead('roa_4m.shp','UseGeoCoords',true);
geoshow(roads,'Color',[250,227,158]./255,'LineWidth',1.5)tightmap

美化图二

ax=worldmap('china');
setm(ax,'mapprojection','mercator');% 绘制国界
bordersl=shaperead('bou1_4l.shp','UseGeoCoords',true);
geoshow(bordersl,'Color',[.3,.3,.3],'LineWidth',1)
% 绘制省份
colorList=[197,228,212;255,254,216;251,197,221;199,205,231]./255;
colorList=repmat(colorList,[250,1]);
provinces=shaperead('bou2_4p.shp','UseGeoCoords',true);
colorList=colorList(1:numel(provinces),:);
faceColors=makesymbolspec('Polygon',{'INDEX',[1 numel(provinces)],'FaceColor',colorList});
geoshow(provinces,'DisplayType','polygon','SymbolSpec',faceColors)% 首都
pnames=shaperead('res1_4m.shp','UseGeoCoords',true);
geoshow(pnames(1).Lat,pnames(1).Lon,'DisplayType','point','Marker','p',...'MarkerEdgeColor',[.8,0,0],'MarkerFaceColor',[.8,0,0])% 指北针
northarrow('latitude',50,'longitude',80,'scaleratio',.08,'FaceColor',[.4,.4,.4])% 比例尺
scaleruler on
setm(handlem('scaleruler1'), ...'XLoc',-3.2e6,'YLoc',1.8e6, ...'MajorTick',0:500:2000,...'MinorTick',0:40:200,'FontSize',7)
scaleruler('units','nm')
setm(handlem('scaleruler2'), ...'XLoc',-3.15e6, ...'YLoc',1.7e6, ...'TickDir','down', ...'MajorTick',0:250:1000,...'MinorTick',0:40:200,...'MajorTickLength',km2nm(25),...'MinorTickLength',km2nm(12.5),'FontSize',7)% 小地图
h2=axes('pos',[0.67 0.15 0.13 0.2]);
worldmap([1 22],[106 122])
setm(h2,'FFaceColor',[197,213,236]./255,'FEdgeColor',[.3,.3,.3],'FLineWidth',1.5)
insert1=shaperead('bou2_4l.shp','UseGeoCoords',true);
geoshow(insert1,'Color',[.2,.2,.2],'LineWidth',1)
insert2=shaperead('bou2_4p.shp','UseGeoCoords',true);
geoshow(insert2,'FaceColor','w')
mlabel off
plabel off
gridm off


代码和数据:
链接:https://pan.baidu.com/s/12wP-N86fpfq4WOgQQOrahQ
提取码:slan

MATLAB绘制中国地图超全教程相关推荐

  1. Matlab绘制中国地图(大陆地区)

    1 简介 MATLAB是著名的科学软件,具有绘图.编程.仿真等强大的功能.现在介绍MATLAB绘制中国地图的三种方式,分别是(1)使用m_map工具箱命令绘制中国地图:(2)使用mapshow和geo ...

  2. matlab画中国地图深浅,matlab绘制中国地图

    使用mapshow+shapefile的方法: %% mapchina clc;clear;clf % shapefile中都包含了国界和省界 fnshp_L='E:\ChinaMap\国界与省界\b ...

  3. matlab绘制中国地图

    使用mapshow+shapefile的方法: %% mapchina clc;clear;clf % shapefile中都包含了国界和省界 fnshp_L='E:\ChinaMap\国界与省界\b ...

  4. matlab绘制中国南海地图(九段线小图)

    matlab绘制中国南海地图(九段线小图) 网上关于怎么画南海九段线小图的文章不多,在此记录一下. 绘制南海图 首先要下载中国地图的shp文件,参见上一篇文章. %------------------ ...

  5. [Echarts可视化] 一.入门篇之简单绘制中国地图和贵州地区

    最近发生了很多事情,去到了一个新环境学习.但是不论在哪里,我都需要不忘初心,坚持做自己喜欢的事情,在CSDN写博客.教学.爱娜.生活等等.         这篇文章主要是通过Echarts可视化介绍入 ...

  6. 使用raphael.js绘制中国地图

    最近的数据统计项目中要用到中国地图,也就是在地图上动态的显示某个时间段某个省份地区的统计数据,我们不需要flash,仅仅依靠raphael.js以及SVG图像就可以完成地图的交互操作.在本文中,我给大 ...

  7. qcustomplot绘制热力图瀑布图_使用REmap绘制中国地图

    上次我们介绍了使用ggplot2绘制中国热力地图,需要温习的同学可以点击以下链接 使用ggplot2绘制中国地图  .在使用ggplot2绘制的时候,需要进行数据处理的步骤比较多,今天我们介绍一个新的 ...

  8. Ant Design Charts绘制中国地图并动态添加标记点

    绘制中国地图并动态添加标记点,在这里使用的是antd charts绘制,需要求只显示中国地图,并且跟踪物流信息 使用组件地址: 图表 - Plot | Ant Design Charts 这里的引入方 ...

  9. cad计算机中怎么用除号,CAD中特殊符号如何输入?超全教程,一看就懂!

    原标题:CAD中特殊符号如何输入?超全教程,一看就懂! CAD制图不同行业有不同的设计符号,但是你知道哪些特殊的符号要怎么输入呢?一旦入门CAD设计,你必须要熟悉了解这些符号输入操作. 本文会和大家分 ...

  10. Basemap绘制中国地图

    2022.06.02更新 CHN_adm_shp.zip 网盘下载链接: 链接:https://pan.baidu.com/s/11igf-bfDLuolI5HzEykzMw 提取码:oas6 201 ...

最新文章

  1. 刚上线就报名2000人!8位大牛免费讲座,再不报名就满额了!
  2. 深度隐式表达:为什么不用mesh,点云,体素等表示方法?
  3. RS232 波特率时钟产生方法?
  4. oracle spm使用1
  5. oc引导win方法_[OC更新]机械革命8代、9代标压稳定版更新
  6. Storm对DRPC权限控制Version1.0.1
  7. word公式编号怎么右对齐_8个能帮你大忙的Word技巧,建议花几分钟学起来!
  8. linux文字大小,Qt 字体大小的计算
  9. OverMail 超越邮件
  10. redis的基础配置
  11. DirectX 9高层着色语言介绍4——语言基础(3)
  12. vex编程语言是基于c语言,vex机器人编程软件 vex机器人大赛
  13. 2022依旧可用的抖音无水印解析工具,免费分享
  14. 异步编程 CompletableFuture(JDK1.8)
  15. 地理信息安全在线培训考试-判断题
  16. swift Key Path Layer.borderColor/Layer.borderUIColor 设置边框为黑框 颜色无效
  17. Angular入门-Hero Editor抽丝
  18. Linux-------线程安全
  19. mysql中floa类型数据和mysql命令
  20. D17 LeetCode 2043.简易银行系统(中等)

热门文章

  1. 古今地名对照总表!(按笔划数排序,强烈推荐的资料)
  2. idea破解版下载 + 最常用快捷键记录
  3. c语言程序设计 网上资源,超星尔雅C语言程序设计-资源包完整答案
  4. android 打印机 万能驱动,万能打印机驱动专家
  5. linux sz 大于4g,ubuntu 使用sz命令传输windows大于4G的文件
  6. 安卓UI相关开源项目库汇总
  7. Nginx跨域配置及配置文件加载过程讲解
  8. 解决计算机主机与打印机共享打印机,HP M126A打印机共享打印机后必须得主机先打印一次后其他电脑才能打印问题的解决办法...
  9. stm32伺服电机转速计算方法
  10. Web前端热门框架大全