绘制中国地图九段线小地图的方法

本文介绍了一种使用MATLAB编程的方法,通过读取存储在datachina.mat文件中的中国边境线经纬度数据,对特定区域(东经106-123,北纬24度以下)进行缩放处理,然后绘制出九段线地图,展示了数据处理和可视化的过程。
摘要由CSDN通过智能技术生成

已有数据:中国边境线经纬度。

绘图思路:截取想要显示的小地图数据(例如经度东经106-123,纬度北纬24度以下),整体缩放小地图数据,然后再将截取的经度值和纬度值进行整体增大,使得地图整体对齐。代码如下:

clc;clear all;
%% 读取数据
% 边境线
load("datachina.mat");
xx1_base = datachina(:,1);      
yy1_base = datachina(:,2);
zz1_base = repmat(ceng1,length(xx1_base),1);
zz2_base = repmat(ceng2,length(xx1_base),1);
zz3_base = repmat(ceng3,length(xx1_base),1);
ss1_base = repmat(5,length(xx1_base),1);
% 九段线
yymin1_base = yy1_base(yy1_base<24 & xx1_base<123 & xx1_base>106);
xxmin1_base = xx1_base(yy1_base<24 & xx1_base<123 & xx1_base>106);
% 对九段线的比例图进行缩放
yymin1_base = yymin1_base.*0.5;
xxmin1_base = xxmin1_base.*0.5;
yymin1_base = 15-min(yymin1_base)+yymin1_base;
xxmin1_base = 135-max(xxmin1_base)+xxmin1_base;
zzmin1_base = repmat(ceng1,length(xxmin1_base),1);
zzmin2_base = repmat(ceng2,length(xxmin1_base),1);
zzmin3_base = repmat(ceng3,length(xxmin1_base),1);
ssmin1_base = repmat(5,length(xxmin1_base),1);
% 对九段线图进行填白
xnine = [126.74 136;126.74 136];
ynine = [14     14 ;25.3   25.3];
znine1 = repmat(ceng1,length(xnine),length(ynine));
znine2 = repmat(ceng2,length(xnine),length(ynine));
znine3 = repmat(ceng3,length(xnine),length(ynine));
cnine = [1 1;1 1];
%% 绘图
% 绘制边境线
scatter3(xx1_base,yy1_base,zz1_base,ss1_base,'filled','k');
hold on
% 绘制九段线
scatter3(xxmin1_base,yymin1_base,zzmin1_base,ssmin1_base,'filled','k');
hold on
xlabel('经度');
ylabel('纬度');
axis([69 136 14 56]);

  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孺子牛 for world

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值