MATLAB绘制一幅中国地图
今天博主跟大家讲一下如何用MATLAB制作一幅中国地图,那废话不多说,我们先看一下最终效果吧。

mercator墨卡托圆柱投影地图

lambert兰伯特圆锥投影地图
一张中国地图大概包括以下要素:
中国矢量数据(面、省界线等shp数据)、地图四要素(图名或标题、指北针、比例尺、图例),最好加一个海南岛及南海诸岛的鹰眼图。
大概思路:
清理内存
地图投影
加载面文件
加载省界线文件(包含国界(含九段线))
显示省会点
省会标注
添加图名
添加图例
添加指北针
添加鹰眼图
整体代码如下:
close all, clear all, clc, dbstop if error
h1=worldmap('china')
setm(h1,'mapprojection','mercator');%圆柱投影
%setm(h1,'mapprojection','lambert');%正形圆锥投影
setm(h1,'FFaceColor','w')%图廓
ChinaP=shaperead('bou1_4p.shp','UseGeoCoords',true)%中国面文件
ChinaL=shaperead('bou2_4l.shp','UseGeoCoords',true)%中国省界线文件(包含九段线)
CapLon=[117.000923,115.48333,125.35000,127.63333,123.38333,111.670801,87.68333,103.73333,106.26667,112.53333,108.95000,113.65000,117.283042,119.78333,120.20000,118.30000,113.23333,115.90000,110.35000,108.320004,106.71667,113.00000,114.298572,104.06667,102.73333,91.00000,96.75000,117.20000,121.55333,106.45000,116.41667,121.30,114.10000,113.50000];
CapLat=[36.675807,38.03333,43.88333,47.75000,41.80000, 41.818311,43.76667,36.03333,37.46667,37.86667,34.26667,34.76667, 31.86119,32.05,30.266,26.0833,23.16667,28.68333,20.01667, 22.8240,26.56667,28.2166, 30.58435,30.6666,25.05000,30.600,36.5666,39.133,31.2000, 29.566,39.9166, 25.03,22.20,22.20];
names={'济南','石家庄','长春','哈尔滨','沈阳', '呼和浩特','乌鲁木齐','兰州','银川','太原','西安','郑州','合肥','南京','杭州','福州','广州','南昌','海口','南宁','贵阳','长沙','武汉','成都','昆明','拉萨','西宁','天津','上海','重庆', '北京','台北','香港','澳门'};
geoshow(ChinaP,'Facecolor',[1 1 0.5])%显示面
geoshow(ChinaL,'LineStyle','-.','Color','k','LineWidth',1)%显示界线
geoshow(CapLat,CapLon,'DisplayType','point','Marker','.','MarkerEdgeColor','red')%省会点
geoshow(39.9166,116.41667,'DisplayType','point','Marker','p','MarkerEdgeColor','red')%首都
%省会标注
for i=1:numel(names)
textm(CapLat(i)+0.3,CapLon(i)+0.3,names(i),'color','k','FontSize',8)
end
%图名
title('中国政区地图','FontSize',20);
%图例
legend({'省界线','省会','首都','国界线'},'FontSize',12,'Location','southwest')
%比例尺
scaleruler('units','km')
setm(handlem('scaleruler1'),'RulerStyle','lines','MajorTick',0:500:1000,'MinorTick',0:250:500,'TickDir','down')
%海南岛及南海诸岛
h2=axes('pos',[0.5922 0.15 0.13 0.2])
worldmap([5.559248066 20.549868679],[106.680363685 122.034461754])
setm(h2,'FFaceColor','w')
insert1=shaperead('bou2_4l.shp','UseGeoCoords',true)
geoshow([insert1.Lat],[insert1.Lon],'Color','k','LineWidth',1)
mlabel
plabel
gridm
setm(h2,'FFacecolor','c')
title('海南岛及南海诸岛','FontSize',6)
% 指北针
northarrow('latitude',50,'longitude',62)
h=handlem('NorthArrow');
set(h,'FaceColor','k')
运行结果图:

数据文件在博主主页文件ChinaMap.rar压缩包中,请自行下载。
扫码关注微信公众号
MATLAB绘制一幅中国地图的更多相关文章
- vue中使用echarts来绘制世界地图和中国地图
第一步,下载echarts cnpm install echarts --save-dev 第二步,在main.js中全局引入 //引入echarts import echarts from 'ech ...
- 利用d3.js绘制中国地图
d3.js是一个比較强的数据可视化js工具. 利用它画了一幅中国地图,例如以下图所看到的: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3ZhcDE=/ ...
- 用matlab绘制中国地图
reference:https://jingyan.baidu.com/article/870c6fc36fdacfb03ee4be58.html shp: http://muchong.com/ht ...
- matlab利用m_map工具包画中国地图及散点云图
开始之前需要准备好malab,中国地图shp文件,m_map工具包. 中国地图shp文件可以在下面的链接中下载: https://gadm.org/download_country_v3.html 本 ...
- Javascript实战开发:教你使用raphael.js绘制中国地图
最近的数据统计项目中要用到中国地图,也就是在地图上动态的显示某个时间段某个省份地区的统计数据,我们不需要flash,仅仅依靠raphael.js以及SVG图像就可以完成地图的交互操作.在本文中,我给大 ...
- R绘制中国地图,并展示流行病学数据
流行病学的数据讲究“三间分布”,即人群分布.时间分布和空间分布.其中的“空间分布”最好是在地图上展示,才比较清楚.R软件集统计分析与高级绘图于大成,是最适合做这项工作了.关于地图的绘制过程,谢益辉.邱 ...
- D3.JS V4 绘制中国地图
参考:http://bl.ocks.org/almccon/fe445f1d6b177fd0946800a48aa59c71 http://blog.csdn.net/lzhlzz/article/d ...
- Android 绘制中国地图
最近的版本有这样一个需求: 有 3 个要素: 中国地图 高亮省区 中心显示数字 面对这样一个需求,该如何实现呢? 高德地图 因为项目是基于高德地图来做的,所以很自然而然的想到了高德.但是当查阅高德地图 ...
- Vue3 + Echarts 5 绘制带有立体感流线中国地图,建议收藏
本文绘制的地图效果图如下: 一.Echarts 使用五部曲 1.下载并引入 echarts Echarts 已更新到了 5.0 版本,安装完记得检查下自己的版本是否是 5.0 . npm instal ...
随机推荐
- js null和{}区别
{}是一个不完全空的对象,因为他的原型链上还有Object呢,而null就是完全空的对象,啥也没有,原型链也没有,所以null instanceof Object === false;[]就更不用说了 ...
- Windows服务调用Office时,未将对象引用的实例
Windows键+R键 回车 输入:comexp.msc -32 回车 点击控制台根节点--组件服务--计算机--我的电脑- ...
- (Elementui) el-tree 中英文过滤以及搜索到父子显示子节点,搜索到子节点显示父节点(filter-node-method)
案例下载:https://gitee.com/tudoumlp/just1.git (vue-ele-demo) 在项目中,会遇到树节点的搜索,中文和英文搜索,以及搜索到父节点匹配的时候同步显示该 ...
- webhook触发jenkins进行sonar检测
目的 jenkins仅需创建一个job,git推送后自动进行sonar代码检测并上传到sonarqube jenkins插件 已按社区推荐安装基本插件 Generic Webhook Trigger ...
- 2、前端--初见前后端交互、CSS简介、基本选择器、组合选择器、属性选择器、分组与嵌套、伪类选择器
今日内容概要 初窥后端框架 css简介 css选择器 今日内容详细 初次体验前后端交互 # 代码无需掌握 只看效果即可 """后端框架:可以简单的理解为别人写好的一个非常 ...
- Linux基础:VLAN篇
一.二层基础知识 1.1 vlan介绍 本小节重点: vlan的含义 vlan的类型 交换机端口类型 vlan的不足 1.1.1 vlan的含义 局域网LAN的发展是VLAN产生的基础,因而先介绍一下 ...
- Linux爱情故事之如何以不一样的姿势(ssh)进入她的心
文章目录 1.ssh是谁,为什么要进入她的心 2.如何正确的扒拉ssh 2.1.ssh的常用参数 2.2.您配钥匙吗?(ssh生成公钥或者秘钥) 2.3.我要单向畅通无阻的进入你的心(ssh-copy ...
- Unity容器构造函数参数循环引用问题及解决
关键字: Unity .NET5 .NET6 循环引用 循环依赖 Quartz StdSchedulerFactory 起因 在.NET6/.NET5环境中,使用Unity替换默认容器,用到了Quar ...
- selenium+python 处理只读日期控件的2种方法
前言 有时候测试过程中会遇到日期控件场景,这时候需要特殊处理,下文以12306网站为例 1.处理方式 通常是通过js去除只读属性(2种方法),然后通过send_keys重新写值 from time i ...
- 华为模拟器ensp AR启动失败 代码40 解决方案
前几天更换了一台电脑,安装好Windows10 ,安装ensp 模拟器,安装好ensp后,发现AR都启动不了.卸载重新安装还是不行,此时度娘了一下,发现都说是协助不彻底,没有清理干净安装插件.我做了最 ...