一、画亚洲地图

1、worldmap()

(1)

clear all
worldmap('World')

clear all
worldmap('World')%世界地图
load coast %载入海岸线
plotm(lat,long)%经纬度

(2)

clear all
ax = worldmap('World');
setm(ax, 'Origin', [ ])%更改经度,从0到180再到0
land = shaperead('landareas', 'UseGeoCoords', true);%陆地
geoshow(ax, land, 'FaceColor', [0.5 0.7 0.5])

clear all
ax = worldmap('World');
setm(ax, 'Origin', [ ])%更改经度,从0到180再到0
land = shaperead('landareas', 'UseGeoCoords', true);
geoshow(ax, land, 'FaceColor', [0.5 0.7 0.5])
lakes = shaperead('worldlakes', 'UseGeoCoords', true);
geoshow(lakes, 'FaceColor', 'blue')
rivers = shaperead('worldrivers', 'UseGeoCoords', true);
geoshow(rivers, 'Color', 'blue')
cities = shaperead('worldcities', 'UseGeoCoords', true);
geoshow(cities, 'Marker', '.', 'Color', 'red')

land = shaperead('landareas', 'UseGeoCoords', true)%陆地  后者参数x,y为经纬度
geoshow(land, 'FaceColor', [0.5 0.7 0.5])

(3)

clear all
worldmap([- ],[ -]) %载入范围 load geoid %载入水准面数据
geoshow(geoid, geoidrefvec, 'DisplayType', 'texturemap'); %画图显示 load coast %载入海岸线
geoshow(lat, long) %显示

2、shaperead函数

(1)

clear all
landareas = shaperead('landareas.shp','UseGeoCoords',true);
axesm ('mercator', 'Frame', 'on', 'Grid', 'on','origin',[ ]);
geoshow(landareas,'FaceColor',[ .],'EdgeColor',[. . .]);

UseGeoCoords:可以选择为true或者false(默认),即是否使用地理结构(GeoStruts)。如果数据已经被投影了就选择false,如果还未被投影,可以选择true以生成投影。

3、 geoshow的用法

geoshow是用来显示地图数据的函数,非常重要,大部分的地图都使用该函数进行显示。

(1)          基本用法:

1)              geoshow(lat,lon)直接输入经纬度,将以该经纬度为中心,生成一小片地图。

2)              geoshow(filename)直接输入地图文件名,生成该地图

3)              geoshow(_,Name,Value,)输入相关属性并设定参数,生成所需要的地图。

(2)          常用属性:

1)              facecolor:定义了地图表面的颜色,需要输入三个参数且均在0至1之间。

2)              edgecolor:定义了海岸线边界的颜色,参数值同上。

clear all
geoshow('maps\bou2_4p.shp','FaceColor','G')
geoshow('maps\hyd1_4p.shp','FaceColor','b')
geoshow('maps\hyd2_4p.shp','FaceColor','r')

clear all
ax=worldmap([29.5 30.5],[ ]);%载入地图
geoshow(ax,'maps\bou2_4p.shp','FaceColor','G')%将边界线载入地图中

舟山群岛附近

(3)

clear all
figure
worldmap('na');%北美地图
states = shaperead('usastatehi', 'UseGeoCoords', true);%州界线
symspec = makesymbolspec('Polygon', ...
{'Name', 'Alaska', 'FaceColor', 'red'}, ...
{'Name', 'Hawaii', 'FaceColor', 'red'}); %hawaii和alaska设置为红色
geoshow(states, 'SymbolSpec', symspec,...
'DefaultFaceColor', 'blue','DefaultEdgeColor', 'black');%边界黑色,表面颜色蓝色,

(4)

clear all
load korea
figure;
worldmap(map, refvec)%空白地图
geoshow(gca,map,refvec,'DisplayType','texturemap');%纹理贴图
demcmap(map)
S = shaperead('landareas','UseGeoCoords',true);
geoshow([S.Lat], [S.Lon],'Color','black'); %边界设置为黑色

()

clear all

ax=worldmap('china'); % 使用worldmap的坐标轴作图
setm(ax,'grid','off') % 关闭grid
setm(ax,'frame','off') % 关闭边框
setm(ax,'parallellabel','off') % 关闭坐标轴标记
setm(ax,'meridianlabel','off') % 关闭坐标轴标记 sheng=shaperead('maps/bou2_4p.shp', 'UseGeoCoords', true);
geoshow(sheng); %

关闭边框,关闭坐标轴

4、 makesymbolspec函数

(1)

clear all
roads = shaperead('concord_roads.shp');
mapshow(roads);

clear all
roads = shaperead('concord_roads.shp');
geoshow(roads)

(2)

clear all
roads = shaperead('concord_roads.shp');
blueRoads = makesymbolspec('Line',{'Default','Color','r'});%红色
mapshow(roads,'SymbolSpec',blueRoads);

clear all
roads = shaperead('concord_roads.shp'); blueRoads = makesymbolspec('Line',{'Default','Color','r'}); geoshow(roads,'SymbolSpec',blueRoads)

  

(3)

clear all
roads = shaperead('concord_roads.shp');
roadColors = ...
makesymbolspec('Line',{'CLASS',2,'Color','r'},...
{'CLASS',3,'Color','g'},...
{'CLASS',6,'Color','b'},...
{'Default','Color','k'});
mapshow(roads,'SymbolSpec',roadColors);

clear all
roads = shaperead('concord_roads.shp');
roadColors = ...
makesymbolspec('Line',{'CLASS',1,'Color','r'},...
{'CLASS',4,'Color','g'},...
{'CLASS',5,'Color','b'},...
{'Default','Color','k'});
geoshow(roads,'SymbolSpec',roadColors);

(4)

roads = shaperead('concord_roads.shp');
lineStyle = makesymbolspec('Line',...
{'CLASS',[1 3], 'LineStyle',':'},...
{'CLASS',[4 6],'LineStyle','-.'});
mapshow(roads,'SymbolSpec',lineStyle);

 

3、

(1)美国分州颜色

clear all
ax = worldmap('USA');
load coastlines
geoshow(ax, coastlat, coastlon,'DisplayType', 'polygon', 'FaceColor', [.45 .60 .30])

 

美国地图轮廓

clear all
ax = worldmap('USA');
load coastlines
geoshow(ax, coastlat, coastlon,'DisplayType', 'polygon', 'FaceColor', [.45 .60 .30]) states = shaperead('usastatelo', 'UseGeoCoords', true);%州界线 geoshow(ax, states, 'DisplayType', 'polygon')

州默认颜色

clear all
ax = worldmap('USA');
load coastlines
geoshow(ax, coastlat, coastlon,'DisplayType', 'polygon', 'FaceColor', [. . .]) states = shaperead('usastatelo', 'UseGeoCoords', true);%州界线
faceColors = makesymbolspec('Polygon',{'INDEX', [ numel(states)], 'FaceColor', ...
polcmap(numel(states))}); % NOTE - colors are random,多边形,
geoshow(ax, states, 'DisplayType', 'polygon','SymbolSpec', faceColors)

(2)中国分省颜色

clear all
ax = worldmap('china'); setm(ax,'grid','off') % 关闭grid
setm(ax,'frame','off') % 关闭边框
setm(ax,'parallellabel','off') % 关闭坐标轴标记,平行线
setm(ax,'meridianlabel','off') % 关闭坐标轴标记,子午线 states = shaperead('maps/bou2_4p.shp', 'UseGeoCoords', true);%州界线
faceColors = makesymbolspec('Polygon',{'INDEX', [1 numel(states)], 'FaceColor', ...
polcmap(numel(states))}); % NOTE - colors are random,多边形,
geoshow(ax, states,'DisplayType', 'polygon', 'SymbolSpec', faceColors)

 

clear all
ax = worldmap('china');
%load coastlines
%geoshow(ax, coastlat, coastlon,'DisplayType', 'polygon', 'FaceColor', [.45 .60 .30]) %setm(ax,'grid','off') % 关闭grid
%setm(ax,'frame','off') % 关闭边框
%setm(ax,'parallellabel','off') % 关闭坐标轴标记,平行线
%setm(ax,'meridianlabel','off') % 关闭坐标轴标记,子午线 states = shaperead('maps/bou2_4p.shp', 'UseGeoCoords', true);%州界线
faceColors = makesymbolspec('Polygon',{'INDEX', [1 numel(states)], 'FaceColor', ...
polcmap(numel(states))}); % NOTE - colors are random,多边形,
geoshow(ax, states,'DisplayType', 'polygon', 'SymbolSpec', faceColors)

4、海拔高度的不同颜色显示

%-- 分省中国地图在MATLAB中的画法 --%
% Author: gaospecial@gmail.com
% Date: 2012-6-5 14:04:01
% 地图数据来源:国家基础地理信息系统网站
% 人口数据来源:国家统计年鉴2011版
%% 载入地图数据
clear all
% 载入各省的多边形数据
sheng=shaperead('maps/bou2_4p.shp', 'UseGeoCoords', true);% 本文件下的边界省
% 检查数据发现中午名称为乱码,可能是由于字符编码引起的,需要纠正文件导入时出现的乱码
% 中文名称记录在相应的dbf文件中,可以使用Excel打开,并且不会出现乱码,截取其中的中文保存为文本文件
% 然后在导入工作区,并将其保存为*.mat格式文件,随用随取。
% 依次替换sheng数据中的乱码【算是变通之法,有谁知道更好的方法一定告诉我哦】
load chinese_name.mat % 省,省会,主要城市的正确中文
for i=1:length(sheng)
sheng(i).NAME=sheng_chinese_name{i}; % 纠正中文显示错误
end
%unique(sheng_chinese_name) % 含有34个省(直辖市)的数据,合并相同的值
length(sheng) % 共分为925个区块
%% 使用importdata向导导入2011年全国31个省的人口数据
% data为人口数目 textdata为省名称
d=importdata('gaodu.txt');
%d=importdata('renkou.txt');
data=d.data; % 海拔高度
textdata=d.textdata; % 相对应的省的名称
%% 定义地图参数
% 针对不同省份,分别设置不同的颜色(FaceColor),由人口数据决定颜色数据
% 定义颜色
k=128;
mycolormap=summer(k);
% 生成不同区域按大小的颜色,按照人口数目多少分别指定不同的颜色
% 人口越多,颜色越突出
geoname={sheng.NAME}';%省的名字,925个
max_data = max(data);
n=length(data);
mysymbolspec=cell(1,n); % 预定义变量可以加快处理速度 %%
%高度和颜色对应起来,然后省份和颜色对应起来,利用归一化排序,定位
for i=1:n
count=data(i);%高度
mycoloridx=floor( k * count / max_data );
mycoloridx(mycoloridx<1)=1;
myprovince=textdata{i};%省,31个
geoidx=strmatch(myprovince, geoname);%从925中挑31的位置
if numel(geoidx) > 0
province_name=geoname( geoidx(1) );
mysymbolspec{i} = {'NAME', char(province_name), 'FaceColor', mycolormap( mycoloridx, :) };%省份和颜色对应
end
end
%% 显示地图
figure
ax=worldmap('china'); % 使用worldmap的坐标轴作图
setm(ax,'grid','off') % 关闭grid
setm(ax,'frame','off') % 关闭边框
setm(ax,'parallellabel','off') % 关闭坐标轴标记,平行线
setm(ax,'meridianlabel','off') % 关闭坐标轴标记,子午线 % 最关键的两个语句
symbols=makesymbolspec('Polygon',{'default','FaceColor',[0.9 0.9 0.8],...
'LineStyle','--','LineWidth',0.2,...
'EdgeColor',[0.8 0.9 0.9]},...
mysymbolspec{:}...
);
geoshow(sheng,'SymbolSpec',symbols); % 此处用mapshow投影会不正确

 

%% 图的标注
% 在图像右侧显示bar
colormap(summer(k))
hcb=colorbar('EastOutside');
step=round(max_data/11);

 

set(hcb,'YTick',(:.:))
set(hcb,'YTickLabel',num2cell(:step:max_data))%设置高度 % 给图像加标题
title('中国各省海拔分布图(单位:m)')

5、人口的不同颜色显示

%-- 分省中国地图在MATLAB中的画法 --%
%% 载入地图数据
clear all
% 载入各省的多边形数据
sheng=shaperead('maps/bou2_4p.shp', 'UseGeoCoords', true);% 本文件下的边界省 %% 使用importdata向导导入2011年全国31个省的人口数据
% data为人口数目 textdata为省名称
d=importdata('renkou.txt');
data=d.data; % 人口数据
textdata=d.textdata; % 相对应的省的名称
%% 定义地图参数
% 针对不同省份,分别设置不同的颜色(FaceColor)
% 定义颜色
k=;
mycolormap=summer(k);
% 生成不同区域按大小的颜色,按照人口数目多少分别指定不同的颜色
% 人口越多,颜色越突出
geoname={sheng.NAME}';%
max_data = max(data);%最大人口
n=length(data);%31个省
mysymbolspec=cell(,n); % 预定义变量可以加快处理速度
for i=:n
count(i)=data(i);%人口
mycoloridx(i)=round( k * count(i)/ max_data );%四舍五入
mycoloridx(mycoloridx<)=;% 0变1
myprovince{i}=textdata{i};%省 geoidx=strmatch(myprovince{i}, geoname);
if numel(geoidx) > %geoidx元素个数
province_name=geoname( geoidx() );%省名字
mysymbolspec{i} = {'NAME', char(province_name), 'FaceColor', mycolormap( mycoloridx(i), :) };
end
end
%% 显示地图
figure
ax=worldmap([ ], [ ]); % 使用worldmap的坐标轴作图
setm(ax,'grid','off') % 关闭grid
setm(ax,'frame','off') % 关闭边框
setm(ax,'parallellabel','off') % 关闭坐标轴标记
setm(ax,'meridianlabel','off') % 关闭坐标轴标记 % 最关键的两个语句
symbols=makesymbolspec('Polygon',{'default','FaceColor',[0.9 0.9 0.8],...
'LineStyle','--','LineWidth',0.2,...
'EdgeColor',[0.8 0.9 0.9]},...
mysymbolspec{:}...
);
geoshow(ax,sheng,'SymbolSpec',symbols); % 此处用mapshow投影会不正确 %% 图的标注
% 在图像右侧显示bar
colormap(summer(k))
hcb=colorbar('southOutside');
step=round(max_data/);%四舍五入
%set(hcb,'YTick',(:.:))
set(hcb,'YTickLabel',num2cell(:step:max_data)) % 给图像加标题
title('中国各省人口分布图(单位:)')

 

 

 

 

 

  

  

  

  

MATLAB—地图的更多相关文章

  1. MATLAB地图工具箱学习总结(四)自定义投影

    MATLAB地图工具箱学习总结(四)自定义投影 这是本系列的最后一篇文章,准备给大家讲讲自定义投影怎么做.在做这项作业的时候,自己也是花了不少时间,将所有地图投影源文件都看了一遍,简单分析了一下源代码 ...

  2. MATLAB地图工具箱学习总结(三)地图工具箱的基本知识

    MATLAB地图工具箱学习总结(三)地图工具箱的基本知识 今天想要介绍的是一些比较基础的函数.了解了这些函数,地图投影的基本概念才能真正明白.而要想继续研究MATLAB中有关地图投影的函数,尤其是未来 ...

  3. MATLAB地图工具箱学习总结(二)大圆和恒向线

    MATLAB地图工具箱学习总结(二)大圆和恒向线 今天要和大家谈一谈大圆.恒向线航道的画法.还是先从案例开始说起,再分别介绍相关的函数. 1                    作业案例:地图投影作 ...

  4. MATLAB地图工具箱学习总结(一)从地图投影说起

    MATLAB地图工具箱学习总结(一)从地图投影说起 前言 本学期地图投影课上,李连营老师建议我们使用MATLAB完成每周的作业.从大二上学期开始接触MATLAB学习数学运算和地理数据处理的我,自然不会 ...

  5. MATLAB地图工具箱学习心得(二)设计可变参数和位置拾取的“放大镜”式投影程序

    最近刚好因为一些原因整理这方面的内容,所以还是把这篇鸽了一年多的博客顺手写出来了∠( ᐛ 」∠)_.因为是当时课程设计的一部分,程序上难免会有一些不足和bug,在这里将设计的思路分享给大家. 本篇博客 ...

  6. MATLAB地图工具箱学习心得(一)关于地图分带投影的拼接

    关于matlab地图投影系列: MATLAB地图工具箱学习心得(二)设计可变参数和位置拾取的"放大镜"式投影程序 --- 本学期的地图投影课程已经结束了,这篇博客用于记录自己在学习 ...

  7. MATLAB 地图工具箱 m_map 的安装和入门技巧(转)

    reference: http://blog.sina.com.cn/s/blog_8fc890a20102v6pm.html   需要用一些地图工具,arcgis懒得装了,GMT(generic m ...

  8. 用matlab绘制中国地图

    reference:https://jingyan.baidu.com/article/870c6fc36fdacfb03ee4be58.html shp: http://muchong.com/ht ...

  9. 在matlab中对中国地图中的不同省份按照高度进行渲染

    直接上优化后的代码和效果图 colour_totall=128; % 载入地图数据 --各省的多边形数据 shp_data=shaperead('maps/bou2_4p.shp', 'UseGeoC ...

随机推荐

  1. WebGIS 利用 WebGL 在 MapboxGL 上渲染 DEM 三维空间数据

    毕业两年,一直在地图相关的公司工作,虽然不是 GIS 出身,但是也对地图有些耳濡目染:最近在看 WebGl 的东西,就拿 MapboxGL 做了一个关于 WebGL 的三维数据渲染的 DEMO 练手. ...

  2. LaTex公式符号

    下面这个网站是我认为比较齐全的网站 http://www.mohu.org/info/symbols/symbols.htm

  3. 【线上测试之后的应用】基于MySQL+MHA+Haproxy构建高可用负载均衡数据库集群(详解)

    这里我们先介绍一下MHA是什么,其次就是它的应用与测试,同时为了大家呈现了数据备份案例,最后总结了使用情况以及注意事项和解决办法 一.MHA 概述 MHA(Master High Availabili ...

  4. Simple: 一个支持中文和拼音搜索的 sqlite fts5插件

    之前的工作关系,需要在手机上支持中文和拼音搜索.由于手机上存储数据一般都是用 sqlite,所以是基于 sqlite3 fts5 来实现.这段时间再次入门 c++,所以想用 c++ 实现一下,一来用于 ...

  5. python基本数据类型的操作

    1 列表和元组 1.列表基本操作 1. 列表赋值 a = [1,2,3,4,5,6,7,8] a[0] = 100 #the result : [100, 2, 3, 4, 5, 6, 7, 8] 2 ...

  6. 1,Linux(CentOS)中的基本配置

    1,hostname(主机名) 查看主机名:hostname 临时修改主机名:hostname hadoop1 永久修改主机名:vi etc/sysconfig/network :  [NETWORK ...

  7. Java反射之数组的反射应用

    上一篇我们说了Java反射之成员方法的反射 这一篇我们说一说数组的反射应用,数组的有长度等属性,所以也会有相应的方法获得这些属性,这里我们不一一列举哪些方法.我们来了解反射包中的一个类----Arra ...

  8. 使用form 表单 弹出登录框,只传递数据,不刷新界面

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. webstorm 开新项目 setting 设置@目录别名 add @ (languages & Framewors - Javascript - Webpack 4. setting eslint enable

    webstorm 开新项目 setting 设置@目录别名 add @ (languages & Framewors - Javascript - Webpack 4. setting esl ...

  10. AspNetCore3.1_Secutiry源码解析_4_Authentication_JwtBear

    title: "AspNetCore3.1_Secutiry源码解析_4_Authentication_JwtBear" date: 2020-03-22T16:29:29+08: ...