MATLAB导入任意省市地图(Shp数据)并从EXCEL中导入经纬度数据在图上手动加点

目录

  • 导入任意各省市Shp数据
  • 从EXCEL导入经纬度数据并在图上手动加点

导入任意各省市Shp数据

1.首先下载任意省市Shp数据,详细步骤请看:
转载:三步教你免费下载省,市,区县行政区Shp数据

2.在MATLAB中导入并画图显示1

gx=shaperead('D:\新建\青岛市\青岛市.shp','UseGeoCoords',true);%导入地图数据
geoshow(gx,'FaceColor',[0.5,1.0,0.5],'EdgeColor','black');%把地图画出来

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

geoshow函数:geoshow是用来显示地图数据的函数
geoshow的常用方法:
(1)geoshow(lat,lon)直接输入经纬度,将以该经纬度为中心,生成一小片地图
(2)geoshow(filename)直接输入地图文件名,生成该地图
(3)geoshow(_,Name,Value,)输入相关属性并设定参数,生成所需要的地图。
geoshow的常用属性:
(1)facecolor:定义了地图表面的颜色,需要输入三个参数且均在0至1之间。根据三个参数不同,颜色不同。如果不写此属性,则默认是黄色。(笔者认为默认颜色更合适)
(2)edgecolor:定义了边界的颜色,输入的三个参数值同上。也可以直接像上面代码中写的,直接写颜色:‘black’

3.运行后结果:

MATLAB导入任意省市地图(Shp数据)并从EXCEL中导入经纬度数据在图上手动加点_第1张图片

从EXCEL导入经纬度数据并在图上手动加点

1.首先从EXCEL中导入一些点的经纬度

location2=xlsread('D:\matlab\M\代码\各点坐标.xlsx',3);   % j的坐标

xlsread函数:第一个参数是表格路径,第二个参数表示此表格的第几个sheet

2.分别取出经纬度数据

%由于location2文件中第一列是经度,第二列是纬度,因此需要分别取出
[n,~]=size(location2); 
lat=zeros(n,1);
lon=zeros(n,1);
for i=1:n
    lat(i)=location2(i,2);  %纬度数据
    lon(i)=location2(i,1);  %经度数据
end

3.图上加点

geoshow(lat,lon,'marker','.','markeredgecolor','Green','Displaytype','point');%在地图上手动加点

geoshow函数此处的解释:
(1)此处使用了geoshow函数的第一个常用用法
(2)maker:此参数表示加入的图形, ’ .'显示为点;
'^'显示为三角形……
(3)markeredgecolor:此参数表示加入图形的边界的颜色
(4)Displaytype:此参数表示数据图形的类型

(各函数的详细解释见MATLAB的帮助文件)

4.运行结果:
MATLAB导入任意省市地图(Shp数据)并从EXCEL中导入经纬度数据在图上手动加点_第2张图片


  1. https://www.cnblogs.com/ruo-li-suo-yi/p/7528554.html ↩︎

你可能感兴趣的:(MATLAB地理数据画图)