今年本科组全国大学生数学建模国赛我没有参加,闲着无聊帮助研究生学姐做竞赛,她让我用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.')