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 ...
随机推荐
- Linux-标准输入标准输出
标准输入(代码为0) 标准输出(代码为1) 标准错误输出(代码为2) 将标准输出重定向到一个文件 find /etc -name fileA >list 等同于 find /etc -name ...
- LeetCode随缘刷题之回文数
package leetcode.day_01_30; /** * 给你一个整数 x ,如果 x 是一个回文整数,返回 true :否则,返回 false . * <p> * 回文数是指正 ...
- Jest_JavaScript测试框架
Jest是一个JavaScript测试框架,由Facebook用来测试所有JavaScript代码,包括React应用程序. 不同级别的自动化测试:单元.集成.组件和功能. 单元测试可以看作是和在组件 ...
- AppiumForMac安装2
安装了两天的Python和Appium,各种不成功,到现在还不知道要怎么才能使用,两者之间的关联性还是没找到. 虽然很乱,还是把这期间用到的知识汇总下: 1.爬墙很重要,下载东西慢的很. 2.最新的M ...
- 帆软报表(finereport)雷达图钻取详细点新页面展示
添加参数栏,季度下拉框的空间名为combobox0 添加雷达图,通过第三页面做跳转 雷达图钻取.cpt为联动钻取的第三页面 添加纬度(所点击钻取的点) 参数 wd 添加季度参数 jd 值为季 ...
- 4、架构--NFS实践、搭建web服务、文件共享
笔记 1.晨考 1.数据备份的方式有哪些 全量和增量 2.数据备份的命令有哪些,都有哪些优点缺点 cp : 本地,全量复制 scp :远程,全量复制 rsync :远程,增量复制 3.rsync的参数 ...
- MySQL中的严格模式
很多集成的PHP环境(PHPnow WAMP Appserv等)自带的MySQL貌似都没有开启MySQL的严格模式,何为MySQL的严格模式,简单来说就是MySQL自身对数据进行严格的校验(格式.长度 ...
- Java并发基础之AbstractQueuedSynchronizer(AQS)
AbstractQueuedSynchronizer同步器是实现JUC核心基础组件,因为 定义了一套多线程访问共享资源的同步器框架.前面几篇文章中JUC同步工具中都利用AQS构建自身的阻塞类.AQS解 ...
- oracle数据库表导出
寻找一个测试table,清空,将需要导出的表导入表中的任意一列,写导出语句,导出. EXPDP USERID='user/account@orcl11 as sysdba' schemas=temp ...
- Python中类的多层继承和多重继承