Matlab绘制经纬度地图并添加坐标点

1.调用geoshow画出的经纬度图片

图片说明:该图片是为了说明某公司的工厂建设地址分布图,并且不同州的颜色深度根据人口密度大小确定,可知人口密度大的所建的工厂工程较多,其中红色为已经建成并且投入了使用的工厂位置,绿色为正在修建的工厂位置。该图的做法:①首先通过该公司网站获取了在建和已建工厂的经纬度;②将数据导入2中的代码生成图片。

2.相关代码

代码说明:在Matlab中运行,并且将3中的数据表保存至运行相同路径的目录中。

%% 初始化环境
clc
clear
close all
landcolor = [0.98 0.97 0.97];
lakescolor = [0.71 0.84 0.92];

%% 从经纬度出发
rest = xlsread('map.xlsx');
[m,n] = size(rest);
limit = [26 48 -130 -60];
res = [];    %获得各种的经纬度的信息

%% 将含有经纬度的数据点画在地图上

for i = 1:m
     if rest(i, 1) > limit(1) && rest(i, 1) < limit(2) && rest(i, 2) > limit(3) && rest(i, 2) < limit(4) 
        res = [res; rest(i, :)];
     end
end
mcolor = [249 222 239; 255 86 0; 236 165 201; 47 70 150];
mcolor = mcolor ./255;

%用不同的颜色的点标记不同属性的地址
for i = 1:size(res, 1)
     greenpoint(i).Geometry = 'Point';
     redpoint(i).Geometry = 'Point';
     if res(i, 3) == 0   %0表示绿点,即在建工程
        greenpoint(i).Lon = res(i, 2);
        greenpoint(i).Lat = res(i, 1);
        greenpoint(i).Name = '';
     end
     if res(i, 3) == 1   %1表示红点,即已建工程
        redpoint(i).Lon = res(i, 2);
        redpoint(i).Lat = res(i, 1);
        redpoint(i).Name = '';
     end
end

%% 开始绘图
figure

%画出地图的经纬度范围
ax = worldmap('World');
ax = worldmap([25, 55], [230, 300]);

%画出美国大陆地图
land = shaperead('landareas', 'UseGeoCoords', true);
geoshow(ax, land, 'FaceColor', landcolor)

%画出美国湖泊地图
lakes = shaperead('worldlakes', 'UseGeoCoords', true);
geoshow(lakes, 'FaceColor', lakescolor)

%画出美国各个州,根据人口密度确定不同颜色
states = shaperead('usastatelo', 'UseGeoCoords', true);
scolor = [];
for i = 1:size(states, 1)
     if states(i).PopDens2000 
  • 45
    点赞
  • 329
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值