用Matlab将坐标添加到地图上
用Matlab将坐标添加到地图上
今年本科组全国大学生数学建模国赛我没有参加,闲着无聊帮助研究生学姐做竞赛,她让我用matlab将坐标添加到地图上。我的思路是:先画个地图(地图可以是matlab自带的函数coast或者是导入一张地图图片)然后添加坐标信息。
以下是我给了三种作图方式,从简单到难,仅供参考。
源码数据下载地址:点击文字
小编邮箱:2377389590@qq.com
代码1:
clear all;
close all;
clc;
%author:猪猪侠
%date:2018-09-15
load coast;
[Num,Txt,Raw]=xlsread('data1.xlsx') %经纬度数据
axesm mercator
plotm(lat,long,'k-');
hold on
plotm(Num(:,1),Num(:,2),'r.')
代码2
%author:猪猪侠
%date:2018-09-15
clc;
clear all;
close all;
[Num,Txt,Raw]=xlsread('data1.xlsx');%文件存储地址
hold on
axesm('MapProjection','miller','Grid','on');
load coast;%加载海岸线
plotm(lat,long,'k-');%绘制地图海岸线
set(gcf,'Position',[100,10,450,250]);
set(gcf,'PaperPositionMode','auto');
mlabel('MLabelLocation',60);%标上经度刻度标签,每隔60度
plabel('PLabelLocation',30);%标上纬度刻度标签,每隔30度
setm(gca,'MLabelParallel','south');%将经度刻度标签放在南方,即下部
set(gca, 'xlim', [-4 4]);%设置画布大小的横长
set(gca, 'ylim', [-2.5 2.5]);%设置画布大小纵长
plotm(Num(:,1),Num(:,2),'r.')
代码3:
clc
clear
%author:猪猪侠
%date:2018-09-15
[Num,Txt,Raw]=xlsread('data1.xlsx');%导入坐标点信息
ax = worldmap('World');%世界地图
setm(ax, 'Origin', [0 180 0]) %设置地图的中心位置和绕中心点和地心点的轴旋转角度[latitude longitude orientation]
land = shaperead('landareas', 'UseGeoCoords', true);%加载陆地信息
geoshow(ax, land, 'FaceColor', [0.5 0.7 0])%显示陆地,颜色为 [R,G B]
lakes = shaperead('worldlakes', 'UseGeoCoords', true); %加载湖泊信息
geoshow(lakes, 'FaceColor', 'blue') %显示湖泊颜色blue
rivers = shaperead('worldrivers', 'UseGeoCoords', true); %加载河流信息
geoshow(rivers, 'Color', 'b') %显示江河,颜色为blue
% setm(gca,'MLabelParallel','south');%将经度刻度标签放在南方,即下部
hold on
plotm(Num(:,1),Num(:,2),'r.')
posted on 2019-11-25 09:47 好玩的MATLAB 阅读(8) 评论(0) 编辑 收藏 举报 来源